91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于CW32的公交站人流檢測(cè)系統(tǒng)

CW32生態(tài)社區(qū) ? 來(lái)源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2023-11-17 17:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、實(shí)驗(yàn)簡(jiǎn)介

1.公交站人流檢測(cè)是一項(xiàng)重要的城市交通管理任務(wù),它不僅關(guān)系到公交服務(wù)的效率和質(zhì)量,還與城市交通規(guī)劃和公共安全緊密相關(guān)。首先,公交站人流檢測(cè)可以實(shí)時(shí)反饋乘客流量情況,幫助公交公司了解各線路、各站點(diǎn)的客流需求。其次,公交站人流檢測(cè)可以為公交公司制定和優(yōu)化運(yùn)營(yíng)策略提供數(shù)據(jù)支持。再次,公交站人流檢測(cè)可以及時(shí)發(fā)現(xiàn)擁擠、擁堵等情況,提醒調(diào)度中心及時(shí)采取措施,保障乘客安全?;诖吮尘埃覀円訡W32單片機(jī)為核心,采用公交站人流檢測(cè)中常見的紅外線檢測(cè)技術(shù),設(shè)計(jì)了一個(gè)公交站人流檢測(cè)系統(tǒng),該系統(tǒng)可以連接到網(wǎng)絡(luò)獲取當(dāng)前時(shí)間,并將人流數(shù)據(jù)實(shí)時(shí)上傳到OneNET云平臺(tái)進(jìn)行遠(yuǎn)程監(jiān)控。

二、實(shí)驗(yàn)器材

本實(shí)驗(yàn)使用到了CW32-48F大學(xué)計(jì)劃開發(fā)板、ESP8266WIFI模塊、E18-D80NK紅外光電開關(guān)Keil5開發(fā)環(huán)境。
|
圖片

CW32-48F大學(xué)計(jì)劃板
圖片

ESP8266WIFI模塊
圖片

E18-D80NK紅外光電開關(guān)
圖片

E18-D80NK紅外光電開關(guān)
圖片

實(shí)物圖

開發(fā)板上預(yù)留了ESP8266WIFI模塊接口,通過(guò)串口與ESP8266通信。

【兩個(gè)紅外光電開關(guān)與單片機(jī)接線】:

藍(lán)線 -- GND

棕線 -- 3.3V

黑線 -- PA0、PA4

三、核心代碼

main.c:
//單片機(jī)頭文件
#include "main.h"

//網(wǎng)絡(luò)設(shè)備
#include "esp8266.h"

//網(wǎng)絡(luò)協(xié)議層
#include "onenet.h"     //OneNET

//硬件驅(qū)動(dòng)
#include "RTC.h"        //CW32RTC
#include "BTIM.h"
#include "usart.h"
#include "Buzzer.h"     //板載蜂鳴器
#include "Infrared.h"   //紅外光電開關(guān)
#include "Lcd_Driver.h"
#include "LCD_calculate.h"

uint8_t send_flag=0;    //數(shù)據(jù)上云控制位
uint16_t count=0,accumulation=0;  //count--當(dāng)前站內(nèi)人數(shù),accumulation--累計(jì)人數(shù)
enum State{
STATE_A,
STATE_B,
STATE_C,
STATE_D,
};         //枚舉數(shù)據(jù)類型,包含四個(gè)狀態(tài)

void System_Init(void)
{
Lcd_Init();          //LCD屏初始化
BTIM_Init();         //基本定時(shí)器初始化,調(diào)控?cái)?shù)據(jù)上云頻率
Buzzer_Init();       //蜂鳴器初始化,兩個(gè)紅外光電開關(guān)同時(shí)被遮擋時(shí)發(fā)出聲響警告
Infrared_Init();     //紅外光電開關(guān)初始化
Usart1_Init(115200); //串口1,用于串口調(diào)試助手打印調(diào)試信息
Usart2_Init(115200); //串口2,與ESP8266進(jìn)行通信

TFT_Welcome();     //開機(jī)界面顯示
Gui_DrawFont_GBK16(0,128,GRAY1,WHITE,"   網(wǎng)絡(luò)連接中  ");
ESP8266_Init();//聯(lián)網(wǎng),獲取當(dāng)前時(shí)間,接入OneNET云平臺(tái)
RTC_ITConfig(RTC_IT_INTERVAL,ENABLE); //開啟RTC周期中斷(RTC中斷開啟的時(shí)機(jī)要在esp8266連接到onenet平后之后)
Gui_DrawFont_GBK16(0,8,WHITE,BLUE," 公交站人流檢測(cè) ");
Gui_DrawLine(0,32,128,32,GRAY1);
Gui_DrawFont_GBK16(0,64,WHITE,BLUE," 站內(nèi)人數(shù):");
TFTShowNumber(4,12,count);
Gui_DrawFont_GBK16(0,96,WHITE,BLUE," 累計(jì)人數(shù):");
TFTShowNumber(6,12,accumulation);
NVIC_EnableIRQ(BTIM1_IRQn);    //開啟定時(shí)器中斷,中斷周期10ms
}

int main(void)
{
uint16_t state=0xffff;            //紅外光電開關(guān)當(dāng)前狀態(tài)
enum State currentState=STATE_A;  //開機(jī)為狀態(tài)A

System_Init();                    //系統(tǒng)初始化
while(1)
{
/*模擬乘客進(jìn)站的過(guò)程:
1.裝置安裝位置:兩紅外光電傳開關(guān)一前一后安裝在站口
2.假設(shè)站口只允許乘客排隊(duì)依次進(jìn)出
3.乘客進(jìn)站先遮擋紅外光電開關(guān)1
4.乘客繼續(xù)前進(jìn),離開紅外光電開關(guān)1,遮擋紅外光電開關(guān)2
5.站內(nèi)人數(shù)+1,累計(jì)人數(shù)+1
(若過(guò)程4中同時(shí)遮擋兩個(gè)紅外光電開關(guān)則蜂鳴器發(fā)出警報(bào),等待工作人員解決故障,不計(jì)數(shù))
*/
/*模擬乘客出站的過(guò)程:
1.裝置安裝位置:兩紅外光電傳開關(guān)一前一后安裝在站口
2.假設(shè)站口只允許乘客排隊(duì)依次進(jìn)出
3.乘客出站先遮擋紅外光電開關(guān)2
4.乘客繼續(xù)前進(jìn),離開紅外光電開關(guān)2,遮擋紅外光電開關(guān)1
5.站內(nèi)人數(shù)-1
(若過(guò)程4中同時(shí)遮擋兩個(gè)紅外光電開關(guān)則蜂鳴器發(fā)出警報(bào),等待工作人員解決故障,不計(jì)數(shù))
*/
state=CW_GPIOA- >IDR & 0x0011;   //獲取兩個(gè)紅外光電開關(guān)數(shù)據(jù)IO當(dāng)前狀態(tài)
if(state==0x0000) Buzzer_RING;  //控制蜂鳴器
else Buzzer_OFF;
switch(currentState)            //初步模仿狀態(tài)機(jī)編程模式
{
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();  //數(shù)據(jù)上傳到OneNET
ESP8266_Clear();    //清除緩存
send_flag=0;
}
}
}
```審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 檢測(cè)系統(tǒng)
    +關(guān)注

    關(guān)注

    3

    文章

    1000

    瀏覽量

    45484
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    299

    瀏覽量

    1854
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問(wèn)CW32中的CW是啥意思?

    CW32中的CW是啥意思?
    發(fā)表于 02-02 07:10

    CW32仿真器是什么?

    CW32仿真器是什么
    發(fā)表于 01-05 08:04

    CW32芯片有哪些外設(shè)接口?

    CW32芯片有哪些外設(shè)接口
    發(fā)表于 12-29 07:23

    CW32系統(tǒng)發(fā)啟動(dòng)過(guò)程

    CW32支持 2 種不同的啟動(dòng)模式,通過(guò) BOOT 引腳狀態(tài)進(jìn)行選擇,啟動(dòng)模式選擇電路只在芯片解復(fù)位時(shí)刻采樣 BOOT 引腳狀態(tài),因此在芯片解復(fù)位前用戶必須根據(jù)需要設(shè)置好BOOT 引腳的電平狀態(tài),以
    發(fā)表于 12-15 07:54

    請(qǐng)問(wèn)CW32的SPI時(shí)鐘頻率可調(diào)嗎?

    CW32的SPI時(shí)鐘頻率可調(diào)嗎?
    發(fā)表于 12-15 06:03

    CW32單片機(jī)如何讓生活更便捷

    這是一種全新的生活方式,它通過(guò)接收并處理傳感器的數(shù)據(jù),以控制智能馬桶的所有功能。感謝CW32單片機(jī),我們可以在日常生活中無(wú)縫地融入這種新的科技。 決定我們?nèi)绾紊畹模呀?jīng)不再只是我們的選擇,更是我們
    發(fā)表于 12-11 06:11

    CW32時(shí)鐘運(yùn)行中失效檢測(cè)的流程是什么?CW32時(shí)鐘運(yùn)行中失效檢測(cè)注意事項(xiàng)有哪些呢?

    CW32時(shí)鐘運(yùn)行中失效檢測(cè)的流程是什么?CW32時(shí)鐘運(yùn)行中失效檢測(cè)注意事項(xiàng)有哪些?
    發(fā)表于 12-10 07:22

    CW32 MCU在高頻率運(yùn)行下的系統(tǒng)穩(wěn)定性的提升方案

    在嵌入式系統(tǒng)中,CW32 MCU的高頻率運(yùn)行能夠顯著提高系統(tǒng)的處理速度和響應(yīng)能力,但也伴隨著系統(tǒng)穩(wěn)定性問(wèn)題的挑戰(zhàn),特別是跑飛現(xiàn)象的出現(xiàn)。本文將深入探討
    發(fā)表于 12-04 08:04

    CW32 MCU溫度監(jiān)測(cè)應(yīng)用

    最近,我在項(xiàng)目中使用CW32 MCU,來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的溫度監(jiān)測(cè)系統(tǒng)。CW32的靈活性和性能讓我在這個(gè)應(yīng)用中得心應(yīng)手。以下是我的實(shí)現(xiàn)過(guò)程和代碼示例。 應(yīng)用簡(jiǎn)介本項(xiàng)目通過(guò)連接一個(gè)溫度傳感器LM35來(lái)實(shí)時(shí)
    發(fā)表于 12-03 08:03

    基于芯源CW32 MCU智能家居照明控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    隨著智能家居的快速發(fā)展,照明控制系統(tǒng)成為了其重要組成部分?;谛驹?b class='flag-5'>CW32 MCU的智能家居照明控制系統(tǒng),能夠通過(guò)無(wú)線控制、自動(dòng)調(diào)節(jié)亮度、定時(shí)開關(guān)等方式,提升用戶的生**驗(yàn)。CW32
    發(fā)表于 12-03 06:06

    cw32 systick怎么用?

    cw32 systick怎么用
    發(fā)表于 12-01 08:10

    如何在CW32 MCU上優(yōu)化I2C通信

    在嵌入式系統(tǒng)中,CW32 MCU的I2C接口通常用于與各種外設(shè)(如EEPROM、傳感器等)進(jìn)行數(shù)據(jù)通信。為了實(shí)現(xiàn)高效、穩(wěn)定的I2C通信,必須考慮頻率調(diào)節(jié)和數(shù)據(jù)完整性的問(wèn)題。本文將聚焦于如何在CW32
    發(fā)表于 11-27 06:25

    CW32 MCU用什么IDE開發(fā)?

    推薦使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE開發(fā)CW32 MCU應(yīng)用,其中新版本IAR EWARM直接支持CW32 MCU,Keil MDK-ARM則需要安裝CW
    發(fā)表于 11-12 07:52

    CW32 MCU有哪些系列?

    目前CW32 MCU有通用高性能MCU、安全低功耗MCU、無(wú)線射頻MCU等3個(gè)系列。其中射頻MCU集成了無(wú)線收發(fā)器,主要包括CW32R031(2.4GHz BLE-Lite)系列和CW32W031(Sub-1G)系列。
    發(fā)表于 11-12 07:34

    工業(yè)4G路由器IR5000公交站臺(tái)物聯(lián)網(wǎng)應(yīng)用解決方案

    隨著城市化進(jìn)程的加速,公共交通是智慧城市的重要樞紐。城市公共交通由無(wú)數(shù)的公交站臺(tái)作作為節(jié)點(diǎn)組合而成,其智能化升級(jí)成為提升城市出行效率與服務(wù)質(zhì)量的關(guān)鍵。傳統(tǒng)公交站臺(tái)信息發(fā)布滯后、缺乏實(shí)時(shí)性,難以滿足
    的頭像 發(fā)表于 05-13 11:52 ?640次閱讀
    工業(yè)4G路由器IR5000<b class='flag-5'>公交站</b>臺(tái)物聯(lián)網(wǎng)應(yīng)用解決方案