文獻標識碼: A
文章編號: 0258-7998(2013)12-0086-04
傳統(tǒng)的農(nóng)業(yè)監(jiān)測系統(tǒng)往往采用有線組網(wǎng)技術(shù)。但由于農(nóng)業(yè)現(xiàn)代化迅速發(fā)展以及采集節(jié)點數(shù)目大幅增加,所以布線的難度和成本也不斷地增加[1]。隨著農(nóng)業(yè)物聯(lián)網(wǎng)概念的深入,GPRS無線通信技術(shù)開始快速發(fā)展,它有著通信距離遠的優(yōu)勢,但成本也相對較高。與此同時,ZigBee無線通信技術(shù)也開始在畜牧業(yè)、種植業(yè)等領(lǐng)域有了廣泛的應(yīng)用。該通信方式性能穩(wěn)定,技術(shù)成熟,最重要的一點就是成本較低,符合中國農(nóng)業(yè)的可持續(xù)發(fā)展。系統(tǒng)采用了太陽能電池優(yōu)先供電的方案,這很大程度地解決了一些場合沒有市電可供的問題,同時也利用了清潔能源。另外該設(shè)計采用了TI公司的超低功耗單片機MSP430,進一步降低了系統(tǒng)功耗。
本文給出了一種基于ZigBee的農(nóng)業(yè)物聯(lián)網(wǎng)監(jiān)測系統(tǒng)方案。每個采集器可同時采集多達8路傳感器信號,且通過RS232串口便可進行本地配置。多個采集器節(jié)點可進行mesh組網(wǎng),能夠?qū)崟r與中央服務(wù)器之間進行數(shù)據(jù)交互。在種植業(yè)的應(yīng)用中,系統(tǒng)共設(shè)有5種傳感器,分別是測量CO2濃度值、土壤水分、光照強度、空氣溫濕度和土壤溫度,最終實現(xiàn)了對大棚環(huán)境的ZigBee無線智能監(jiān)測。
1 系統(tǒng)結(jié)構(gòu)與基本原理
監(jiān)測系統(tǒng)總體框架設(shè)計如圖1所示,系統(tǒng)主要由采集器和中央服務(wù)器組成。每個采集器主要由電源管理模塊、傳感器、信號調(diào)理和采集電路、MSP430單片機、ZigBee模塊、RS232串口模塊等組成,用于采集并發(fā)送各路傳感器信號。中央服務(wù)器則擁有平臺軟件和ZigBee協(xié)調(diào)器,用于接收和保存數(shù)據(jù)、配置參數(shù)、保存報警信息等。
傳感器上電,當采集等待時間結(jié)束時,對多路傳感器進行信號采集,即信號經(jīng)過調(diào)理后,模擬傳感器信號通過AD7689進行模數(shù)轉(zhuǎn)換,數(shù)字傳感器信號通過單總線方式進行采集。采集完畢后,使傳感器斷電。單片機對數(shù)據(jù)進行轉(zhuǎn)化和處理后,最終由ZigBee模塊(設(shè)置成終端設(shè)備)通過天線將數(shù)據(jù)發(fā)送至中央服務(wù)器。中央服務(wù)器配置參數(shù)時由ZigBee協(xié)調(diào)器發(fā)出命令,采集器上的ZigBee模塊經(jīng)天線接收到要配置的參數(shù),即實現(xiàn)了遠程配置功能。本地配置時通過RS232串口對每個采集器節(jié)點進行具體的參數(shù)配置即可。采集器的總體框圖如圖2所示。
2 硬件設(shè)計與實現(xiàn)
2.1 電源管理設(shè)計
電源管理框圖如圖3所示,太陽能電池和市電均可充當采集器的電源。12 V~24 V的主電壓輸入經(jīng)LT8610電源芯片轉(zhuǎn)化得到3.7 V,再經(jīng)過LT1962線性穩(wěn)壓芯片轉(zhuǎn)化得到3.3 V電壓。主電壓又經(jīng)另一路LT8610電源芯片轉(zhuǎn)化為5.8 V,再經(jīng)過LM2941線性穩(wěn)壓芯片轉(zhuǎn)化得到5.3 V電壓。3.3 V電壓主要給單片機和放大器供電,5.3 V電壓主要給傳感器供電。通過對LT8610電源芯片的使能管腳的開斷控制,就可以實現(xiàn)對穩(wěn)壓芯片LM2941進行開斷的控制,從而實現(xiàn)對傳感器的供電開斷控制。
2.2 信號調(diào)理電路設(shè)計
模擬信號調(diào)理電路如圖4所示,4路傳感器輸出信號范圍都在0~5 V以內(nèi),由于A/D采樣基準為2.5 V,因此傳感器輸出信號需通過調(diào)理電路處理,使其輸出為其輸入的一半。
數(shù)字信號調(diào)理電路如圖5所示。4路信號輸出為單總線信號,電阻R118與電容C64起濾波作用。當傳感器輸出線路拉得較遠時,上拉電阻R117可以減小由線路造成的壓降。電阻R212起到限流作用,保護處理器,鉗位管D11把輸入到處理器的信號幅值鉗住在-0.3 V~+3.6 V之間,保護處理器。
2.3 ZigBee模塊接口設(shè)計
ZigBee模塊接口電路如圖6所示,RXD、TXD與單片機的UART相連,RESET1置低電平至少200 ns可讓ZigBee模塊復位重啟。當該模塊配置為周期管腳休眠模式時, 給Module_
Sleep一個下降沿電平可喚醒該模塊。當ON/SLEEP輸出高電平時,則表示模塊已被喚醒。ASSOC可表示設(shè)備的網(wǎng)絡(luò)狀態(tài),若模塊沒有連接網(wǎng)絡(luò),則ASSOC電平輸出高電平。一旦模塊成功連接上網(wǎng)絡(luò),ASSOC以一定規(guī)則的時間間隔進行電平翻轉(zhuǎn)。
3 軟件設(shè)計與實現(xiàn)
3.1 系統(tǒng)流程簡介
系統(tǒng)分為兩種工作模式。(1)低功耗模式,即在傳感器采集結(jié)束后馬上關(guān)斷傳感器,此模式應(yīng)用于太陽能供電的場合。(2)連續(xù)工作模式,即在整個采集周期里不關(guān)斷傳感器,此模式應(yīng)用于市電供電的場合。系統(tǒng)流程圖如圖7所示,系統(tǒng)初始化完成后進行系統(tǒng)自檢。自檢內(nèi)容包括3.3 V、5 V、電池電壓自檢,以及外部RTC、外部EEPROM的自檢。如果自檢后有故障,則報警燈將閃爍,并將報警碼存儲到外部EEPROM中,然后讓所有傳感器上電。當采集等待時間結(jié)束時,給外部ADC上電,對模擬傳感器和電池電壓進行采樣。采樣結(jié)束讓ADC斷電,再通過單總線方式對數(shù)字傳感器進行信號采集。采集結(jié)束后,如果系統(tǒng)處于低功耗模式,則關(guān)斷傳感器,然后讀取當前實時時間,發(fā)送采集數(shù)據(jù)包至中央服務(wù)器,等待下個采集周期到來。一旦采集周期到,先判斷傳感器是否關(guān)斷,如果仍是開啟狀態(tài),則再次對傳感器進行信號采集,否則,就重新讓所有傳感器上電,緊接著開啟下一個新的循環(huán)。
3.2 ZigBee模塊的軟件設(shè)計
ZigBee模塊采用美國DIGI公司的XBee Pro S2B,通過X-CTU軟件可配置該模塊的具體參數(shù),如波特率、局域網(wǎng)ID、休眠模式等[3]。把一個ZigBee模塊配置為終端設(shè)備,應(yīng)用于采集器中。然后把另一個ZigBee模塊配置為協(xié)調(diào)器,應(yīng)用于中央服務(wù)器中。為了適用低功耗場合,系統(tǒng)將ZigBee模塊終端設(shè)備配置成周期和管腳休眠模式。協(xié)調(diào)器的休眠時間SP配置成5 s。終端設(shè)備的休眠時間SP也配置為5 s,休眠前時間ST配置為1 s。
采集器上的ZigBee模塊通過UART與單片機相連。在模塊初始化過程中,讀取信道、局域網(wǎng)ID、別名、信號強度、讀取和設(shè)置休眠模式、休眠時間、休眠前時間。初始化完成后,發(fā)送設(shè)備注冊包,用于節(jié)點地址、MAC地址、網(wǎng)絡(luò)地址的綁定,因為網(wǎng)絡(luò)地址會因某些情況發(fā)生變化,且節(jié)點地址比MAC地址更容易記憶。數(shù)據(jù)的接收和發(fā)送均采用串口中斷,同時使用該模塊的API通信方式。當傳感器采集完畢后,ZigBee模塊即刻發(fā)送一個數(shù)據(jù)包,數(shù)據(jù)信息包括節(jié)點地址、系統(tǒng)狀態(tài)、上傳時間、各路傳感器的類型和開關(guān)情況,以及各路傳感器采集值,電池電量和信號強度。數(shù)據(jù)總長度達97 B。當連續(xù)10次發(fā)送數(shù)據(jù)無回應(yīng)時,ZigBee模塊將重啟,并置網(wǎng)絡(luò)異常標志。一旦ZigBee模塊接收到回應(yīng)后,就會清除該異常標志。
3.3 信號采集和處理模塊的軟件設(shè)計
4路模擬信號通過AD7689采樣,將實際電壓值(采樣值的2倍)直接上傳至中央服務(wù)器,由平臺軟件將其轉(zhuǎn)化成濃度值。4路數(shù)字信號則通過單總線方式讀取到空氣溫濕度值[2]和土壤溫度值。
采集過程大致如下:在采集傳感器信號時,打開AD7689電源,并延時100 ms,接著對各路模擬信號分別進行8次采樣,每次采樣間隔為10 ms,排除最大值和最小值,再求平均得到最終采樣值。采樣完畢,關(guān)閉AD7689電源。在對數(shù)字信號采集前,先關(guān)閉全局中斷,采集完畢后,開啟全局中斷,原因是單總線通信對時序的要求非常嚴格。本系統(tǒng)對各路數(shù)字傳感器分別進行連續(xù)2次采集,以保證數(shù)據(jù)的準確性。
3.4 遠程配置與本地配置的軟件設(shè)計
中央服務(wù)器通過平臺軟件可發(fā)出一系列命令對每個采集器節(jié)點進行遠程配置。平臺軟件會維護一個數(shù)據(jù)庫。當采集器初始化完成后,會主動發(fā)出注冊包,這時每個采集器節(jié)點的MAC地址、網(wǎng)絡(luò)地址、節(jié)點地址都將綁定在一起。因此平臺軟件在收到這個注冊包后,便可對每個采集器節(jié)點進行遠程配置,如讀取和設(shè)置采集周期、采集等待時間、系統(tǒng)時間、系統(tǒng)工作模式等。
通過RS232串口可對采集器進行本地配置。串口波特率設(shè)定為9 600 B。本地配置采用MODBUS協(xié)議[4] 的RTU通信方式,實現(xiàn)了一系列的功能,如讀取和清空報警信息、讀取和設(shè)置儀器序列號、讀取軟件版本號、電池電量和信號強度,讀取和設(shè)置采集周期和采集等待時間、系統(tǒng)時間、傳感器配置信息、系統(tǒng)工作模式、節(jié)點地址和ZigBee模塊的波特率等。
4 系統(tǒng)測試與總結(jié)
4.1 功耗測試
本次測試在接有5種傳感器的種植業(yè)環(huán)境下進行,同時系統(tǒng)運行在低功耗模式下, 采集周期默認設(shè)置為10 min,采集等待時間設(shè)置為4 min,剩余6 min傳感器處于關(guān)閉狀態(tài)。最終功耗記錄如表1所示。
假定電池工作效率為0.9,則本系統(tǒng)可工作11天左右,符合預期要求。
4.2 通信距離測試
通過按鍵可將運行燈和報警燈轉(zhuǎn)換成網(wǎng)絡(luò)信號強度指示燈。網(wǎng)絡(luò)強度高的情況下,兩盞燈常亮;網(wǎng)絡(luò)強度中等的情況下,兩盞燈均2 s閃爍1 s,網(wǎng)絡(luò)強度弱的情況下,兩盞燈均5 s閃爍1 s。經(jīng)過測試,在比較理想的條件下,最大通信距離可到達500 m。
4.3 組網(wǎng)測試
8臺采集器進行組網(wǎng),系統(tǒng)運行正常。中央服務(wù)器既可正常接收每個節(jié)點的數(shù)據(jù),也可正常進行遠程配置,且丟包率極低。
本系統(tǒng)實現(xiàn)了低功耗的要求,即在太陽能電池供電的情況下采集器能夠保證正常工作7天以上。通信距離也符合實際需求。中央服務(wù)器可遠程地對各個采集器節(jié)點進行參數(shù)配置,如配置采集周期和采集等待時間,為該系統(tǒng)增加了靈活性和實用性。ZigBee組成的mesh網(wǎng)絡(luò)擁有健壯性好、結(jié)構(gòu)靈活等優(yōu)點??傊痉桨笧檗r(nóng)業(yè)物聯(lián)網(wǎng)的無線監(jiān)測提供了一個很好的范例。
參考文獻
[1] 韓華峰, 杜克明, 孫忠富,等.基于ZigBee網(wǎng)絡(luò)的溫室環(huán)境遠程監(jiān)控系統(tǒng)設(shè)計與應(yīng)用[J]. 農(nóng)業(yè)工程學報, 2009,
25(7):158-163.
[2] 辛穎, 謝光忠, 蔣亞東. 基于ZigBee協(xié)議的溫度濕度無線傳感器網(wǎng)絡(luò)[J]. 傳感器與微系統(tǒng), 2006,25(7):82-84.
[3] Digi International,Inc.XBee/XBee-PRO ZB RF Modules[z].2010-11.
[4] PEFHANY S. MODBUS Protocol[EB/OL].[2013-07-18]. http://www.modicon.com/techpubs/toc7.html.