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