滕紅麗 李承輝 仝浩遠(yuǎn) 楊祥強(qiáng) 賈書恒*
(1、河南農(nóng)業(yè)大學(xué)理學(xué)院,河南 鄭州450002 2、河南省通信工程局有限責(zé)任公司,河南 鄭州450002)
我國(guó)是傳統(tǒng)農(nóng)業(yè)大國(guó),農(nóng)業(yè)用水量大,占水資源總量的一半以上,而且農(nóng)田用水灌溉效率低下和用水浪費(fèi)的問(wèn)題普遍存在。據(jù)資料[1,2]顯示,目前,我國(guó)農(nóng)業(yè)土地平均浪費(fèi)水資源10t/hm2,農(nóng)田灌溉水有效利用系數(shù)僅為0.53,遠(yuǎn)低于發(fā)達(dá)國(guó)家0.80 的平均水平。因此,加強(qiáng)農(nóng)業(yè)用水管理,發(fā)展節(jié)水灌溉,對(duì)實(shí)現(xiàn)農(nóng)業(yè)可持續(xù)發(fā)展、保護(hù)生態(tài)環(huán)境具有重要的現(xiàn)實(shí)意義和深遠(yuǎn)的歷史意義。
本文提出一種基于ZigBee 技術(shù)的無(wú)線傳感網(wǎng)絡(luò)智能節(jié)水灌溉系統(tǒng),可以根據(jù)作物的需水情況進(jìn)行精準(zhǔn)灌溉,系統(tǒng)具有組網(wǎng)簡(jiǎn)單、靈活、成本低、數(shù)據(jù)傳輸安全可靠、可維護(hù)性高、適用性好等特點(diǎn),能夠節(jié)約水資源、滿足我國(guó)智能節(jié)水灌溉的迫切需求。
系統(tǒng)由傳感器節(jié)點(diǎn)、電磁閥控制器、風(fēng)機(jī)控制器、路由節(jié)點(diǎn)、網(wǎng)關(guān)和上位機(jī)組成,如圖1 所示。圖中的1 號(hào)~X 號(hào)傳感器節(jié)點(diǎn)測(cè)量溫室內(nèi)環(huán)境參數(shù)和土壤環(huán)境參數(shù);每個(gè)溫室設(shè)置一個(gè)路由節(jié)點(diǎn),該路由節(jié)點(diǎn)收集本溫室內(nèi)的傳感器節(jié)點(diǎn)信息、下發(fā)上位機(jī)送來(lái)的灌溉指令和抽濕指令、轉(zhuǎn)發(fā)其他節(jié)點(diǎn)的指令和數(shù)據(jù);溫室內(nèi)路由節(jié)點(diǎn)將本溫室內(nèi)的參數(shù)信息通過(guò)其他路由節(jié)點(diǎn)再轉(zhuǎn)發(fā)給網(wǎng)關(guān),通過(guò)以太網(wǎng)上傳給上位機(jī);上位機(jī)對(duì)接收的信息數(shù)據(jù)進(jìn)行分析并存儲(chǔ),得到當(dāng)前作物的灌溉決策。當(dāng)需要灌溉時(shí),上位機(jī)發(fā)出灌溉指令,通過(guò)網(wǎng)關(guān)、路由節(jié)點(diǎn)轉(zhuǎn)發(fā)后下發(fā)給無(wú)線電磁閥控制器,由無(wú)線電磁閥控制器驅(qū)動(dòng)電磁閥動(dòng)作,開始進(jìn)行灌溉作業(yè)。當(dāng)上位機(jī)根據(jù)灌溉情況決策為灌溉用水已經(jīng)滿足需求時(shí),再通過(guò)網(wǎng)關(guān)和路由節(jié)點(diǎn)下發(fā)停止灌溉的指令給無(wú)線電磁閥控制器,停止灌溉。當(dāng)上位機(jī)判斷出溫室內(nèi)濕度不適宜、作物不需水時(shí),下發(fā)抽濕指令給無(wú)線風(fēng)機(jī)控制器,驅(qū)動(dòng)風(fēng)機(jī)動(dòng)作。ZigBee 網(wǎng)絡(luò)采用網(wǎng)狀結(jié)構(gòu),1~X號(hào)傳感器節(jié)點(diǎn)、電磁閥控制器、風(fēng)機(jī)控制器是ZigBee 網(wǎng)絡(luò)中的終端節(jié)點(diǎn),只收發(fā)數(shù)據(jù),不轉(zhuǎn)發(fā)數(shù)據(jù),設(shè)計(jì)時(shí)采用精簡(jiǎn)功能設(shè)備RFD,網(wǎng)關(guān)是ZigBee 網(wǎng)絡(luò)中的協(xié)調(diào)器,和路由節(jié)點(diǎn)一樣都能轉(zhuǎn)發(fā)數(shù)據(jù),采用全功能設(shè)計(jì)FFD。
ZigBee 網(wǎng)絡(luò)中,因各節(jié)點(diǎn)分布分散,不可能采用市電作為供電電源,因此,節(jié)點(diǎn)功耗是設(shè)計(jì)時(shí)首先要考慮的問(wèn)題。網(wǎng)關(guān)節(jié)點(diǎn)采用MSP430 系列單片機(jī)作為節(jié)點(diǎn)的主控芯片,無(wú)線收發(fā)模塊采用低功耗、具有睡眠模式的CC2530 芯片。終端節(jié)點(diǎn)、路由節(jié)點(diǎn)的控制核心采用CC2530。CC2530 是用于2.4 GHz IEEE 802.15.4、ZigBee 和RF4CE 應(yīng)用的內(nèi)核為增強(qiáng)型的8051 單片機(jī)的片上系統(tǒng)(SoC)解決方案。它以非常低的成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié),提供了101dB 的鏈路質(zhì)量,不僅具有優(yōu)秀的接收器靈敏度,而且還具有健壯的抗干擾性。CC2530 有8 kB 的RAM 、32/64/128/256 KB 的閃存、2 個(gè)USART、12 位ADC 和21 個(gè)通用GPIO,等廣泛的外設(shè)集。
終端節(jié)點(diǎn)功能主要是對(duì)溫室環(huán)境參數(shù)、土壤參數(shù)信息的收集以及對(duì)溫室風(fēng)機(jī)、灌溉用電磁閥進(jìn)行控制,包括傳感器節(jié)點(diǎn)、電磁閥控制器節(jié)點(diǎn)和風(fēng)機(jī)控制器節(jié)點(diǎn)。傳感器節(jié)點(diǎn)主要由處理器模塊、無(wú)線通信模塊、傳感器模塊和電源模塊組成。電磁閥控制器節(jié)點(diǎn)由處理器模塊、無(wú)線通信模塊、電磁閥驅(qū)動(dòng)電路和電源模塊組成。風(fēng)機(jī)控制器節(jié)點(diǎn)由處理器模塊、無(wú)線通信模塊、風(fēng)機(jī)驅(qū)動(dòng)電路和電源模塊組成。它們都通過(guò)ZigBee 協(xié)議與本溫室的路由節(jié)點(diǎn)通信,將3 種節(jié)點(diǎn)表示在一個(gè)結(jié)構(gòu)圖上,如圖2 所示。
圖2 終端節(jié)點(diǎn)結(jié)構(gòu)圖
圖3 溫室內(nèi)路由節(jié)點(diǎn)
圖1 系統(tǒng)整體結(jié)構(gòu)圖
傳感器節(jié)點(diǎn)測(cè)量環(huán)境參數(shù)和土壤環(huán)境參數(shù),包括溫室溫度、濕度、光照度、CO2濃度,作物生長(zhǎng)區(qū)土壤的含水量、土壤溫度、土壤電導(dǎo)率,在本節(jié)點(diǎn)進(jìn)行簡(jiǎn)單的數(shù)據(jù)處理后,將這些信息經(jīng)路由節(jié)點(diǎn)轉(zhuǎn)發(fā)給網(wǎng)關(guān),送至上位機(jī)。傳感器節(jié)點(diǎn)上電后立即搜尋并請(qǐng)求加入網(wǎng)絡(luò),同時(shí)該節(jié)點(diǎn)也會(huì)將自己綁定到本溫室內(nèi)的路由節(jié)點(diǎn),為該節(jié)點(diǎn)分配一個(gè)唯一的網(wǎng)絡(luò)地址。然后進(jìn)入“休眠- 定時(shí)喚醒,采集數(shù)據(jù)——休眠”的低功耗工作模式。根據(jù)一般情況下作物環(huán)境參數(shù)短時(shí)間變化不大的特點(diǎn),系統(tǒng)設(shè)計(jì)傳感器節(jié)點(diǎn)15 分鐘完成一次數(shù)據(jù)采集。
電磁閥控制器節(jié)點(diǎn)、風(fēng)機(jī)控制器節(jié)點(diǎn)與傳感器節(jié)點(diǎn)工作流程類似,不同的是,節(jié)點(diǎn)加入網(wǎng)絡(luò)后,進(jìn)入休眠狀態(tài),若上位機(jī)或溫室內(nèi)路由節(jié)點(diǎn)有灌溉或抽濕指令送來(lái),則被喚醒,執(zhí)行作業(yè),判斷是否有結(jié)束指令送來(lái),若有,停止灌溉或抽濕,再次進(jìn)入休眠狀態(tài)。
路由節(jié)點(diǎn)有兩種類型:一種是各溫室內(nèi)的路由節(jié)點(diǎn),另一種是只進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的一般路由節(jié)點(diǎn)。從可靠性上考慮,若上位機(jī)到溫室之間的通訊出現(xiàn)故障,為保障單個(gè)溫室還能獨(dú)立正常運(yùn)行,溫室內(nèi)的路由節(jié)點(diǎn)在設(shè)置的極限情況下能向電磁閥控制器和風(fēng)機(jī)控制器發(fā)出作業(yè)指令,其硬件結(jié)構(gòu)如圖3 所示,除電源模塊和無(wú)線收發(fā)模塊外,還有E2PROM存儲(chǔ)器、按鍵模塊和液晶顯示模塊。使用按鍵模塊可以進(jìn)行參數(shù)設(shè)置、查詢,灌溉、抽濕的閾值設(shè)置等與處理器的交互。顯示模塊包括液晶顯示和LED顯示燈,用來(lái)顯示本溫室內(nèi)的環(huán)境參數(shù),灌溉、抽濕閾值,電磁閥、風(fēng)機(jī)狀態(tài),本節(jié)點(diǎn)的電源、通信等狀態(tài)等。E2PROM保存本溫室的環(huán)境參數(shù)歷史數(shù)據(jù),設(shè)置的灌溉、抽濕閾值等信息。一般路由節(jié)點(diǎn)只有電源和無(wú)線通信模塊。
一般路由節(jié)點(diǎn)上電后先初始化硬件系統(tǒng)和軟件架構(gòu)需要的各個(gè)模塊,然后搜索網(wǎng)關(guān),若找到,路由節(jié)點(diǎn)申請(qǐng)加入網(wǎng)絡(luò),并等待網(wǎng)關(guān)響應(yīng)。網(wǎng)關(guān)收到路由節(jié)點(diǎn)的入網(wǎng)請(qǐng)求后,若允許加入,路由節(jié)點(diǎn)獲得由網(wǎng)關(guān)分配的一個(gè)唯一的網(wǎng)絡(luò)地址,然后路由節(jié)點(diǎn)等待接收與之相連的子節(jié)點(diǎn)的入網(wǎng)請(qǐng)求,同時(shí)轉(zhuǎn)發(fā)來(lái)自網(wǎng)關(guān)、其他路由節(jié)點(diǎn)和子節(jié)點(diǎn)經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)包。
網(wǎng)關(guān)在ZigBee 網(wǎng)絡(luò)中充當(dāng)協(xié)調(diào)器的作用,即組建整個(gè)ZigBee 網(wǎng)絡(luò)、匯聚傳感器節(jié)點(diǎn)數(shù)據(jù)、傳送灌溉指令和抽濕指令,在上位機(jī)和終端節(jié)點(diǎn)之間轉(zhuǎn)發(fā)數(shù)據(jù)和命令。每個(gè)Zigbee 網(wǎng)絡(luò)有且只有一個(gè)網(wǎng)關(guān),不同ZigBee 網(wǎng)絡(luò)的網(wǎng)絡(luò)ID 號(hào)不一樣,以免引起沖突。網(wǎng)關(guān)始終處于監(jiān)聽狀態(tài),發(fā)現(xiàn)有節(jié)點(diǎn)加入ZigBee 網(wǎng)絡(luò)時(shí),由網(wǎng)關(guān)節(jié)配地址并計(jì)算其路由信息,更新路由轉(zhuǎn)發(fā)表,實(shí)現(xiàn)新節(jié)點(diǎn)的入網(wǎng)。網(wǎng)關(guān)為不能掉電的設(shè)備,沒(méi)有低功耗狀,網(wǎng)關(guān)結(jié)構(gòu)圖在圖3 的基礎(chǔ)上增加了RS232 通信模塊和以太網(wǎng)通信模塊。網(wǎng)關(guān)的處理器模塊使用MSP430 單片機(jī)。在系統(tǒng)運(yùn)行前,首先需要通過(guò)上位機(jī)用RS232串口通信模塊對(duì)網(wǎng)關(guān)進(jìn)行配置,設(shè)置好IP 地址、網(wǎng)關(guān)、通信端口等參數(shù),才可以使用以太網(wǎng)口和上位機(jī)進(jìn)行數(shù)據(jù)通信。
MSP430 單片機(jī)上電后,進(jìn)行軟硬件的初始化,開始運(yùn)行ZigBee 協(xié)議棧執(zhí)行網(wǎng)絡(luò)的創(chuàng)建,包括設(shè)置網(wǎng)關(guān)的短地址為0、設(shè)置網(wǎng)絡(luò)的PANID、設(shè)置網(wǎng)絡(luò)的最大深度、設(shè)置網(wǎng)關(guān)可以處理的具有路由功能的子節(jié)點(diǎn)的最大個(gè)數(shù)、選擇通信信道等。ZigBee 網(wǎng)絡(luò)創(chuàng)建完成后,開始監(jiān)聽網(wǎng)絡(luò),等待無(wú)線網(wǎng)絡(luò)和以太網(wǎng)分別發(fā)送來(lái)的數(shù)據(jù),并判斷數(shù)據(jù)是從什么網(wǎng)絡(luò)中傳來(lái)的,若是以太網(wǎng)傳來(lái)的命令,則需進(jìn)行指令解析,將指令傳送到微處理器、電磁閥控制器或風(fēng)機(jī)控制器,若是無(wú)線網(wǎng)絡(luò)傳來(lái)的數(shù)據(jù),則使用ZigBee 協(xié)議棧進(jìn)行解析,然后打包為以太網(wǎng)交互數(shù)據(jù),傳送給上位機(jī)。
上位機(jī)監(jiān)控軟件采用組態(tài)王進(jìn)行開發(fā),單個(gè)溫室的監(jiān)控界面如圖4 所示。上位機(jī)實(shí)現(xiàn)了終端節(jié)點(diǎn)數(shù)據(jù)的采集、歷史數(shù)據(jù)的存儲(chǔ)與查看、灌溉和抽濕指令的下發(fā)。在工作過(guò)程中,上位機(jī)不斷接收信息,將溫室環(huán)境和土壤環(huán)境實(shí)時(shí)的顯示在上位機(jī)界面中。同時(shí),系統(tǒng)自動(dòng)記錄接收到的數(shù)據(jù),寫在Excel 表中,作為記錄,可用于用戶分析。根據(jù)接收到的參數(shù)信息,執(zhí)行灌溉算法和抽濕算法,判斷出需要灌溉和抽濕時(shí),發(fā)送灌溉指令和抽濕指令給指定的溫室。
本文研究設(shè)計(jì)了一種基于ZigBee 無(wú)線傳感網(wǎng)絡(luò)的溫室智能節(jié)水灌溉系統(tǒng),此系統(tǒng)的各節(jié)點(diǎn)能夠自組網(wǎng),形成自愈型網(wǎng)狀網(wǎng)。系統(tǒng)充分利用了ZigBee 設(shè)備低能耗、低成本、可靠性高、自組網(wǎng)、網(wǎng)絡(luò)容量大等優(yōu)點(diǎn),在一定灌溉范圍內(nèi)根據(jù)作物的需水情況進(jìn)行灌溉,從而達(dá)到精準(zhǔn)灌溉的目的。