RM新时代网站-首页

聚豐項目 > 基于zigbee技術的空氣質(zhì)量監(jiān)控系統(tǒng)

基于zigbee技術的空氣質(zhì)量監(jiān)控系統(tǒng)

空氣質(zhì)量監(jiān)控系統(tǒng)基于IDT氣體流量傳感器ZMOD4410模塊而設計。主控芯片采用高性能意法半導體公司Cortex-M4系列微控制器STM32F407ZET6,并采用CC2650模塊無線2.4GHz作為zigbee無線傳輸功能,并根據(jù)氣體傳感器監(jiān)測數(shù)據(jù)做出預警。 zigbee技術是一種低功耗、短距離、低成本的無線通信技術,其PHY層和MAC層協(xié)議為802.15.4標準協(xié)議,網(wǎng)絡層由zigbee技術聯(lián)盟制訂,可以提供靈活的組網(wǎng)方式。 本項目采用模塊化方案設計,主要構成系統(tǒng)的模塊有STM32F407ZET6主控、CC2650模塊、底板、傳感器模塊等。便于擴展各類傳感器模塊,實現(xiàn)家庭燃氣、水、溫濕度、空氣質(zhì)量等的實時在線監(jiān)測功能。軟件采用開源嵌入式實時操作系統(tǒng)RT-Thread,具有組件豐富、可靠性高等諸多優(yōu)點。

大雨淅淅 大雨淅淅

分享
3 喜歡這個項目
團隊介紹

大雨淅淅 大雨淅淅

團隊成員

嚴敏 軟件工程師

張影影 隊長

分享
項目簡介
空氣質(zhì)量監(jiān)控系統(tǒng)基于IDT氣體流量傳感器ZMOD4410模塊而設計。主控芯片采用高性能意法半導體公司Cortex-M4系列微控制器STM32F407ZET6,并采用CC2650模塊無線2.4GHz作為zigbee無線傳輸功能,并根據(jù)氣體傳感器監(jiān)測數(shù)據(jù)做出預警。 zigbee技術是一種低功耗、短距離、低成本的無線通信技術,其PHY層和MAC層協(xié)議為802.15.4標準協(xié)議,網(wǎng)絡層由zigbee技術聯(lián)盟制訂,可以提供靈活的組網(wǎng)方式。 本項目采用模塊化方案設計,主要構成系統(tǒng)的模塊有STM32F407ZET6主控、CC2650模塊、底板、傳感器模塊等。便于擴展各類傳感器模塊,實現(xiàn)家庭燃氣、水、溫濕度、空氣質(zhì)量等的實時在線監(jiān)測功能。軟件采用開源嵌入式實時操作系統(tǒng)RT-Thread,具有組件豐富、可靠性高等諸多優(yōu)點。
硬件說明

1、電源模塊

過分析,此項目所需功耗約為2W,電源模塊采用寬輸入電壓,低噪聲,總共有3個穩(wěn)壓芯片:U15/U16/U18,DC_IN用于外部直流電源輸入,經(jīng)過U15DC-DC芯片轉(zhuǎn)換為5V電源輸出,其中D4是防反接二極管,避免外部直流電源極性搞錯的時候,燒壞開發(fā)板。K1為開發(fā)板的總電源開關,F11000ma自恢復保險絲,用于保護USB。

2、STM32F407ZET6主控模塊

本項目選擇的是STM32F407ZGT6作為MCU,該芯片是STM32F407里面配置非常強大的了,它擁有的資源包括:集成FPUDSP指令,并具有192KB SRAM、1024KB FLASH1216位定時器、232位定時器、2DMA控制器(共16個通道)、3SPI、2個全雙工I2S、3IIC6個串口、2USB(支持HOST /SLAVE)、2CAN312ADC212DAC、1RTC(帶日歷功能)、1SDIO接口、1FSMC接口、110/100M以太網(wǎng)MAC控制器、1個攝像頭接口、1個硬件隨機數(shù)生成器、以及112個通用IO口等。該芯片的配置十分強悍,很多功能相對STM32F1來說進行了重大改進,比如FSMC的速度,F4刷屏速度可達3300W像素/秒,而F1的速度則只有500W左右。

STM32F407ZGT6主控模塊外接LCD模塊、電源模塊、3G模塊、CC2650模塊等,作為整個系統(tǒng)核心處理部分,通過UART外接CC2650模塊,將收集到的數(shù)據(jù)做進一步處理,將收到的實時數(shù)據(jù)處理后顯示在LCD顯示屏上,根據(jù)eco2、IAQ的值的變化,如果超過預警值將進行報警,提醒用戶做出反應,并可以通過3G模塊將告警信息傳輸?shù)绞謾C上。

22.jpg

3、CC2650模塊

33.jpg

4、LCD模塊

LCD接口連接在STM32F407ZGT6FSMC總線上面,可以顯著提高LCD的刷屏速度。LCD模塊主要用于顯示氣體傳感器傳輸過來的eco2數(shù)值和IAQ,便于直觀反映。

44.jpg

5、ZMOD4410模塊

氣體傳感器模塊采用IDT 公司高性能ZMOD4410模塊,實現(xiàn)對氣體流量的采樣,工作電流僅為30mA(5V 電壓),其精度達到2%,具有數(shù)字I2C 接口和模擬輸出接口,是實現(xiàn)氣體流量檢測的最佳選擇。本項目采用排線外接CC2650模塊的IIC接口,將監(jiān)測數(shù)據(jù)傳給cc2650,然后通過無線方式傳輸?shù)脚cSTM32連接的CC2650模塊上,從而達到遠程監(jiān)控的功能

55.jpg


軟件說明

本項目用到的模塊比較多,軟件功能主要集中在是STM32407處理模塊、CC2650無線傳輸模塊、ZMOD4410氣體監(jiān)測模塊上。其中ZMOD4410氣體監(jiān)測模塊由IDT廠家給出了API開發(fā)包,將給出的.a文件加入到STM32407處理模塊程序的編譯中,多收到的氣體傳感器數(shù)據(jù)進行處理,經(jīng)過轉(zhuǎn)換獲取可顯示ECO2、IAQ值,若使用裸機程序編寫,將花費大量時間安排各模塊工作流程,以保證各模塊之間無縫配合。因此本項目采用嵌入式RTOS 進行程序設計,各個軟件功能采用模塊化、多任務設計。

1、    軟件整體設計方案

  設計采用開源嵌入式系統(tǒng)RT-Thread 作為運行基本系統(tǒng)。在此基礎上增加各模塊使用的驅(qū)動和線程函數(shù),系統(tǒng)每10ms 進行一次進行線程調(diào)度,保證系統(tǒng)實時性。軟件整體設計流程如下圖。


新建 Microsoft Visio 繪圖 (3).jpg

2、    CC2650無線傳輸模塊軟件設計方案


新建 Microsoft Visio 繪圖 (4).jpg

// 初始化GAS

void Init_GAS(void)

{

  P1SEL &= ~0xc0; //作為普通 IO 口

  SDA_OUT();

  SCL_OUT(); 

  Write_GAS(PWR_MGMT_1, 0x00);//電源管理,典型值:0x00(正常啟用)

  Write_GAS (SMPLRT_DIV, 0x07);

  Write_GAS (CONFIG, 0x06);

  Write_GAS (GYRO_CONFIG, 0x18);

  Write_GAS (ACCEL_CONFIG, 0x01); 

}

 

//連續(xù)讀出GAS內(nèi)部數(shù)據(jù)

void Multiple_read_GAS(void)

{   

  char BUF[12]; //接收數(shù)據(jù)緩存區(qū)  

  BUF[0]= ead_GAS(ACCEL_XOUT_H);

  BUF[1]= Read_GAS (ACCEL_XOUT_L);

  BUF[2]= Read_GAS (ACCEL_YOUT_H);

  BUF[3]= Read_GAS (ACCEL_YOUT_L);

  BUF[4]= Read_GAS (ACCEL_ZOUT_H);

  BUF[5]= Read_GAS (ACCEL_ZOUT_L);

  

  BUF[6]= Read_GAS (GYRO_XOUT_H);

  BUF[7]= Read_GAS (GYRO_XOUT_L);

  BUF[8]= Read_GAS (GYRO_YOUT_H);

  BUF[9]= Read_GAS (GYRO_YOUT_L);

  BUF[10]= Read_GAS (GYRO_ZOUT_H);

  BUF[11]= Read_GAS (GYRO_ZOUT_L);

  

  accX=(BUF[0]<<8)|BUF[1]; 

  accY=(BUF[2]<<8)|BUF[3]; 

  accZ=(BUF[4]<<8)|BUF[5]; 

  graX=(BUF[6]<<8)|BUF[7];

  graY=(BUF[8]<<8)|BUF[9];

  graZ=(BUF[10]<<8)|BUF[11];

}

 


               zigbee終端設備軟件方案

3、    系統(tǒng)初始化

board_init(); //開發(fā)板初始化

uart_init(115200);   //初始化串口波特率115200

LCD_Init(); //LCD顯示初始化

alarm_init();//警報初始化

4、    LCD顯示

void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)

{        

    u8 x0=x;

    width+=x;

    height+=y;

    while((*p<='~')&&(*p>=' '))//?D??ê?2?ê?·?·¨×?·?!

    {      

        if(x>=width){x=x0;y+=size;}

        if(y>=height)break;//í?3?

        LCD_ShowChar(x,y,*p,size,0);

        x+=size/2;

        p++;

    } 

}

66.jpg

5、    預警模塊

void alarm(void)

{

GPIO_ResetBits(GPIOF,GPIO_Pin_9);

GPIO_ResetBits(GPIOF,GPIO_Pin_8);

delay_ms(300);                

GPIO_SetBits(GPIOF,GPIO_Pin_9);

GPIO_SetBits(GPIOF,GPIO_Pin_8);

delay_ms(300);            

}                   

   由于條件限制,沒能將風機等加上去,只是通過板子上的蜂鳴器報警達到預警效果,如果室內(nèi)環(huán)境變差,可以通過打開風機進行環(huán)境空氣流轉(zhuǎn),達到M2M的效果


演示效果

氣體傳感器收集數(shù)據(jù)通過IIC上傳到zigbee終端模塊,zigbee終端模塊將數(shù)據(jù)通過2.4G發(fā)送到zigebee協(xié)調(diào)器,zigbee協(xié)調(diào)器通過UART將數(shù)據(jù)上傳到主控模塊,主控將數(shù)據(jù)進行轉(zhuǎn)換,通過LCD顯示ECO2、IAQ值,如果值不正常說明空氣質(zhì)量問題,通過蜂鳴器發(fā)出警報,并通過3G模塊將數(shù)據(jù)發(fā)送到個人手機上

附件

(0.75 MB)下載

評論區(qū)(0 )
RM新时代网站-首页