0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CW32单片机的公交站人流检测系统设计

武汉芯源半导体 来源:武汉芯源半导体 2023-11-30 14:25 次阅读

一、实验简介


公交站人流检测是一项重要的城市交通管理任务,它不仅关系到公交服务的效率和质量,还与城市交通规划和公共安全紧密相关。首先,公交站人流检测可以实时反馈乘客流量情况,帮助公交公司了解各线路、各站点的客流需求。其次,公交站人流检测可以为公交公司制定和优化运营策略提供数据支持。再次,公交站人流检测可以及时发现拥挤、拥堵等情况,提醒调度中心及时采取措施,保障乘客安全。基于此背景,我们以CW32单片机为核心,采用公交站人流检测中常见的红外线检测技术,设计了一个公交站人流检测系统,该系统可以连接到网络获取当前时间,并将人流数据实时上传到OneNET云平台进行远程监控。

二、实验器材

本实验使用到了CW32-48F大学计划开发板、ESP8266WIFI模块、E18-D80NK红外光电开关Keil5开发环境。

开发板上预留了ESP8266WIFI模块接口,通过串口与ESP8266通信

wKgZomVDSRSAYiMLAACotqsfaBw510.jpg

【两个红外光电开关与单片机接线】:


蓝线 -- GND

棕线 -- 3.3V

黑线 -- PA0、PA4

三、核心代码

main.c:
//单片机头文件
#include "main.h"


//网络设备
#include "esp8266.h"


//网络协议层
#include "onenet.h"     //OneNET


//硬件驱动
#include "RTC.h"        //CW32RTC
#include "BTIM.h"
#include "usart.h"
#include "Buzzer.h"     //板载蜂鸣器
#include "Infrared.h"   //红外光电开关
#include "Lcd_Driver.h"
#include "LCD_calculate.h"


uint8_t send_flag=0;    //数据上云控制位
uint16_t count=0,accumulation=0;  //count--当前站内人数,accumulation--累计人数
enum State{
  STATE_A,
  STATE_B,
  STATE_C,
  STATE_D,
};         //枚举数据类型,包含四个状态


void System_Init(void)
{
  Lcd_Init();          //LCD屏初始化
  BTIM_Init();         //基本定时器初始化,调控数据上云频率
  Buzzer_Init();       //蜂鸣器初始化,两个红外光电开关同时被遮挡时发出声响警告
  Infrared_Init();     //红外光电开关初始化
  Usart1_Init(115200); //串口1,用于串口调试助手打印调试信息
  Usart2_Init(115200); //串口2,与ESP8266进行通信
  
  TFT_Welcome();     //开机界面显示
  Gui_DrawFont_GBK16(0,128,GRAY1,WHITE,"   网络连接中  ");
  ESP8266_Init();//联网,获取当前时间,接入OneNET云平台
  RTC_ITConfig(RTC_IT_INTERVAL,ENABLE); //开启RTC周期中断(RTC中断开启的时机要在esp8266连接到onenet平后之后)
  Gui_DrawFont_GBK16(0,8,WHITE,BLUE," 公交站人流检测 ");
  Gui_DrawLine(0,32,128,32,GRAY1);
  Gui_DrawFont_GBK16(0,64,WHITE,BLUE," 站内人数:");
  TFTShowNumber(4,12,count);
  Gui_DrawFont_GBK16(0,96,WHITE,BLUE," 累计人数:");
  TFTShowNumber(6,12,accumulation);
  NVIC_EnableIRQ(BTIM1_IRQn);    //开启定时器中断,中断周期10ms
}


int main(void)
{
  uint16_t state=0xffff;            //红外光电开关当前状态
  enum State currentState=STATE_A;  //开机为状态A
  
  System_Init();                    //系统初始化
  while(1)
  {    
    /*模拟乘客进站的过程:
      1.装置安装位置:两红外光电传开关一前一后安装在站口
      2.假设站口只允许乘客排队依次进出
      3.乘客进站先遮挡红外光电开关1
      4.乘客继续前进,离开红外光电开关1,遮挡红外光电开关2
      5.站内人数+1,累计人数+1
(若过程4中同时遮挡两个红外光电开关则蜂鸣器发出警报,等待工作人员解决故障,不计数)
    */
    /*模拟乘客出站的过程:
      1.装置安装位置:两红外光电传开关一前一后安装在站口
      2.假设站口只允许乘客排队依次进出
      3.乘客出站先遮挡红外光电开关2
      4.乘客继续前进,离开红外光电开关2,遮挡红外光电开关1
      5.站内人数-1
(若过程4中同时遮挡两个红外光电开关则蜂鸣器发出警报,等待工作人员解决故障,不计数)
    */
    state=CW_GPIOA->IDR & 0x0011;   //获取两个红外光电开关数据IO当前状态
    if(state==0x0000) Buzzer_RING;  //控制蜂鸣器 
    else Buzzer_OFF;
    switch(currentState)            //初步模仿状态机编程模式
    {
      case STATE_A:
        if(state==0x0011)      currentState=STATE_B;   break;  
      case STATE_B:
        if(state==0x0001)      currentState=STATE_C;  
        else if(state==0x0010) currentState=STATE_D;   break;
      case STATE_C: if(state==0x0010) {count++;accumulation++;currentState=STATE_A;TFTShowNumber(4,12,count);TFTShowNumber(6,12,accumulation);}  break;
      case STATE_D: if(state==0x0001) {if(count!=0) count--;  currentState=STATE_A;TFTShowNumber(4,12,count);}                                   break;
    }
    if(send_flag)
    {    
      OneNet_SendData();  //数据上传到OneNET
      ESP8266_Clear();    //清除缓存
      send_flag=0;  
    }
  }
}

四、效果演示

wKgaomVXMKaABEObAAf59ZqVNxk751.jpg

连接网络

wKgZomVXMKaAHCUEAAhuz6QoaOI608.jpg

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632689
  • 检测系统
    +关注

    关注

    3

    文章

    947

    浏览量

    43009
  • 串口
    +关注

    关注

    14

    文章

    1543

    浏览量

    76157
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97157
  • CW32
    +关注

    关注

    1

    文章

    183

    浏览量

    575

原文标题:基于CW32的公交站人流检测系统

文章出处:【微信号:武汉芯源半导体,微信公众号:武汉芯源半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于CW32的门禁综合系统

    基于CW32单片机的门禁综合系统是一款功能强大的智能门禁解决方案,它提供了三种开锁方式:密码开锁、指纹开锁和刷卡开锁,为用户提供方便、安全的门禁控制。该系统的核心控制器采用了
    的头像 发表于 12-28 11:43 1659次阅读
    基于<b class='flag-5'>CW32</b>的门禁综合<b class='flag-5'>系统</b>

    基于CW32公交站人流检测系统

    CW32单片机为核心,采用公交站人流检测中常见的红外线检测技术,设计了一个
    的头像 发表于 11-17 17:24 894次阅读
    基于<b class='flag-5'>CW32</b>的<b class='flag-5'>公交站</b><b class='flag-5'>人流</b><b class='flag-5'>检测</b><b class='flag-5'>系统</b>

    基于LABVIEW的公交站点显示系统的设计

    设计基于 LABVIEW 的公交站点显示系统。方法 运用图像化编程语言 LABVIEW 设计。结果 设计出来的公交站点显示系统实现了预定的功能。结论 运用 LABVIEW 设计
    发表于 04-09 13:08

    Moxa嵌入式计算机在公交站信息显示系统中有哪些应用?

    为什么要在公交站信息显示系统中应用Moxa嵌入式计算机?公交乘客从不知道为什么公交车还没有到达,也不知道还要等多少时间,这是最困扰乘客的问题之一。现在,借助于智能
    发表于 08-08 07:50

    如何设计并制作一个基于单片机的智能公交自动语音报站系统

    设计并制作一个基于单片机的智能公交自动语音报站系统系统主要包含硬件和软件两个部分,系统采用STC89C52
    发表于 11-10 06:02

    CW32单片机在智能马桶的应用介绍

    2.智能冲洗功能控制 CW32单片机通过接收用户的操作指令,进行流量检测,根据用户所需的水流大小和冲洗时间,精确地控制水泵的工作和停止。 3.智能电量监控与节能功能 智能马桶内置电池或电源模块
    发表于 12-20 10:06

    基于CC1110单片机公交报站系统的设计

    基于CC1110单片机公交报站系统主要由CC1110单片机最小系统和WT588D语音模块组成,提出了如何实现语音报站,通过无线通信Simpl
    发表于 12-10 17:53 94次下载

    公交站预防漏电事故专用监控系统

    公交候车亭等车时,市民看到的夜间炫彩灯光、电子广告牌、具有来车显示功能的电子站牌都需要电力供应,这些供电设备在为公交站台提供能源的同时,其安全性至关重要,但是公交站漏电事故却时有发生,特别是下雨天
    发表于 04-27 14:17 1072次阅读

    (毕业设计资料)基于51单片机公交自动报站系统

    设计并制作一个基于单片机的智能公交自动语音报站系统系统主要包含硬件和软件两个部分,系统采用STC89C52
    发表于 11-05 10:35 12次下载
    (毕业设计资料)基于51<b class='flag-5'>单片机</b>的<b class='flag-5'>公交</b>自动报站<b class='flag-5'>系统</b>

    cw32和stm32的区别

    cw32和stm32的区别 CW32和STM32是两种常见的单片机,被广泛应用于各种电子设备中。在本文中,我们将深入探讨CW32和STM32之间的区别和优劣势。 1. 硬件性能 硬件性
    的头像 发表于 08-16 11:15 3962次阅读

    CW32单片机低电压检测器的使用介绍

    CW32单片机低电压检测器的使用介绍
    的头像 发表于 09-18 10:56 1006次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>低电压<b class='flag-5'>检测</b>器的使用介绍

    CW32单片机UART波特率设置介绍

    CW32单片机UART波特率设置介绍
    的头像 发表于 10-24 17:35 854次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>UART波特率设置介绍

    CW32单片机UART基本数据收发功能介绍

    CW32单片机UART基本数据收发功能介绍
    的头像 发表于 10-24 16:50 718次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>UART基本数据收发功能介绍

    CW32单片机I2C接口读写EEPROM芯片介绍

    CW32单片机I2C接口读写EEPROM芯片介绍
    的头像 发表于 11-09 17:42 1011次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>I2C接口读写EEPROM芯片介绍

    CW32单片机在智能马桶的应用介绍

    和调节。本文将介绍CW32单片机在智能马桶的详细应用。图:CW32的智能马桶控制板CW32单片机在智能马桶的应用介绍1.温度感应与控制智能马
    的头像 发表于 12-20 10:09 576次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>单片机</b>在智能马桶的应用介绍