摘 要: 針對現(xiàn)代農(nóng)業(yè)生產(chǎn)中遠(yuǎn)程分布式溫室環(huán)境監(jiān)測的需求,,設(shè)計了一種遠(yuǎn)程分布式溫室環(huán)境監(jiān)測系統(tǒng)。系統(tǒng)構(gòu)成包括基于CC2530的傳感網(wǎng)絡(luò),、數(shù)據(jù)采集節(jié)點(diǎn),、主控節(jié)點(diǎn)及上位監(jiān)控機(jī)。開發(fā)了監(jiān)測過程的通信協(xié)議,;實(shí)現(xiàn)了對多點(diǎn)環(huán)境參數(shù)的遠(yuǎn)程無線實(shí)時采集,、網(wǎng)絡(luò)節(jié)點(diǎn)狀況的監(jiān)測和可視化上位機(jī)監(jiān)控。運(yùn)行結(jié)果表明,,該系統(tǒng)工作穩(wěn)定可靠,,功能完備,操作簡便,,人機(jī)界面友好,,較好地滿足了遠(yuǎn)程分布式溫室環(huán)境監(jiān)測的需求。
關(guān)鍵詞: 環(huán)境參數(shù),;無線監(jiān)測,;ZigBee;CC2530,;可視化
0 引言
適宜的環(huán)境可以促進(jìn)動植物的生長,,提高產(chǎn)量。為了得到更好的經(jīng)濟(jì)效益,,溫室環(huán)境參數(shù)的監(jiān)測是十分重要的?,F(xiàn)代化農(nóng)業(yè)大規(guī)模生產(chǎn)對遠(yuǎn)程分布式溫室環(huán)境監(jiān)測提出了新的要求,,傳統(tǒng)的網(wǎng)絡(luò)化監(jiān)測系統(tǒng)通常采用有線方式組成網(wǎng)絡(luò),,資金投入大,,維護(hù)困難,受環(huán)境限制,,可移動性差[1],。無線傳感網(wǎng)絡(luò)具有拓展靈活、移動性強(qiáng),、成本低,、自組織、動態(tài)拓?fù)鋄2-3]等優(yōu)點(diǎn),,使它在遠(yuǎn)程分布式測控應(yīng)用中具有明顯的優(yōu)勢,。
ZigBee作為一種新型的無線通信技術(shù),由于功耗低,、成本低,、擴(kuò)展方便、易于維護(hù),、移動性強(qiáng)[4-8],,使它在無線傳感網(wǎng)絡(luò)中占有重要地位。本文采用新一代SoC芯片CC2530構(gòu)建無線傳感網(wǎng)絡(luò),,設(shè)計了一種遠(yuǎn)程分布式溫室環(huán)境監(jiān)測系統(tǒng),,開發(fā)了監(jiān)測過程的通信協(xié)議,實(shí)現(xiàn)了對多點(diǎn)環(huán)境參數(shù)的遠(yuǎn)程無線實(shí)時采集,、網(wǎng)絡(luò)節(jié)點(diǎn)狀況的監(jiān)測和可視化上位機(jī)監(jiān)控,,更好地滿足了遠(yuǎn)程溫室環(huán)境監(jiān)測的需要。
1 總體方案設(shè)計
1.1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)基于CC2530構(gòu)建傳感網(wǎng)絡(luò),,設(shè)計了數(shù)據(jù)采集終端節(jié)點(diǎn),、主控節(jié)點(diǎn)及上位監(jiān)控機(jī),整個系統(tǒng)結(jié)構(gòu)如圖1所示,。
主控節(jié)點(diǎn)與上位監(jiān)控機(jī)通過串口進(jìn)行數(shù)據(jù)交換,,實(shí)現(xiàn)了對各采集節(jié)點(diǎn)的控制與管理。數(shù)據(jù)采集終端節(jié)點(diǎn)主要配合主控節(jié)點(diǎn)完成對本地環(huán)境參數(shù)的采集,。
1.2 系統(tǒng)功能
在溫室環(huán)境監(jiān)測中,,用戶有時需要實(shí)時地監(jiān)測溫室環(huán)境參數(shù),所以需要實(shí)時地采集環(huán)境參數(shù),。在對環(huán)境要求不高的情況下,,出于能耗的考慮,用戶可以停止對環(huán)境參數(shù)的實(shí)時采集,,進(jìn)行手動單次采集,。為確保網(wǎng)絡(luò)節(jié)點(diǎn)穩(wěn)定工作,,需要監(jiān)測每個節(jié)點(diǎn)的工作電壓。在遇到網(wǎng)絡(luò)故障時,,要能及時檢測出不能正常工作的節(jié)點(diǎn),。對于以上要求,本文的設(shè)計目標(biāo)如下:
?。?)主控節(jié)點(diǎn)能周期性地采集到各采集節(jié)點(diǎn)所處地區(qū)的環(huán)境參數(shù),,并能把數(shù)據(jù)正確地傳給上位監(jiān)控機(jī);
?。?)在不需要周期性實(shí)時采集時,,主控節(jié)點(diǎn)能通過手工單次采集命令進(jìn)行手工單次采集;
?。?)為了易于網(wǎng)絡(luò)故障的排查,,主控節(jié)點(diǎn)必須承擔(dān)網(wǎng)絡(luò)檢測的任務(wù),時刻監(jiān)測網(wǎng)絡(luò)節(jié)點(diǎn)是否正常工作,;
?。?)形象的上位監(jiān)控機(jī)顯示界面。
2 軟件系統(tǒng)設(shè)計
2.1 主控節(jié)點(diǎn)軟件設(shè)計
?。?)周期性采集控制:上位監(jiān)控機(jī)通過串口給主控節(jié)點(diǎn)一個定時周期采集命令,,主控節(jié)點(diǎn)接收到命令后先判斷周期命令是否正確,若正確,,則主控節(jié)點(diǎn)通過osal_start_timerEx()系統(tǒng)函數(shù)給主控節(jié)點(diǎn)添加周期性定時事件,。若不正確,則拋棄這次接收到的命令,。
?。?)手動單次采集控制:上位監(jiān)控機(jī)通過串口給主控節(jié)點(diǎn)一個手動采集命令,主控節(jié)點(diǎn)檢查命令是否正確,,若正確,,則主控節(jié)點(diǎn)通過AF_DataRequest()系統(tǒng)函數(shù)向終端節(jié)點(diǎn)發(fā)送單次采集命令。主控節(jié)點(diǎn)等待接收各終端節(jié)點(diǎn)采集到的環(huán)境參數(shù)信息,,并把環(huán)境參數(shù)信息寫進(jìn)串口,。
(3)網(wǎng)絡(luò)節(jié)點(diǎn)監(jiān)測:主控節(jié)點(diǎn)上電后會周期性地廣播測試消息,,并等待接收終端節(jié)點(diǎn)回發(fā)的狀態(tài)信息,。對接收到的狀態(tài)信息進(jìn)行相應(yīng)處理,并把處理后的網(wǎng)絡(luò)狀態(tài)信息寫進(jìn)串口,。
2.2 終端節(jié)點(diǎn)軟件設(shè)計
?。?)周期性環(huán)境參數(shù)采集:終端節(jié)點(diǎn)接收到主控節(jié)點(diǎn)的周期性采集命令后,采集本地的環(huán)境參數(shù)信息,,并把采集到的環(huán)境參數(shù)信息回發(fā)給主控節(jié)點(diǎn),。在周期性采集事件中涉及對模擬傳感器和數(shù)字傳感器的采集,。
①模擬傳感器數(shù)據(jù)采集:環(huán)境的光照,、濕度參數(shù)信息通過模擬傳感器采集,。本文考慮到成本和精度,使用了CC2530自帶的AD轉(zhuǎn)換功能,。CC2530有7 bit,、9 bit、10 bit和11 bit分辨率可選,。本文選用了9 bit分辨率。
?、跀?shù)字傳感器數(shù)據(jù)采集:環(huán)境的溫度參數(shù)通過數(shù)字單總線型溫度傳感器DS18B20采集,。該傳感器完成了模擬到數(shù)據(jù)量的轉(zhuǎn)化,轉(zhuǎn)化的結(jié)果是12 bit的,。轉(zhuǎn)換后的數(shù)字量結(jié)果保存在DS18B20內(nèi)部存儲器中,。轉(zhuǎn)換的結(jié)果第一位是符號位,后11位為數(shù)據(jù)位,。如果第一位符號位為1,,表明實(shí)測溫度低于零度。
?。?)手動單次環(huán)境參數(shù)采集:終端節(jié)點(diǎn)接收到主控節(jié)點(diǎn)的手動單次采集消息后,,采集一次環(huán)境參數(shù)信息,并把環(huán)境參數(shù)信息回發(fā)給主控節(jié)點(diǎn),。
?。?)網(wǎng)絡(luò)狀態(tài)監(jiān)測:終端節(jié)點(diǎn)接收到主控節(jié)點(diǎn)的檢測信息后,回發(fā)各自的狀態(tài)信息,。該狀態(tài)信息包含各節(jié)點(diǎn)的工作狀態(tài),。
周期性采集、手動單次采集,、網(wǎng)絡(luò)狀態(tài)監(jiān)測的流程圖如圖2所示,。
2.3 上位監(jiān)控機(jī)設(shè)計
上位監(jiān)控機(jī)的所有功能都是基于對串口數(shù)據(jù)的操作。針對串口數(shù)據(jù)操作,,本文使用了CSerialPort.c和CSerialPort.h兩個文件,。這兩個文件中定義了許多對串口處理的函數(shù),用戶只要把它們添加進(jìn)工程,,并做相應(yīng)配置就能調(diào)用其中對串口處理的函數(shù),,實(shí)現(xiàn)對串口的操作。
?。?)參數(shù)提取模塊:參數(shù)提取模塊主要由界面初始化模塊,、打開和關(guān)閉串口模塊,、接收單個字節(jié)模塊等組成。界面初始化模塊主要完成添加捕獲到的串口號,、波特率,、數(shù)據(jù)位、校驗(yàn),、停止位等界面初始化信息,。打開和關(guān)閉串口模塊主要完成關(guān)閉已經(jīng)打開的串口并根據(jù)捕獲到的串口號、波特率,、數(shù)據(jù)位,、校驗(yàn)、停止位信息初始化串口,。接收單個字節(jié)模塊主要完成接收下位機(jī)傳過來的數(shù)據(jù),。
(2)實(shí)時環(huán)境參數(shù)曲線繪制模塊:實(shí)時環(huán)境參數(shù)曲線繪制模塊主要由繪制溫室溫度參數(shù)模塊,、繪制溫室亮度參數(shù)模塊,、繪制溫室濕度參數(shù)模塊、重繪界面模塊等組成,。繪制溫室溫度參數(shù)曲線模塊首先繪制時間軸,、溫度值軸、相應(yīng)位置的刻度值,,然后根據(jù)參數(shù)提取模塊提取到的溫室溫度值,,繪制出溫室溫度的實(shí)時曲線圖。亮度,、濕度參數(shù)曲線的繪制與溫度參數(shù)曲線的繪制類似,。重繪界面模塊,當(dāng)輸出一次信息時,,需要重繪界面,,以防止上次界面對本次輸出的影響。
?。?)溫室狀態(tài)監(jiān)測顯示模塊:溫室狀態(tài)監(jiān)測顯示模塊主要由繪制虛擬測量計模塊,、顯示接收當(dāng)前環(huán)境參數(shù)的時間模塊等組成。繪制虛擬測量計模塊繪制出溫度計,、濕度計,、亮度計,把參數(shù)提取模塊提取到的環(huán)境參數(shù)在對應(yīng)的度量機(jī)上顯示出來,。顯示接收當(dāng)前環(huán)境參數(shù)的時間模塊,,在參數(shù)提取模塊提取到一個完整的數(shù)據(jù)包后,提取一次筆記本的系統(tǒng)時間,并把它顯示出來,。
?。?)網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)顯示模塊主要由判斷節(jié)點(diǎn)正常工作模塊、節(jié)點(diǎn)地址顯示模塊,、節(jié)點(diǎn)工作電壓顯示模塊等組成,。該模塊主要是分析主控節(jié)點(diǎn)送上來的網(wǎng)絡(luò)狀態(tài)信息,并能根據(jù)網(wǎng)絡(luò)狀況信息分析節(jié)點(diǎn)是否正常工作,,畫出節(jié)點(diǎn)狀態(tài)圖,。
整個系統(tǒng)的工作流程圖如圖3所示。
3 實(shí)際運(yùn)行效果
當(dāng)上位監(jiān)控機(jī)給主控節(jié)點(diǎn)一個定時采集周期,,監(jiān)控機(jī)上就能定時顯示出各節(jié)點(diǎn)所處環(huán)境的參數(shù)信息,,運(yùn)行結(jié)果如圖4所示。
根據(jù)提取到的環(huán)境參數(shù)信息,,畫出環(huán)境參數(shù)的實(shí)時曲線,。點(diǎn)擊打開圖4中的第二個屬性對話框,顯示環(huán)境參數(shù)的實(shí)時曲線,,效果如圖5所示。
監(jiān)控機(jī)可以把提取到的環(huán)境參數(shù)信息轉(zhuǎn)換到相應(yīng)測量計上的輸出,。點(diǎn)擊打開第三個屬性頁,,形象地顯示各節(jié)點(diǎn)環(huán)境參數(shù)信息,效果圖如圖6所示,。
監(jiān)控機(jī)可以顯示網(wǎng)絡(luò)狀態(tài)信息,,運(yùn)行效果圖如圖7所示。
人為地關(guān)閉第4個節(jié)點(diǎn),,網(wǎng)絡(luò)狀態(tài)圖上的第4個節(jié)點(diǎn)顏色變灰,。由此看出主控節(jié)點(diǎn)可以檢測網(wǎng)絡(luò)故障。
4 結(jié)論
將ZigBee無線通信技術(shù)應(yīng)用于遠(yuǎn)程分布式溫室環(huán)境監(jiān)測,,有利于提高環(huán)境參數(shù)監(jiān)測的效率,,降低現(xiàn)有監(jiān)測系統(tǒng)的成本。大量實(shí)驗(yàn)測試表明,,該系統(tǒng)具有數(shù)據(jù)傳輸快,、誤碼率低、穩(wěn)定可靠等特點(diǎn),,稍加改動就可以應(yīng)用于其他監(jiān)測系統(tǒng),,具有一定的市場價值。
參考文獻(xiàn)
[1] 楊順,,劉士敏.基于ZigBee-WSN的啤酒發(fā)酵過程監(jiān)測系統(tǒng)[J].計算機(jī)工程與設(shè)計,,2013,34(12):4410-4414.
[2] 馬祖長,孫怡寧,,梅濤.無線傳感網(wǎng)絡(luò)綜述[J].通信學(xué)報,,2004,25(4):114-124.
[3] 汪明偉,,汪烈軍,,謝衛(wèi)民.無線傳感器網(wǎng)絡(luò)訪問控制的研究進(jìn)展[J].計算機(jī)應(yīng)用研究,2013,,30(10):2896-2902.
[4] HAN D M,, LIM J H. Smart home energy management system using IEEE 802.15.4 and ZigBee[J]. IEEE Transactions on Consumer Electronics,2010,, 56(3):1403-1410.
[5] 吳京晶,,吳伯農(nóng).基于ZigBee的冷彎型鋼在線監(jiān)測系統(tǒng)[J].自動化儀表,2013,,34(12):28-35.
[6] 李彬,,李業(yè)德,程海濤.低功耗無線測溫系統(tǒng)設(shè)計[J].山東理工大學(xué)學(xué)報,,2008,,23(2):141-142.
[7] 李文仲,段朝玉.ZigBee無線網(wǎng)絡(luò)技術(shù)入門與實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,,2007.
[8] 李文仲,,段朝玉.ZigBee2006無線網(wǎng)絡(luò)與無線定位實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2008.