具有無線通信功能的環(huán)境溫度監(jiān)測系統(tǒng)
摘要:設(shè)計了一種基于ZigBee和GPRS的環(huán)境溫度遠(yuǎn)程無線監(jiān)測系統(tǒng)。該系統(tǒng)通過溫度傳感器采集數(shù)據(jù)后,在CC2430單片機內(nèi)部作以處理,并控制GPRS模塊進行無線數(shù)據(jù)傳輸,闡述了用VB6.0實現(xiàn)數(shù)據(jù)分析處理的軟件設(shè)計。通過對采集的數(shù)據(jù)進行曲線分析,數(shù)據(jù)采集精度控制在了5%以內(nèi),穩(wěn)定性好。
關(guān)鍵詞:環(huán)境溫度;GPRS;ZigBee;無線監(jiān)測系統(tǒng)
溫度在工農(nóng)業(yè)生產(chǎn)、科研以及辦公設(shè)備自動化領(lǐng)域中,是一種十分重要的數(shù)據(jù)。溫度的測量和控制在儲糧倉庫、智能樓宇空調(diào)控制及其他的工農(nóng)業(yè)生產(chǎn)和科學(xué)研究中應(yīng)用廣泛。文中介紹了一種環(huán)境溫度監(jiān)測系統(tǒng)可以實時多點監(jiān)測庫房或其他對溫度要求十分嚴(yán)格的場所,并通過無線協(xié)調(diào)器控制GPRS進行聯(lián)網(wǎng)實時顯示,進行溫度監(jiān)測。報警還可通過GPRS以短信的方式發(fā)送到管理員的手機上,以便及時處理。
1 系統(tǒng)總體構(gòu)成
系統(tǒng)以CC2430單片機為核心,作為下位機實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)存儲、數(shù)據(jù)傳輸功能。無線傳感器監(jiān)測網(wǎng)絡(luò)由多個無線傳感器節(jié)點、無線網(wǎng)關(guān)和帶有GPRS嵌入式系統(tǒng)組成,實時測量溫度參數(shù),所有節(jié)點采集的現(xiàn)場數(shù)據(jù)通過ZigBee無線通信技術(shù)最終路由到網(wǎng)關(guān)節(jié)點,由網(wǎng)關(guān)節(jié)點將全部數(shù)據(jù)傳輸給GPRS模塊,最終通過GPRS和Internet網(wǎng)絡(luò),將數(shù)據(jù)轉(zhuǎn)發(fā)至遠(yuǎn)程數(shù)據(jù)監(jiān)控中心。在VB6.0編程環(huán)境下實現(xiàn)了上位機對下位機的控制和數(shù)據(jù)的存儲、處理、分析。上位機和下位機之間采用無線通信方式進行傳輸。該系統(tǒng)采用ZigBee的網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu)進行數(shù)據(jù)采集,ZigRee網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。系統(tǒng)整體結(jié)構(gòu)組成如圖2所示。
2 硬件電路設(shè)計
2.1 傳感器節(jié)點硬件設(shè)計
根據(jù)無線傳感器網(wǎng)絡(luò)的應(yīng)用需求以及功能要求,無線網(wǎng)絡(luò)傳感器節(jié)點主要包括傳感器單元、處理器單元、射頻單元等。傳感器DS18B20負(fù)責(zé)采集溫度參數(shù)。數(shù)據(jù)提供給CC2430進行處理、分析并將數(shù)據(jù)發(fā)送給ZigBee協(xié)調(diào)器節(jié)點。
2.2 ZigBee協(xié)調(diào)器節(jié)點設(shè)計
ZigBee協(xié)調(diào)器節(jié)點與GPRS模塊SIM300進行有線的串口通信,節(jié)點單片機CC2430將從傳感器節(jié)點處獲得的溫度數(shù)據(jù)經(jīng)行地址分類和處理,通過RS-232通信接口進行傳輸,單片機可以發(fā)送AT指令對SIM300進行控制,設(shè)置發(fā)送模式,發(fā)送短消息進行數(shù)據(jù)傳輸。可以快速、安全、可靠地實現(xiàn)系統(tǒng)方案中的數(shù)據(jù)和短消息服務(wù)。
3 軟件設(shè)計
文中應(yīng)用IAR Embedded Workbench開發(fā)環(huán)境,在TI提供的ZStack-1.4.2-1.1.0協(xié)議棧的基礎(chǔ)上,編寫了本系統(tǒng)的應(yīng)用程序代碼。 ZStack協(xié)議棧提供了一些應(yīng)用接口,如aplFormNetwork()、aplJoinNetwork()、aplSendMSG()等函數(shù),用戶可以通過調(diào)用這些函數(shù)來編寫自己的開發(fā)與應(yīng)用程序。單片機CC2430通過串行通信對SIM300模塊進行寫AT指令來完成GPRS模塊的無線通訊功能。
3.1 傳感器節(jié)點數(shù)據(jù)采集
當(dāng)CC2430內(nèi)部的定時器定時溢出時,從休眠狀態(tài)喚醒傳感器。程序啟動后,首先對傳感器節(jié)點內(nèi)的各模塊進行初始化工作。然后進行各模塊的配置,配置完成后進行傳感器數(shù)據(jù)采集,數(shù)據(jù)采集完后統(tǒng)一發(fā)送到網(wǎng)關(guān)節(jié)點。在數(shù)據(jù)采集次數(shù)達(dá)到規(guī)定次數(shù)時,傳感器節(jié)點進入休眠狀態(tài),等待下一次數(shù)據(jù)采集。傳感器節(jié)點數(shù)據(jù)采集流程圖如圖3所示。
3.2 ZigBee網(wǎng)絡(luò)的建立和加入
3.2.1 網(wǎng)絡(luò)的建立
在ZigBee網(wǎng)絡(luò)中,網(wǎng)絡(luò)協(xié)調(diào)器具有建立一個網(wǎng)絡(luò)、維護鄰居設(shè)備表、對邏輯網(wǎng)絡(luò)地址進行分配、允許設(shè)備MAC層/應(yīng)用層的連接或斷開網(wǎng)絡(luò)的功能。網(wǎng)絡(luò)協(xié)調(diào)器在進行一些初始化之后,調(diào)用aplFormNetwork()來建立網(wǎng)絡(luò)。協(xié)調(diào)器通過掃描一個空信道來建立一個新的網(wǎng)絡(luò),然后選擇一個隨機的PANID并開始監(jiān)聽此信道。同時協(xié)調(diào)器還有一個目前連接設(shè)備的列表,以支持其他設(shè)備加入網(wǎng)絡(luò)。網(wǎng)絡(luò)建立程序如下:
3.2.2 網(wǎng)絡(luò)的加入
當(dāng)一個網(wǎng)絡(luò)建立成功后,便要考慮路由節(jié)點和RFD節(jié)點如何加入到網(wǎng)絡(luò)中去。路由節(jié)點和RFD節(jié)點通過調(diào)用alJoinNetwork()函數(shù)加入到協(xié)調(diào)器建立的網(wǎng)絡(luò)中。路由節(jié)點和RFD節(jié)點掃描信道找到協(xié)調(diào)器并申請加入網(wǎng)絡(luò),獲取協(xié)調(diào)器的地址。同時將自己的地址發(fā)送給協(xié)調(diào)器。網(wǎng)絡(luò)加入成功后,網(wǎng)絡(luò)節(jié)點則進入休眠狀態(tài),直到有命令或數(shù)據(jù)發(fā)送時才被喚醒。網(wǎng)絡(luò)加入程序如下:
3.3 ZigBee數(shù)據(jù)收發(fā)
整個無線網(wǎng)絡(luò)中的網(wǎng)關(guān)節(jié)點承擔(dān)網(wǎng)絡(luò)管理和數(shù)據(jù)收發(fā)的功能。網(wǎng)絡(luò)管理主要負(fù)責(zé)組建無線網(wǎng)絡(luò)并分配網(wǎng)絡(luò)地址。數(shù)據(jù)收發(fā)功能主要是接收傳感器節(jié)點的數(shù)據(jù)并通過GPRS網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程數(shù)據(jù)中心。ZigBee收發(fā)數(shù)據(jù)流程如圖4所示。
3.4 上位機設(shè)計
基于VB6.0編程環(huán)境下,使用MSComm控件完成上位機控制軟件設(shè)計,實現(xiàn)了與下位機通信和對下位機上傳數(shù)據(jù)的處理、存儲、顯示以及數(shù)據(jù)曲線分析。MSComm控件通過串行端口傳送和接收數(shù)據(jù),提供了基本的串行通信功能。TeeChart控件可以使各種數(shù)據(jù)以曲線方式進行動態(tài)和實時顯示。
4 結(jié)束語
基于ZigBee技術(shù)、以CC2430無線微處理器模塊與GPRS模塊為核心的環(huán)境溫度遠(yuǎn)程監(jiān)測系統(tǒng),開發(fā)周期短、處理能力強、擴展性好,能快速可靠地進行遠(yuǎn)程監(jiān)測和控制;開放式的通信協(xié)議,實現(xiàn)了與第三方設(shè)備接口的通信,具有較強的可擴展性,是現(xiàn)代農(nóng)業(yè)監(jiān)測的發(fā)展方向。