基于Z—Stack的無線溫濕度采集系統(tǒng)
摘要:針對(duì)現(xiàn)有的有線溫濕度采集系統(tǒng),存在系統(tǒng)布線復(fù)雜、維護(hù)困難、成本高等問題,提出一種基于Z—Stack的無線溫濕度采集系統(tǒng)設(shè)計(jì)方法。設(shè)計(jì)采用CC2430射頻芯片及SHT11數(shù)字溫濕度傳感器,在ZigBee協(xié)議棧的基礎(chǔ)上進(jìn)行開發(fā)。闡述了系統(tǒng)的原理,節(jié)點(diǎn)的硬件設(shè)計(jì)和軟件設(shè)計(jì)。實(shí)驗(yàn)表明,該系統(tǒng)能夠穩(wěn)定可靠的實(shí)現(xiàn)溫濕度數(shù)據(jù)的采集。
關(guān)鍵詞:溫濕度;CC2430;SHT11;協(xié)調(diào)器;節(jié)點(diǎn);Z—Stack;無線通信
0 引言
在現(xiàn)代工農(nóng)業(yè)生產(chǎn)中,進(jìn)行環(huán)境的溫濕度檢測是必不可少的內(nèi)容。目前,很多場合的測溫濕系統(tǒng)采用的還是傳統(tǒng)的有線測溫濕度設(shè)備,傳統(tǒng)的多點(diǎn)分布式溫濕度測量系統(tǒng)采用有線傳輸方式,需要在現(xiàn)場進(jìn)行大量布線,這給系統(tǒng)的布設(shè)、維護(hù)和更新升級(jí)帶來諸多不便。
ZigBee是一種新興的短距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的無線網(wǎng)絡(luò)技術(shù),主要用于近距離無線連接。它依據(jù)IEEE 802.1 5.4標(biāo)準(zhǔn),在數(shù)千個(gè)微小的傳感器之間相互協(xié)調(diào)實(shí)現(xiàn)通信。它使用2.4GHz波段,采用調(diào)頻及擴(kuò)頻技術(shù),具有短時(shí)延、網(wǎng)絡(luò)容量大等特點(diǎn)。Z igBee無線網(wǎng)絡(luò)主要是為工農(nóng)業(yè)現(xiàn)場自動(dòng)化控制數(shù)據(jù)傳輸而建立。本文設(shè)計(jì)了一種基于無線射頻技術(shù)的溫濕度監(jiān)測系統(tǒng),它以射頻芯片CC2430為核心,在數(shù)字溫濕度傳感器SHT11的配合下,在ZigBee協(xié)議棧的基礎(chǔ)上進(jìn)行應(yīng)用開發(fā),能夠高效地完成環(huán)境溫濕度的無線監(jiān)測,可以有效解決復(fù)雜布線帶來的不便。
1 系統(tǒng)原理
本文設(shè)計(jì)的是基于Z—Staek的無線溫濕度數(shù)據(jù)采集系統(tǒng),在TI的Z—Stack 1.4.2協(xié)議棧的基礎(chǔ)上,實(shí)現(xiàn)無線組網(wǎng)及通信。即協(xié)調(diào)器自動(dòng)組網(wǎng),終端節(jié)點(diǎn)(附帶溫濕度傳感器)自動(dòng)入網(wǎng),并采集溫濕度數(shù)據(jù)廣播傳輸,協(xié)調(diào)器接收到信息后將溫濕度數(shù)據(jù)通過串口發(fā)送給PC計(jì)算機(jī)顯示。以此實(shí)現(xiàn)基于Z—Stack協(xié)議棧的溫濕度數(shù)據(jù)的無線透明傳輸,其原理框圖如圖1所示。
本系統(tǒng)主要由五個(gè)單元模塊構(gòu)成:數(shù)字溫濕度傳感器、傳感器節(jié)點(diǎn)、協(xié)調(diào)器、上位機(jī)和能量供應(yīng)模塊組成。數(shù)字溫濕度傳感器模塊,負(fù)責(zé)區(qū)域內(nèi)的溫濕度信息采集和數(shù)據(jù)轉(zhuǎn)換;傳感器節(jié)點(diǎn)中的微控制器負(fù)責(zé)控制整個(gè)傳感器節(jié)點(diǎn)的操作和數(shù)據(jù)存儲(chǔ);ZigBee無線收發(fā)模塊負(fù)責(zé)對(duì)信號(hào)進(jìn)行處理發(fā)送;傳感器節(jié)點(diǎn)由溫濕度傳感器SHT11檢測得到溫濕度信息,并轉(zhuǎn)化為數(shù)字信號(hào),傳輸至CC2430,由CC2430負(fù)責(zé)對(duì)信號(hào)進(jìn)行處理發(fā)送。節(jié)點(diǎn)電源部分使用兩節(jié)AA電池,通過一個(gè)電壓轉(zhuǎn)換芯片BL8555將電壓轉(zhuǎn)化成3.3 V。其中協(xié)調(diào)器是匯聚節(jié)點(diǎn),多個(gè)溫濕度傳感器節(jié)點(diǎn)放置于不同的監(jiān)測區(qū)域,每個(gè)傳感器都會(huì)把采集的溫濕度送給傳感器節(jié)點(diǎn),再由傳感器節(jié)點(diǎn)把數(shù)據(jù)通過ZigBee無線傳輸給協(xié)調(diào)器,然后協(xié)調(diào)器統(tǒng)一把數(shù)據(jù)傳送給上位機(jī)做進(jìn)一步處理和顯示。
2 硬件設(shè)計(jì)
2.1 傳感器節(jié)點(diǎn)硬件設(shè)計(jì)
傳感器節(jié)點(diǎn)主要由數(shù)字溫濕度傳感器、微控制器及無線通信電路組成。傳感器節(jié)點(diǎn)的主控制器實(shí)時(shí)采集處理溫濕度數(shù)據(jù)后,將數(shù)據(jù)傳遞給CC2430無線通信模塊,以實(shí)現(xiàn)數(shù)據(jù)的定時(shí)發(fā)送。
2.2 通信節(jié)點(diǎn)硬件設(shè)計(jì)
協(xié)調(diào)器負(fù)責(zé)建立無線網(wǎng)絡(luò)、發(fā)送網(wǎng)絡(luò)信標(biāo)、存儲(chǔ)網(wǎng)絡(luò)節(jié)點(diǎn)信息、對(duì)消息進(jìn)行路由選擇等任務(wù),其硬件組成主要包括處理器、時(shí)鐘電路、存儲(chǔ)器、電平轉(zhuǎn)換電路、天線等部分。在本系統(tǒng)中協(xié)調(diào)器節(jié)點(diǎn)采用CC2430為核心的控制器,它只需少量的外圍電路即可實(shí)現(xiàn)無線通信功能,硬件電路如圖2所示。
3 軟件設(shè)計(jì)
本系統(tǒng)基于TI的Z—Stack協(xié)議棧,Z—Stack采用操作系統(tǒng)的思想來構(gòu)建,采用事件輪詢機(jī)制,當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式,當(dāng)事件發(fā)生時(shí),喚醒系統(tǒng),開始進(jìn)入中斷處理事件,結(jié)束后繼續(xù)進(jìn)入低功耗模式,如果同時(shí)有幾個(gè)事件發(fā)生,判斷優(yōu)先級(jí),逐次處理事件。整個(gè)Z—Stack的主要工作流程,大致分為系統(tǒng)啟動(dòng),驅(qū)動(dòng)初始化,OSAL初始化和啟動(dòng),進(jìn)入任務(wù)輪循幾個(gè)階段,Z—Stack系統(tǒng)運(yùn)行流程如圖3所示。
3.1 節(jié)點(diǎn)軟件設(shè)計(jì)
在本采集系統(tǒng)中,各節(jié)點(diǎn)的系統(tǒng)底層采用TI公司的Z—Stack協(xié)議棧,各節(jié)點(diǎn)的network_specific參數(shù)配置相同。協(xié)調(diào)器首先在某個(gè)頻段發(fā)起一個(gè)網(wǎng)絡(luò),網(wǎng)絡(luò)頻段的定義放在DEFAULT_CHANLIST配置文件里,并根據(jù)ZDAPP_CONFIG_PANID的定義建立PAN ID,并掃描DEFAULT_CHANLI ST指定的所有信道,并選擇最佳信道組建網(wǎng)絡(luò)。傳感器節(jié)點(diǎn)啟動(dòng)后,掃描DEFAULT_CHANLIST所指定的信道并根據(jù)ZDAPP_CONFIG_PANID所定義的PANID自動(dòng)加入網(wǎng)路。各節(jié)點(diǎn)的軟件流程如圖4,圖5所示。
3.2 溫濕度傳感器采集流程圖
與CC2430相連DATA、SCK兩引腳,通過SCK引腳線可以實(shí)現(xiàn)對(duì)SHT11的控制,通過DATA引腳線可以傳輸傳感器采集的數(shù)據(jù),本系統(tǒng)中溫濕度傳感器的時(shí)鐘線與傳感器節(jié)點(diǎn)CC2430的P0_0線連接,數(shù)據(jù)線與P0_1線相連,采集中設(shè)置SHT11的工作精度為14位溫度,12位的濕度測量,總流程圖如圖6所示,讀取溫濕度流程圖如圖7所示。
3.3基于Z—Stack協(xié)議棧的溫濕度數(shù)據(jù)無線透明傳輸?shù)膶?shí)現(xiàn)
在Z-Stack協(xié)議棧中,協(xié)調(diào)器自啟動(dòng),節(jié)點(diǎn)設(shè)備自動(dòng)入網(wǎng)之后,兩者建立無線通信,數(shù)據(jù)的發(fā)送主要有兩種方式,一種為周期定時(shí)發(fā)送信息,另一種需要通過按鍵事件觸發(fā)發(fā)送FLASH信息,在本設(shè)計(jì)中采用周期定時(shí)廣播的方式發(fā)送ZigBee節(jié)點(diǎn)端采集到的溫濕度數(shù)據(jù)。在Z-Stack中,每個(gè)應(yīng)用任務(wù)都通過調(diào)用應(yīng)用層的ProcessEvent()函數(shù)來處理任務(wù)事件,在ProcessEvent()中有一個(gè)事件處理循環(huán),循環(huán)檢測事件的發(fā)生。因此在節(jié)點(diǎn)模塊端的SampleApp_SendPeriodicMessage周期信息發(fā)送函數(shù)中添加溫濕度采集函數(shù),并通過AF_DataRequest()函數(shù)接口實(shí)現(xiàn)溫濕度數(shù)據(jù)的無線發(fā)送,同樣在協(xié)調(diào)器信息處理函數(shù)SampleAPP_MessageCB中,添加溫濕度數(shù)據(jù)處理和發(fā)送函數(shù),并在協(xié)調(diào)器的應(yīng)用層通過檢測AF_INCOMING_MSG_CMD消息事件來判斷是否有數(shù)據(jù)收到,有數(shù)據(jù)時(shí),將捕獲的溫濕度數(shù)據(jù)處理后,以字符串的形式通過串口顯示在PC機(jī)的終端中。利用超級(jí)終端接收到的溫濕度數(shù)據(jù)如圖8所示。
4 結(jié)論
本系統(tǒng)在啟動(dòng)協(xié)調(diào)器模塊后,能實(shí)現(xiàn)自動(dòng)組網(wǎng),節(jié)點(diǎn)端自動(dòng)入網(wǎng),并能將采集的溫濕度數(shù)據(jù)廣播發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器接收到信息后通過串口將接收到的溫濕度數(shù)據(jù)發(fā)送給PC機(jī),本系統(tǒng)具有低復(fù)雜度、低功耗、短時(shí)延、網(wǎng)絡(luò)容量大等特點(diǎn),并解決了傳統(tǒng)的有線傳輸方式,需要在現(xiàn)場進(jìn)行大量布線,系統(tǒng)的布設(shè)、維護(hù)和更新升級(jí)的困擾,系統(tǒng)運(yùn)行穩(wěn)定、可靠,能精確實(shí)現(xiàn)溫濕度數(shù)據(jù)的采集、傳輸,在實(shí)際中有很好的應(yīng)用價(jià)值。