文獻標識碼: A
文章編號: 0258-7998(2015)02-0086-03
0 引言
甲醛是一種致癌、致畸物質(zhì),但其作為重要的有機原料以其低廉的價格在家裝建材中的應用卻無處不在,而且室內(nèi)裝修材料中的甲醛釋放期通常在3~15年左右[1]。天然氣、液化氣作為燃氣以其經(jīng)濟實用、即開即用、省時方便等優(yōu)點,近年來在人們的生產(chǎn)和生活中也得到了廣泛的應用[2]。然而,人們在享受科技帶來便利的同時,也承擔著潛在的難以估量的風險。
近年來由室內(nèi)甲醛含量超標和天然氣、液化氣泄露爆炸引起的人身傷害案例枚不勝舉,甲醛超標和燃氣泄露儼然成為危害人們生命財產(chǎn)安全的隱形殺手。因此,針對室內(nèi)空氣環(huán)境安全的監(jiān)控變得愈發(fā)重要,相應研究也在各研究機構(gòu)逐漸展開[3-5]。ZigBee技術作為短距離無線通信技術[6-7],以其低成本、低功耗、自組網(wǎng)等優(yōu)點在工業(yè)監(jiān)控領域的應用越來越廣,尤其伴隨著ZigBee 2007協(xié)議的逐漸成熟,其在智能家居和商業(yè)樓宇自動化方面的應用前景越來越大[8-10]。本文基于此提出并設計了一套室內(nèi)空氣環(huán)境監(jiān)測控制系統(tǒng),用以檢測燃氣泄露和甲醛濃度超標等安全隱患,旨在保障人民人身及財產(chǎn)安全。
1 系統(tǒng)概述
系統(tǒng)設計主要由中控中心、終端傳感器節(jié)點及控制部分、顯示輸出及聲光報警部分組成。系統(tǒng)整體構(gòu)架如圖1所示。
附載有燃氣傳感器和甲醛傳感器的端節(jié)點在采集到有燃氣泄露或甲醛超標的情況下,通過本節(jié)點的CC2530控制器控制燃氣閥門的關閉、排風扇的開啟,同時將燃氣泄露或甲醛超標這一事件以自定義的幀格式通過Z-Stack協(xié)議棧無線發(fā)送給協(xié)調(diào)器端的CC2530;然后其通過串口發(fā)送給STM32,STM32經(jīng)過分析幀格式做出相應處理,通過LCD液晶顯示燃氣泄露、甲醛超標等信息并產(chǎn)生聲光報警。另外,協(xié)調(diào)器端可以通過按鍵向端節(jié)點廣播發(fā)送數(shù)據(jù)或控制信息,像遙控器一樣控制天然氣閥門及排風扇的開啟和關閉。
2 硬件設計
2.1 控制系統(tǒng)模塊硬件設計
系統(tǒng)中控中心采用STM32F103C8T6為主控制器,STM32F103增強型系列使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,工作頻率為72 MHz,具有豐富的片上資源和多種標準通信I/O接口。
作為協(xié)調(diào)器端的主控制器,STM32F103C8T6主要擔負著協(xié)調(diào)控制整個系統(tǒng)的職責,同時驅(qū)動蜂鳴器和液晶顯示。STM32F103C8T6 與ZigBee無線傳感網(wǎng)絡通過PA9與PA10引腳與作為協(xié)調(diào)器的CC2530芯片的P0_1和P0_2端口相連,在實際編程操作時,需通過配置相應函數(shù)及寄存器設置PA9與PA10為串口模式。LCD液晶顯示端口采用STM32的PB組IO驅(qū)動。
2.2 端節(jié)點模塊硬件設計
系統(tǒng)端節(jié)點和協(xié)調(diào)器端都采用CC2530F256芯片作為控制器,其是用于2.4 GHz IEEE 802.15.4、ZigBee的一個真正的片上系統(tǒng)(SoC)解決方案[11]。整合了全集成的高效射頻收發(fā)機及業(yè)界標準的增強型8051微控制器、8 KB的RAM和其他強大的支持功能和外設,具有18個中斷源、兩個Uart串口收發(fā)器,內(nèi)置ADC并支持7到12位的分辨率,能夠以非常低的材料成本建立強大的網(wǎng)絡節(jié)點。CC2530的最小系統(tǒng)如圖2所示。
2.3 傳感器模塊設計
端節(jié)點模塊的設計采用MQ-2氣敏傳感器、MQ-138甲醛傳感器采集數(shù)據(jù),MQ系列傳感器以其高靈敏度特性、價格低廉及驅(qū)動電路簡單等特點廣泛適用于家庭和工廠的氣體監(jiān)測。其驅(qū)動電路如圖3所示。
如圖所示,MQ-X傳感器可以直接輸出模擬信號,經(jīng)過LM393雙電壓比較器之后輸出數(shù)字信號,可以直接與CC2530芯片I/O引腳相連,通過調(diào)節(jié)電位器R調(diào)節(jié)傳感器靈敏度,通過檢測端口電平實現(xiàn)氣體預警檢測。如需檢測較高精度的濃度信息,可以使用模擬輸出,通過配置CC2530的APCCFG寄存器配置P0口為模擬輸入口,同時配置ADCCON1、ADCCON2和ADCCON3相應寄存器,便可以實現(xiàn)高達12位分辨率的高精度A/D轉(zhuǎn)換。本設計中,端節(jié)點的傳感器檢測信號采用DOUT與CC2530的P2_0端口相連。
3 系統(tǒng)軟件設計
ZigBee芯片CC2530的開發(fā)采用軟件IAR Embedded Workbench IDE,系統(tǒng)設計基于TI ZStack-CC2530-2.5.1a版本協(xié)議棧,綜合考量室內(nèi)環(huán)境的空間布局,系統(tǒng)采用星型網(wǎng)絡拓撲結(jié)構(gòu)來構(gòu)建WSN(Wireless Sensor Networks)網(wǎng)絡[12]。
3.1 Z-Stack協(xié)議棧開發(fā)概述
Z-Stack協(xié)議棧利用操作系統(tǒng)的思想來構(gòu)建,采用事件輪詢機制,當各層初始化之后,系統(tǒng)進入低功耗模式。當事件發(fā)生時喚醒系統(tǒng),開始進入中斷處理事件,結(jié)束后繼續(xù)進入低功耗模式。如果同時有幾個事件發(fā)生,判斷優(yōu)先級,逐次處理事件。協(xié)議棧程序流程圖如圖4所示。
Z-Stack協(xié)議棧中有3個變量至關重要:(1)taskCnt變量,保存了任務的總個數(shù);(2)taskEvent指針變量,指向事件表的首地址;(3)taskArr數(shù)組變量,該數(shù)組的每一項都是一個函數(shù)指針,指向事件處理函數(shù)。在針對Z-stack協(xié)議棧進行開發(fā)時,要理解協(xié)議棧中每個文件夾的功能,同時需要對3個變量的意義有清楚的認知,學會調(diào)用協(xié)議棧提供的一些函數(shù)接口,能夠在協(xié)議棧相應文件中的合適位置添加或改動程序。
針對Z-Stack協(xié)議棧的開發(fā)步驟是:(1)在osalInitTasks()函數(shù)中添加任務號;(2)將事件處理函數(shù)指針添加到pTaskEventHandlerFn tasksArr[]的最后,因為tasksEvents和tasksArr[]里的順序是一一對應的,tasksArr[]中的第i個事件處理函數(shù)對應于tasksEvents中的第i個任務的事件;(3)根據(jù)系統(tǒng)設計需要編寫事件處理函數(shù),處理硬件設置與事件邏輯。
節(jié)點上電以后,協(xié)議棧通過HalDriverInit()和osal_init_system()等函數(shù)對軟硬件初始化,然后進入函數(shù)osal_start_system()中,程序不會再返回。在此函數(shù)中檢測是否有事件發(fā)生,并在SampleApp_ProcessEvent(uint8 task_id, uint16 events)函數(shù)中處理事件。
本設計按實際需要在協(xié)議棧中修改的函數(shù)主要有:(1)MT層串口初始化函數(shù)MT_UartInit (),在該函數(shù)中自定義了串口接受數(shù)據(jù)協(xié)議、串口數(shù)據(jù)控制方式和波特率,通過函數(shù) osal_set_event(SampleApp_TaskID, UART_RX_CB_EVT)設置了觸發(fā)事件,并把串口回調(diào)函數(shù)指針傳遞給uartConfig.callBackFunc調(diào)用;(2)任務處理函數(shù)SampleApp_ProcessEvent( uint8 task_id, uint16 events),通過不同事件的標志,做出相應的邏輯處理。(3)自定義函數(shù)Sample-
App_SPI_SendData(uint8 *buf, uint8 len),處理來自STM32的串口信息,廣播發(fā)送信息至終端,使終端做出相應控制。
3.2 終端節(jié)點軟件設計
終端節(jié)點的主要功能有:(1)加入監(jiān)控網(wǎng)絡;(2)采集傳感器數(shù)據(jù)將數(shù)據(jù)傳送至協(xié)調(diào)器;(3)接收來自協(xié)調(diào)器的控制指令,完成相應任務。本設計中終端節(jié)點全部設置為路由,當路由不再轉(zhuǎn)發(fā)信息時將自動退化為終端節(jié)點。終端節(jié)點的軟件設計流程如圖5所示。
端節(jié)點作為一個獨立的系統(tǒng),通過CC2530可以實現(xiàn)相應控制,包括通過控制機械手臂關閉燃氣閥門和排風扇的開關等,無需協(xié)調(diào)器的干預。
3.3 協(xié)調(diào)器端軟件設計
協(xié)調(diào)器的主要功能是:(1)組建網(wǎng)絡;(2)向串口發(fā)送或從串口接收數(shù)據(jù)。(3)廣播消息。協(xié)調(diào)器端軟件設計流程如圖6所示。
3.4 程序下載配置與驗證
打開IAR Embedded Work-bench IDE可以發(fā)現(xiàn),在work-space功能框上有一個下拉三角按鈕,點開可以看到有DemoEB、Coordinator、RouterEB和EndDeviceEB等選項,每一項對應一種設備類型屬性,通過選擇不同的設備類型選項來編譯下載程序到CC2530芯片中,這樣就鎖定了該片芯片的設備類型。
在相應的設備類型下通過option選項里設置COORDINATOR=0或者1,然后在程序內(nèi)部通過在相應程序段或數(shù)據(jù)前使用#ifdef ZDO_COORDINATOR或者#ifndef ZDO_COORDINATOR 宏定義來使能不同設備類型的處理函數(shù)。
配置好option對話框中C/C++ compiler菜單中的preprocessor中的Defined sysmbol后, 點擊菜單欄中的make圖標 ,進行編譯,之后使用SmartRF04EB下載器連接CC2530,點擊快捷圖標Download and Debug 進行下載。之后把終端節(jié)點的裝置連接好,并在廚房內(nèi)進行了燃氣傳感器的模擬測試,用刨花板、膠合板制作了簡易盒子對甲醛傳感器進行驗證測試。
4 結(jié)束語
本文研究的是室內(nèi)空氣環(huán)境的安全監(jiān)測系統(tǒng)設計,可以有效預防燃氣泄露和甲醛超標造成的人身財產(chǎn)損害,具有一定的推廣價值,經(jīng)濟潛力巨大。目前系統(tǒng)通過若干結(jié)點實現(xiàn)了對室內(nèi)空氣中可能出現(xiàn)的主要危害進行了監(jiān)測,并沒有充分發(fā)揮ZigBee技術的強大功能,還有更多值得被監(jiān)測的信息需要被監(jiān)測,需要更多的傳感器結(jié)點加入進來。下一步將對傳感器結(jié)點的數(shù)量和協(xié)調(diào)器的處理算法進行擴展和優(yōu)化,實現(xiàn)低功耗、全方位、安全高效的目標。
參考文獻
[1] 韓愈.室內(nèi)甲醛污染與防治對策探究.科技信息[J].科技信息,2014(7):262-263.
[2] 賈承造,張永峰,趙霞.中國天然氣工業(yè)發(fā)展前景與挑戰(zhàn)[J].天然氣工業(yè),2014,34(2):1-11.
[3] 李成祥.智能型室內(nèi)空氣質(zhì)量檢測與控制系統(tǒng)[D].北京:北京交通大學,2011.
[4] 謝躍東.基于MSP430的室內(nèi)甲醛檢測儀的設計[D].太原:太原理工大學,2012.
[5] 方熙坤.室內(nèi)空氣質(zhì)量監(jiān)測的探討[J].資源節(jié)約與環(huán)保,2013(8):166-167.
[6] 閆沫.ZigBee協(xié)議棧的分析與設計[D].廈門:廈門大學,2007.
[7] Hu Xiangdong,Xu Hongru,Han Kaimin.Design and imple-mentation of secure nodes in the based-Internet-of-Thingsintelligent household[J].Journal of Computer and Communi-cations,2014,2(7):1-7.
[8] 蔡利婷,陳平華,羅彬,等.基于CC2530的ZigBee數(shù)據(jù)采集系統(tǒng)設計[J].計算機技術與發(fā)展,2012,22(11):197-200.
[9] 紀麗猛.基于ZigBee技術的無線數(shù)據(jù)采集系統(tǒng)研究與設計[D].秦皇島:燕山大學,2013.
[10] 王娟.基于ZigBee無線傳感網(wǎng)絡的智能家居系統(tǒng)設計與實現(xiàn)[D].南昌:東華理工大學,2013.
[11] 王小強,歐陽俊,黃寧淋.ZigBee無線傳感器網(wǎng)絡設計與實現(xiàn)[M].北京:化學工業(yè)出版社,2012:180-212.
[12] 黃真.基于ZStack的WSN節(jié)點中斷程序設計[J].單片機與嵌入式系統(tǒng)應用,2011(7):79-81.