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

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

3天内不再提示

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

CW32生态社区 来源:CW32生态社区 作者:CW32生态社区 2023-11-17 17:24 次阅读

一、实验简介

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

二、实验器材

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

CW32-48F大学计划板
图片

ESP8266WIFI模块
图片

E18-D80NK红外光电开关
图片

E18-D80NK红外光电开关
图片

实物图

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

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

蓝线 -- 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;
}
}
}
```审核编辑 黄宇

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

    关注

    3

    文章

    954

    浏览量

    43029
  • 单片机
    +关注

    关注

    0

    文章

    214

    浏览量

    16658
  • CW32
    +关注

    关注

    1

    文章

    203

    浏览量

    628
收藏 人收藏

    评论

    相关推荐

    CW32充电检测仪#CW32

    检测
    jf_61020569
    发布于 :2024年11月22日 09:05:30

    武汉芯源半导体CW32芯片重庆地区线下技术交流会成功举办

    2024年10月19日,武汉芯源半导体授权CW32生态社区主办的“CW32芯片-重庆地区技术交流会”在重庆市科技工作者众创之家成功举办。此次交流会汇聚重庆地区的嵌入式开发工程师和电子信息类企业代表,共同探讨CW32芯片在仪器仪表
    的头像 发表于 10-24 10:55 463次阅读

    【项目展示】基于CW32的遥控循迹小车

    CW32循迹小车.zip_免费高速下载|百度网盘-分享无限制  一、概述 CW32循迹、遥控小车具有循迹和遥控两种功能,小车的硬件模块由CW32F030C8T6小蓝板、智能小车控制底板、BT04-E
    的头像 发表于 05-31 17:33 1293次阅读
    【项目展示】基于<b class='flag-5'>CW32</b>的遥控循迹小车

    基于CW32的有刷直流电机控制实验三:直流电机闭环位置和速度控制实验

    DAP-Link插入电脑后未识别到芯片,则将中间两根线的接线对换。 程序下载 将 DAP-Link 与电脑相连后检查是否识别到CW32: 如图就是已经识别到CW32,可以开始下载程序。 闭环速度位置说明 程序
    的头像 发表于 05-31 17:01 582次阅读
    基于<b class='flag-5'>CW32</b>的有刷直流电机控制实验三:直流电机闭环位置和速度控制实验

    CW32数字电压电流表软件进阶教程-1.电压电流同时显示

    基于[CW32数字电压电流表软件教程-实验七:基本数据处理算法(均值滤波)],可以对电压电流进行同时采集显示。 电流检测电路如下: 本项目设计的采样电流为3A,选择的采样电阻为100mΩ。AIN接入
    的头像 发表于 05-31 15:50 719次阅读
    <b class='flag-5'>CW32</b>数字电压电流表软件进阶教程-1.电压电流同时显示

    芯源半导体首个CW32嵌入式创新实验室揭牌

    武汉芯源半导体,一家知名的MCU(微控制器)厂商,近日携手上海科学技术职业学院,共同揭牌了“CW32嵌入式创新实验室”。此次合作旨在搭建起企业与高校之间的紧密桥梁,实现资源共享和优势互补。
    的头像 发表于 05-08 10:37 423次阅读

    产教融合,校企合作——武汉芯源半导体首个CW32嵌入式创新实验室顺利揭牌!

    2024年4月24日上午,武汉芯源半导体有限公司与上海科学技术职业学院共同举办的“CW32嵌入式创新实验室揭牌仪式”在上海科学技术职业学院第二会议室隆重举行。活动现场,武汉芯源半导体与上海
    的头像 发表于 05-06 13:42 428次阅读
    产教融合,校企合作——武汉芯源半导体首个<b class='flag-5'>CW32</b>嵌入式创新实验室顺利揭牌!

    CW32量产烧录工具

    本节主要介绍CW32微控制器的烧录器CW-Writer,以及与之配合的软件CW-Programmer的使用方法。烧录器CW-Writer通过ISP协议,可实现对
    的头像 发表于 04-25 15:22 1394次阅读
    <b class='flag-5'>CW32</b>量产烧录工具

    CW32快速开发入门

    CW32快速开发入门
    的头像 发表于 04-24 18:56 1949次阅读
    <b class='flag-5'>CW32</b>快速开发入门

    CW32F003E4芯片入门学习:器件包安装

    安装CW32的pack包,可以从武汉芯源官网下载固件库
    的头像 发表于 04-02 14:25 608次阅读
    <b class='flag-5'>CW</b>32F003E4芯片入门学习:器件包安装

    公交站配电箱安装安全用电监测终端,实时监测公交车站配电系统漏电电流

    安科瑞 程瑜 云平台简介 功能: 通过在公交站配电箱安装安全用电监测终端,实时监测公交车站配电系统漏电电流及水浸状态,并将监测数据通过移动网络上传至云端服务器。管理人员可通过手机APP、短信及时接收
    的头像 发表于 03-05 10:58 458次阅读
    <b class='flag-5'>公交站</b>配电箱安装安全用电监测终端,实时监测<b class='flag-5'>公交</b>车站配电<b class='flag-5'>系统</b>漏电电流

    公交站安全用电云平台-实时监测公交车站配电系统漏电电流及水浸状态Acrelsale1

    功能: 通过在公交站配电箱安装安全用电监测终端,实时监测公交车站配电系统漏电电流及水浸状态,并将监测数据通过移动网络上传至云端服务器。管理人员可通过手机APP、短信及时接收现场的异常报警信息。安全
    的头像 发表于 02-04 08:52 303次阅读
    <b class='flag-5'>公交站</b>安全用电云平台-实时监测<b class='flag-5'>公交</b>车站配电<b class='flag-5'>系统</b>漏电电流及水浸状态Acrelsale1

    公交站安全用电云平台

    功能: 通过在公交站配电箱安装安全用电监测终端,实时监测公交车站配电系统漏电电流及水浸状态,并将监测数据通过移动网络上传至云端服务器。管理人员可通过手机APP、短信及时接收现场的异常报警信息。安全
    的头像 发表于 01-31 15:56 313次阅读
    <b class='flag-5'>公交站</b>安全用电云平台

    基于CW32的智能家居系统

    本智能家居系统是一款功能丰富、易于使用的智能家居解决方案,可以通过检测温湿度、光照强度和空气质量等参数,为我们提供更加舒适、健康、安全的居住环境,让用户享受更加智能的生活体验。 该系统采用CW
    的头像 发表于 12-28 12:14 1677次阅读
    基于<b class='flag-5'>CW32</b>的智能家居<b class='flag-5'>系统</b>

    基于CW32的门禁综合系统

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