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