文獻(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ō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所示,太陽能電池和市電均可充當(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)用于太陽能供電的場(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ù)庫,。當(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)了低功耗的要求,,即在太陽能電池供電的情況下采集器能夠保證正常工作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),。總之本方案為農(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.