李慶鴻,孫 霞,闞 聰,劉 航
(安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南 232001)
目前,我國大部分農(nóng)作物的澆灌方式以人工澆灌為主[1],獲取的信息不夠準(zhǔn)確,會(huì)導(dǎo)致大量水資源浪費(fèi)和農(nóng)作物澆灌不合理。國家對三農(nóng)工作越來越重視,農(nóng)業(yè)灌溉也受到廣泛關(guān)注,農(nóng)業(yè)灌溉方面的研究日益增長。把物聯(lián)網(wǎng)技術(shù)結(jié)合到農(nóng)業(yè)灌溉中是未來發(fā)展的大趨勢[2]。本文的節(jié)水灌溉系統(tǒng)利用了傳感器技術(shù)、ZigBee技術(shù)以及其他相關(guān)技術(shù)來設(shè)計(jì)智能化的節(jié)水灌溉系統(tǒng)。
本文設(shè)計(jì)的智能節(jié)水灌溉系統(tǒng)設(shè)計(jì)圖如圖1所示。傳感器節(jié)點(diǎn)采集田間數(shù)據(jù)并上行數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)中的路由節(jié)點(diǎn)到協(xié)調(diào)器節(jié)點(diǎn),協(xié)調(diào)器將各傳感器節(jié)點(diǎn)采集到的土壤濕度值進(jìn)行匯總,并根據(jù)農(nóng)作物的需水量預(yù)設(shè)土壤濕度閾值。如果土壤濕度值小于閾值則開啟與協(xié)調(diào)器相連的繼電器,水泵進(jìn)入抽水狀態(tài)。此時(shí),系統(tǒng)檢測缺水的終端節(jié)點(diǎn)的具體位置,打開相應(yīng)區(qū)域內(nèi)的繼電器,與此繼電器相連的電磁閥開啟,指定區(qū)域開始進(jìn)行灌溉。ZigBee網(wǎng)關(guān)則可以使得協(xié)調(diào)器與移動(dòng)端APP通信,在APP上同樣可以顯示作物生長信息。
圖1 智能灌溉系統(tǒng)設(shè)計(jì)框圖
感知層模塊結(jié)構(gòu)如圖2所示。終端節(jié)點(diǎn)通過傳感器將采集到的土壤濕度值用多跳通信[4]的方式發(fā)送至此終端節(jié)點(diǎn)的鄰近節(jié)點(diǎn),再由鄰近節(jié)點(diǎn)轉(zhuǎn)發(fā)給系統(tǒng)的協(xié)調(diào)器節(jié)點(diǎn)。
圖2 感知層模塊結(jié)構(gòu)圖
終端控制模塊采用cc2530[3]對繼電器進(jìn)行控制,并用繼電器控制電磁閥的開關(guān)。電源模塊摒棄了傳統(tǒng)的有線供電模式采用可持續(xù)性比較高的太陽能供電模式[5]。傳感器模塊采用的土壤濕度傳感器,選擇型號(hào)為YL-69的土壤濕度傳感器,傳感器的比較器型號(hào)為LM393芯片。
傳輸層模塊采用ZigBee無線通信方式,它的優(yōu)點(diǎn)在于功耗低、組網(wǎng)靈活、數(shù)據(jù)傳輸?shù)挠行院涂煽啃暂^高[6]。ZigBee終端節(jié)點(diǎn)采集需要的底層數(shù)據(jù),并應(yīng)用ZigBee協(xié)議無線傳輸數(shù)據(jù),將數(shù)據(jù)發(fā)送給自組網(wǎng)絡(luò)中的其他節(jié)點(diǎn),同時(shí)又可將其他自主網(wǎng)絡(luò)節(jié)點(diǎn)的返回?cái)?shù)據(jù)進(jìn)行基本分析和顯示。
應(yīng)用層模塊選擇了12 V小型水泵,實(shí)際應(yīng)用中可以根據(jù)水源位置農(nóng)田地形等不同情況選擇不同的水泵。繼電器需要接大負(fù)載水泵,可選擇外接電源。繼電器的作用是根據(jù)傳感網(wǎng)絡(luò)提供的信息判斷各用電器是否需要供電。實(shí)驗(yàn)中電磁閥采用12 V、12 mm口徑,用于控制水泵抽取水后水流在水管中的走向。
本系統(tǒng)的上位機(jī)采用Windows操作系統(tǒng)的PC機(jī),土壤濕度傳感器檢測到的土壤數(shù)據(jù)通過ZigBee的組網(wǎng)通信方式上行到上位機(jī),上位機(jī)界面可以查看相應(yīng)數(shù)據(jù)。
在ZigBee終端節(jié)點(diǎn) 進(jìn)行上電操作后,需要對相應(yīng)的節(jié)點(diǎn)設(shè)備1ogicalType進(jìn)行相應(yīng)的配置,即ZG_DEVICETYPE_ENDDEVICE,配置完成后申請加入父節(jié)點(diǎn),調(diào)用ZD0_Start( )。由于在終端節(jié)點(diǎn)連接進(jìn)入網(wǎng)絡(luò)之前,底層節(jié)點(diǎn)地址路由器以及協(xié)調(diào)器無法確定,故提前靜態(tài)綁定。之后zb_sendDataReques( )功能周期性將采集到的土壤濕度數(shù)據(jù)向上層匯報(bào)。
繼電器作為本系統(tǒng)控制模塊執(zhí)行器件,當(dāng)其輸入端接收到高電平時(shí)斷開,低電平則吸合。主函數(shù)中將寄存器設(shè)置為0×20。然后將DATA_PIN設(shè)置為1時(shí)繼電器斷開,水泵停止工作,將DATA_PIN設(shè)置為0時(shí)繼電器吸合,電磁閥開啟,將水引入缺水場所。
由于農(nóng)業(yè)灌溉的面積較大,需要在系統(tǒng)中增加路由器。路由器可完成網(wǎng)絡(luò)中的中繼功能,并放大收到的來自其他路由器或終端節(jié)點(diǎn)的信號(hào),更好地轉(zhuǎn)發(fā)給上層路由器或協(xié)調(diào)器[7]。
將協(xié)調(diào)器節(jié)點(diǎn)上電后,由相應(yīng)的程序判斷協(xié)調(diào)器節(jié)點(diǎn)是作為ZigBee網(wǎng)絡(luò)中的路由節(jié)點(diǎn),還是用來組網(wǎng)。ZigBee網(wǎng)絡(luò)的組網(wǎng)流程圖如圖3所示。
本文設(shè)置系統(tǒng)中,小范圍情況下采有樹狀結(jié)構(gòu),大范圍情況下采用網(wǎng)狀結(jié)構(gòu)。由于樹形結(jié)構(gòu)本身傳輸鏈路單一,所以這里可以采用多生成樹協(xié)議MSTP[9](Multi-Service Transfer Platform)的思想,來解決該問題。為解決網(wǎng)狀結(jié)構(gòu)上層路由器工作量大、容易損壞的問題,這里采用虛鏈路的方式。
圖3 ZigBee組網(wǎng)流程圖
圖4 節(jié)點(diǎn)結(jié)構(gòu)圖
節(jié)點(diǎn)結(jié)構(gòu)圖如圖4所示。底層節(jié)點(diǎn)向上層節(jié)點(diǎn)直接建立兩棵樹狀結(jié)構(gòu),比如圖4中D節(jié)點(diǎn)與E節(jié)點(diǎn)的父節(jié)點(diǎn)本來設(shè)置為B節(jié)點(diǎn),但在該算法中,添加C節(jié)點(diǎn)為他們的第二個(gè)父節(jié)點(diǎn)。D、E節(jié)點(diǎn)優(yōu)先選擇B節(jié)點(diǎn)數(shù)據(jù)傳輸,C節(jié)點(diǎn)與D、E節(jié)點(diǎn)暫時(shí)邏輯阻塞,但用于確認(rèn)相互關(guān)系的報(bào)文依然保持發(fā)送。若B節(jié)點(diǎn)失效,則C節(jié)點(diǎn)與D、E節(jié)點(diǎn)的邏輯阻塞鏈路開啟。這樣可以完成樹狀結(jié)構(gòu)的負(fù)載分擔(dān),保證鏈路分配報(bào)文均勻以及完成上行節(jié)點(diǎn)失效后的快速切換。
上位機(jī)開發(fā)軟件采用Java EE,作用是讀取顯示底層系統(tǒng)上傳的數(shù)據(jù),并將其儲(chǔ)存至數(shù)據(jù)庫中。數(shù)據(jù)庫設(shè)計(jì)采用MYSQL,數(shù)據(jù)庫中存儲(chǔ)了各作物、各地形在每個(gè)時(shí)期生長所需水量,可根據(jù)管理需求進(jìn)行修改,并可用于軟件和底層設(shè)備讀取。
為了方便相關(guān)人員對一定區(qū)域內(nèi)的灌溉狀況進(jìn)行監(jiān)控,本系統(tǒng)設(shè)計(jì)出移動(dòng)端APP如圖5所示。
圖5 移動(dòng)端APP
實(shí)驗(yàn)灌溉系統(tǒng)結(jié)構(gòu)示意圖如圖6所示。設(shè)計(jì)的實(shí)驗(yàn)中將系統(tǒng)簡化使用4個(gè)終端節(jié)點(diǎn),一個(gè)協(xié)調(diào)器節(jié)點(diǎn),構(gòu)成了ZigBee智能節(jié)水灌溉系統(tǒng)。實(shí)驗(yàn)結(jié)果數(shù)據(jù)采用AD表示。實(shí)驗(yàn)中以小麥為例,適宜小麥生長的濕度為60%-80%[10],因此將閾值設(shè)定在65%,其對應(yīng)的AD值為55。
經(jīng)過測試,灌溉前數(shù)據(jù)如圖7所示。在水泵未啟動(dòng)之前的土壤濕度AD值穩(wěn)定在80左右。灌溉后數(shù)據(jù)如圖8所示。水泵啟動(dòng)之后的土壤濕度AD值穩(wěn)定在50左右。
圖6 實(shí)驗(yàn)灌溉系統(tǒng)結(jié)構(gòu)示意圖
圖7灌溉前數(shù)據(jù) 圖8灌溉后數(shù)據(jù)
該系統(tǒng)灌溉效果可以及時(shí)滿足小麥生長需求,因此具有良好的實(shí)用價(jià)值。若想對多種不同需水量的作物進(jìn)行灌溉則只需要根據(jù)作物的需水量設(shè)置不同節(jié)點(diǎn)的閾值。本文設(shè)計(jì)的優(yōu)勢在于傳統(tǒng)的終端控制機(jī)制是終端將數(shù)據(jù)上傳給協(xié)調(diào)器,由協(xié)調(diào)器判斷下一步指令,并發(fā)送給終端。這里終端在把數(shù)據(jù)發(fā)送給協(xié)調(diào)器的同時(shí)讓數(shù)據(jù)與閾值進(jìn)行比較,可在事件發(fā)生的同時(shí)讓電磁閥先于水泵打開,保護(hù)了水管。并且可以根據(jù)不同植物的最適濕度閾值靈活的進(jìn)行澆灌閾值調(diào)整。