雷建云,韓崢嶸, 曾繁迪,劉晶,帖軍
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
當(dāng)前,國(guó)內(nèi)關(guān)于環(huán)境監(jiān)測(cè)在棉田滴灌[1]、蛋雞舍設(shè)施數(shù)字化[2]、土壤墑情監(jiān)測(cè)[3]、鉀肥生產(chǎn)原鹵井監(jiān)測(cè)[4]、廢水處理[5]、農(nóng)田信息采集[6]和蔬菜大棚智能管控[7]等特定產(chǎn)景中的應(yīng)用已經(jīng)有了突出的成果.外文文獻(xiàn)中也有此方面的研究[8-15]:利用ZigBee無線傳感器網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)溫室、蔬菜大棚等環(huán)境的數(shù)據(jù)監(jiān)控.在工業(yè)生產(chǎn)中,環(huán)境監(jiān)測(cè)數(shù)據(jù)可為系統(tǒng)提供決策支持;在農(nóng)業(yè)生產(chǎn)中,環(huán)境監(jiān)測(cè)數(shù)據(jù)是對(duì)農(nóng)作物進(jìn)行各項(xiàng)農(nóng)事活動(dòng)的參考依據(jù).因此,環(huán)境監(jiān)測(cè)對(duì)工農(nóng)業(yè)生產(chǎn)日趨重要.
在農(nóng)作物生長(zhǎng)環(huán)境監(jiān)測(cè)的相關(guān)研究中,李瑋瑤等人[16]根據(jù)農(nóng)業(yè)種植智能化的需要,設(shè)計(jì)了基于ZigBee技術(shù)的蔬菜大棚環(huán)境監(jiān)控,實(shí)現(xiàn)了對(duì)蔬菜大棚中空氣、土壤、溫濕度、二氧化碳濃度和光照強(qiáng)度等參數(shù)的監(jiān)測(cè),但該系統(tǒng)存在未做低功耗處理、遠(yuǎn)程監(jiān)控能力差等問題.王軍等人[17]以解決有線農(nóng)業(yè)蔬菜大棚監(jiān)控系統(tǒng)維護(hù)復(fù)雜、維護(hù)成本高等問題為目標(biāo),設(shè)計(jì)了基于ZigBee的蔬菜大棚無線監(jiān)控系統(tǒng),但未實(shí)現(xiàn)遠(yuǎn)程控制,也未對(duì)ZigBee模塊做低功耗處理.也有人以低功耗為目標(biāo),設(shè)計(jì)了大棚溫室環(huán)境下的超低功耗智能控制系統(tǒng),但是未實(shí)現(xiàn)遠(yuǎn)程控制,且只實(shí)現(xiàn)了部分參數(shù)的自動(dòng)調(diào)節(jié)功能[18].
針對(duì)以上問題,本文以蔬菜大棚為研究對(duì)象,以實(shí)現(xiàn)系統(tǒng)低功耗、高可用、易擴(kuò)展為目標(biāo),以ZigBee無線傳感器網(wǎng)絡(luò)為技術(shù)手段,實(shí)現(xiàn)了基于ZigBee的低功耗蔬菜大棚遠(yuǎn)程無線傳感測(cè)控系統(tǒng).
在原有的蔬菜大棚中部署各種傳感器和電氣設(shè)備,不僅需要對(duì)各模塊的參數(shù)和性能做整體統(tǒng)籌,還要兼顧各個(gè)模塊的使用環(huán)境和條件,因地制宜地將原有蔬菜大棚改造成低功耗智能感知蔬菜大棚.根據(jù)本系統(tǒng)設(shè)計(jì)目標(biāo),將蔬菜大棚分為3個(gè)模塊,一是數(shù)據(jù)采集模塊,完成整個(gè)蔬菜大棚的數(shù)據(jù)采集、傳輸和解析等功能,并實(shí)現(xiàn)低功耗;二是電氣設(shè)備模塊,作為完成電氣設(shè)備遠(yuǎn)程控制的基礎(chǔ),此模塊通過解析指令、控制繼電器等設(shè)備完成遠(yuǎn)程控制功能;三是微信公眾號(hào)模塊,由微信公眾號(hào)為用戶提供友好的操作界面[19],此部分主要完成用戶信息展示、采集數(shù)據(jù)展示以及可視化遠(yuǎn)程控制功能.
系統(tǒng)數(shù)據(jù)傳輸流程如圖1所示,系統(tǒng)中共有3種節(jié)點(diǎn):終端采集節(jié)點(diǎn)、路由控制節(jié)點(diǎn)、匯聚節(jié)點(diǎn).終端采集節(jié)點(diǎn)主要負(fù)責(zé)數(shù)據(jù)采集工作,連接低功耗傳感器(溫濕度傳感器DHT22,土壤濕度傳感器,GY-30光照傳感器[20]等).路由控制節(jié)點(diǎn)連接功耗較高的傳感器(二氧化碳濃度傳感器,風(fēng)速風(fēng)向傳感器,人體紅外探測(cè)傳感器[21]等),同時(shí)由路由控制節(jié)點(diǎn)來控制繼電器開關(guān)進(jìn)而達(dá)到控制電磁門、卷簾門、窗、風(fēng)機(jī)的目的.匯聚節(jié)點(diǎn)通過串行接口與以太網(wǎng)網(wǎng)關(guān)模塊W5500、Wi-Fi模塊(ESP8266)或4G/GSM模塊相連,并將數(shù)據(jù)打包后傳輸至網(wǎng)關(guān)模塊.
系統(tǒng)中網(wǎng)關(guān)模塊完成對(duì)ZigBee協(xié)議數(shù)據(jù)進(jìn)行轉(zhuǎn)換,并將數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)椒?wù)器端,為保證數(shù)據(jù)有效傳輸和安全性,數(shù)據(jù)將通過TCP協(xié)議發(fā)送至服務(wù)器端[22].

圖1 系統(tǒng)數(shù)據(jù)傳輸圖Fig.1 System data transfer diagram
根據(jù)系統(tǒng)需求以及Z-stack協(xié)議棧的特點(diǎn),通過對(duì)終端采集節(jié)點(diǎn)和路由控制節(jié)點(diǎn)進(jìn)行策略控制,達(dá)到低功耗目的.控制策略如下:分別定義兩個(gè)應(yīng)用層任務(wù):采集任務(wù)和休眠任務(wù).在采集任務(wù)中,終端節(jié)點(diǎn)內(nèi)部定義采集事件(設(shè)定節(jié)點(diǎn)為電源模式并讀取傳感器接口數(shù)據(jù)),打包數(shù)據(jù)并發(fā)送給匯聚節(jié)點(diǎn),定時(shí)器T1秒后執(zhí)行休眠任務(wù);進(jìn)入休眠任務(wù)后,節(jié)點(diǎn)執(zhí)行睡眠事件,此時(shí),節(jié)點(diǎn)為電池模式,無線接收機(jī)關(guān)閉,定時(shí)器T2秒后執(zhí)行采集任務(wù),其中T1、T2可以根據(jù)采集需要進(jìn)行設(shè)置.
為了達(dá)到最低休眠功耗,將傳感器的電源引腳接在高驅(qū)動(dòng)輸出IO引腳(P1_0和P1_1)上而不是VCC引腳上.經(jīng)萬用表測(cè)量,兩個(gè)IO引腳的最高輸出電流可達(dá)20 mA,滿足溫濕度傳感器負(fù)載(其他針腳的最大輸出電流均是4 mA).與此同時(shí),將未使用的IO引腳設(shè)置為輸入上拉,防止浮空引腳,減少電流消耗及不確定狀態(tài).
此外,需要在編譯選項(xiàng)中加入POWER_SAVING參數(shù),使得節(jié)點(diǎn)開啟低功耗模式,并修改f8wConfig.cfg配置文件中的常量變量設(shè)置為如下值:
-DPOLL_RATE=0 //default 1000
-DQUEUED_POLL_RATE=0 //default 100
-DRESPONSE_POLL_RATE=0 //default 100
經(jīng)過上述設(shè)置后,使得ZigBee終端節(jié)點(diǎn)能在低功耗模式下完成數(shù)據(jù)采集功能.
在ZigBee路由節(jié)點(diǎn)實(shí)現(xiàn)對(duì)設(shè)備的自動(dòng)化控制,多路繼電器是電氣設(shè)備控制的核心,它與ZigBee路由節(jié)點(diǎn)的IO口連接,通過IO口的高低電平變化來控制多路繼電器觸點(diǎn)的通斷,達(dá)到控制電氣設(shè)備開啟和關(guān)閉的目的.LED燈帶和發(fā)熱線給農(nóng)作物補(bǔ)光升溫,布線簡(jiǎn)單快捷、經(jīng)濟(jì)環(huán)保.風(fēng)機(jī)調(diào)節(jié)大棚的二氧化碳濃度,當(dāng)大棚內(nèi)的二氧化碳濃度過高時(shí),給農(nóng)作物補(bǔ)充氧氣.水箱、增壓泵、電磁閥和噴嘴構(gòu)成了灌溉硬件模塊,與土壤濕度傳感器聯(lián)動(dòng).當(dāng)檢測(cè)到土壤濕度低于一定的閥值時(shí),電磁閥開啟,水流從噴嘴處噴出進(jìn)行灌溉.整個(gè)過程無需另外架設(shè)管道,非常適于現(xiàn)有蔬菜大棚的改造,灌溉硬件模塊與ZigBee網(wǎng)絡(luò)直接組成一套低成本小型自動(dòng)灌溉系統(tǒng),系統(tǒng)部署如圖2所示.

圖2 系統(tǒng)部署圖Fig.2 System deployment diagram
為節(jié)省成本,本系統(tǒng)中所有大棚構(gòu)成一個(gè)局域網(wǎng),每個(gè)大棚中的匯聚節(jié)點(diǎn)與網(wǎng)絡(luò)模塊直接進(jìn)行數(shù)據(jù)傳輸,并通過輪詢的方式實(shí)現(xiàn)遠(yuǎn)程反向控制功能.
(1)ZigBee開發(fā)環(huán)境
系統(tǒng)中ZigBee節(jié)點(diǎn)的業(yè)務(wù)邏輯代碼均在IAR Embedded Workbench開發(fā)環(huán)境中使用C語(yǔ)言開發(fā)完成,ZigBee節(jié)點(diǎn)間的通信協(xié)議采用基于Z-Stack-CC2530-2.5.1a版本協(xié)議棧.
(2)網(wǎng)關(guān)模塊驅(qū)動(dòng)開發(fā)
分別采用W5500以太網(wǎng)模塊、ESP8266 WIFI模塊、SIM7600CE 4G模塊,使本身無法接入互聯(lián)網(wǎng)的ZigBee網(wǎng)絡(luò)可以使用3種方式與遠(yuǎn)程服務(wù)器通信.CC2530使用對(duì)應(yīng)的SPI接口或UART接口與網(wǎng)關(guān)模塊對(duì)接,在Z-Stack協(xié)議棧中移植相關(guān)的設(shè)備驅(qū)動(dòng)即可完成ZigBee協(xié)議到互聯(lián)網(wǎng)協(xié)議之間的轉(zhuǎn)換.
(3)服務(wù)器中間件實(shí)現(xiàn)
服務(wù)器中間件承擔(dān)了遠(yuǎn)程手機(jī)終端設(shè)備與蔬菜大棚現(xiàn)場(chǎng)設(shè)備雙方數(shù)據(jù)交互的橋梁作用,同時(shí)也是系統(tǒng)智能化自動(dòng)化控制功能中至為關(guān)鍵的一環(huán).服務(wù)器端運(yùn)行Python中間件的業(yè)務(wù)流程圖如圖3所示.

圖3 服務(wù)器中間件數(shù)據(jù)傳輸圖Fig.3 Server middleware business flow chart
(4)數(shù)據(jù)庫(kù)設(shè)計(jì)
本系統(tǒng)中使用的數(shù)據(jù)庫(kù)版本為MySQL5.5,分別創(chuàng)建用戶信息表、數(shù)據(jù)采集結(jié)果表,分別用于驗(yàn)證用戶身份和采集數(shù)據(jù)實(shí)時(shí)展示.
(5)微信平臺(tái)開發(fā)
云服務(wù)器端使用ThinkPHP5.0.23核心版框架,通過調(diào)用微信公眾號(hào)接口實(shí)現(xiàn)自動(dòng)回復(fù)、自定義菜單、消息推送等功能.使用PHP、ECharts等技術(shù)實(shí)現(xiàn)前端展示頁(yè)面,通過調(diào)用Python語(yǔ)言編寫的后端接口,實(shí)現(xiàn)實(shí)時(shí)展示采集的環(huán)境數(shù)據(jù)和遠(yuǎn)程控制等相關(guān)功能.
系統(tǒng)中ZigBee通信硬件模塊使用德州儀器公司的CC2530增強(qiáng)型51內(nèi)核單片機(jī),與信號(hào)放大芯片RFX2401C組成的ZigBee射頻模塊的最小系統(tǒng)原理圖如圖4所示.

圖4 CC2530+RFX2401C組成的ZigBee射頻模塊電路Fig.4 CC2530+RFX2401C composed ZigBee RF module circuit schematic
ZigBee終端節(jié)點(diǎn)、路由節(jié)點(diǎn)、匯聚節(jié)點(diǎn)(協(xié)調(diào)器)所采用的射頻模塊電路均相同,只在業(yè)務(wù)邏輯代碼上有所區(qū)別.
終端節(jié)點(diǎn)在低功耗模式下運(yùn)行,所有模塊均可以在鋰電池的工作電壓下正常運(yùn)行.路由節(jié)點(diǎn)與8路繼電器連接,匯聚節(jié)點(diǎn)與網(wǎng)關(guān)模塊連接并進(jìn)行數(shù)據(jù)傳輸.各節(jié)點(diǎn)硬件接線實(shí)物圖如圖5所示.

圖5 各節(jié)點(diǎn)接線實(shí)物圖Fig.5 Physical map of each node wiring
(1)環(huán)境數(shù)據(jù)采集與遠(yuǎn)程控制
用戶打開手機(jī)上的微信公眾號(hào)即可實(shí)時(shí)查看蔬菜大棚內(nèi)的實(shí)時(shí)環(huán)境數(shù)據(jù)及變化趨勢(shì),并通過界面上的開關(guān)按鈕遠(yuǎn)程控制風(fēng)機(jī)、水泵等可控制設(shè)備,如圖6(a),圖6(b)所示.
(2)自動(dòng)灌溉
當(dāng)土壤濕度傳感器監(jiān)測(cè)到土壤濕度低于某一個(gè)閥值時(shí),水泵開啟,自動(dòng)進(jìn)行灌溉直至土壤濕度達(dá)到某一個(gè)值,以保證土壤濕度在某一個(gè)恒定的值,保證農(nóng)作物生長(zhǎng)的最佳濕度環(huán)境.
(3)消息推送
根據(jù)硬件設(shè)備的操作,會(huì)給用戶推送不同消息,如自動(dòng)灌溉,自動(dòng)換氣,自動(dòng)檢測(cè)是否有人靠近,以達(dá)到實(shí)時(shí)消息推送的功能,如圖6(c)所示.

圖6 微信公眾號(hào)界面圖Fig.6 WeChat public number interface map
ZigBee常用芯片CC2530的4種功耗模式如表1所示:

表1 CC2530的4種功耗模式Tab.1 Four power consumption modes of the CC2530
對(duì)比表1中各工作模式ZigBee節(jié)點(diǎn)參考電流,CC2530在PM2和PM3模式下功耗較低,因此,節(jié)點(diǎn)進(jìn)入休眠狀態(tài)時(shí),優(yōu)先選擇PM2或PM3模式.由于節(jié)點(diǎn)進(jìn)入PM3模式時(shí),會(huì)關(guān)閉所有低頻振蕩器,此時(shí)無法使用定時(shí)器產(chǎn)生中斷,在沒有給予外部中斷或重新上電復(fù)位的情況下,無法自主喚醒,會(huì)導(dǎo)致節(jié)點(diǎn)一直處于低功耗模式而無法執(zhí)行應(yīng)用層任務(wù).因此,盡管PM3模式的電流相對(duì)于PM2模式略低,但本文選擇PM2模式休眠.
在本文第2部分搭建的系統(tǒng)中,使用萬用表測(cè)得以下數(shù)據(jù):
(1)路由節(jié)點(diǎn)在帶功率放大模塊的全功能模式下,測(cè)得平均電流Iactive為34 mA;PM2低功耗模式下,測(cè)得平均電流Isleep為1.5 μA;喚醒時(shí)關(guān)閉接收機(jī)只發(fā)送數(shù)據(jù)測(cè)得的平均工作電流Isend為16 mA.
(2)設(shè)定路由節(jié)點(diǎn)休眠時(shí)低功耗模式的工作周期tsleep為3 s,全功能模式時(shí)間tactive為50 ms,喚醒時(shí)關(guān)閉接收機(jī)只發(fā)送數(shù)據(jù)的工作時(shí)間tsend為5 s.
(3)使用2節(jié)5號(hào)電池給路由節(jié)點(diǎn)供電,單節(jié)5號(hào)電池的容量為1200 mAh,路由節(jié)點(diǎn)的工作電壓U為3.3 V.
在等待喚醒指令時(shí),路由節(jié)點(diǎn)的能量損耗為:
(1)
接收到外部喚醒指令后,發(fā)送數(shù)據(jù)包的過程中,路由節(jié)點(diǎn)的能量損耗為:

(2)
路由節(jié)點(diǎn)在未采用休眠喚醒策略時(shí)的能量損耗為:

(3)
其中tnormal為總的工作時(shí)長(zhǎng),因此,本系統(tǒng)中路由節(jié)點(diǎn)的總能耗計(jì)算公式為:
Wtotal=Wactive+Wsleep+Wsend=
(4)
節(jié)點(diǎn)工作時(shí)長(zhǎng)ttotal計(jì)算公式為:
(5)
其中Nbattery,Wbatiery分別表示使用的電池?cái)?shù)量以及每節(jié)電池電量,T表示數(shù)據(jù)采集的時(shí)間間隔.
根據(jù)公式(1)~(5)及測(cè)量到的數(shù)據(jù)可計(jì)算出在使用2節(jié)5號(hào)電池下,路由節(jié)點(diǎn)在不使用低功耗休眠喚醒策略以及在不同數(shù)據(jù)采集間隔下的路由節(jié)點(diǎn)的理論工作時(shí)長(zhǎng),結(jié)果如表2所示.

表2 路由節(jié)點(diǎn)在不同數(shù)據(jù)采集間隔下的工作時(shí)長(zhǎng)Tab.2 Working time of routing nodes under different data collection intervals
由表2可知,在不同數(shù)據(jù)采集間隔下節(jié)點(diǎn)的工作時(shí)長(zhǎng)隨著采集時(shí)間間隔的增加而增加,而當(dāng)節(jié)點(diǎn)不使用低功耗喚醒策略時(shí),節(jié)點(diǎn)理論工作時(shí)長(zhǎng)僅為3d,因此,比傳統(tǒng)的未使用低功耗休眠喚醒策略有更高的使用價(jià)值,可以有效延長(zhǎng)節(jié)點(diǎn)使用壽命.
本文實(shí)現(xiàn)了ZigBee無線傳感器網(wǎng)絡(luò)與微信公眾平臺(tái)在蔬菜大棚中的應(yīng)用.借助智能物聯(lián)網(wǎng)系統(tǒng)實(shí)現(xiàn)對(duì)蔬菜大棚內(nèi)設(shè)備的自動(dòng)控制,在設(shè)定的環(huán)境參數(shù)內(nèi)自動(dòng)作業(yè),大幅提高了對(duì)環(huán)境條件的精準(zhǔn)控制,同時(shí)也減少了對(duì)人的依賴,減輕了技術(shù)壓力[23].本文主要從以下幾個(gè)方面突出了該智能監(jiān)測(cè)控制系統(tǒng)的實(shí)用性與創(chuàng)新性.
(1)低成本、低功耗
終端節(jié)點(diǎn)采用電池供電,進(jìn)行環(huán)境數(shù)據(jù)采集,減少了傳統(tǒng)數(shù)據(jù)采集的各種電線、網(wǎng)線布線過程,并使用低功耗算法大大降低了耗能,經(jīng)測(cè)試與計(jì)算,單節(jié)電池大約可以使用一年以上而無需更換.現(xiàn)有的智能農(nóng)業(yè)大棚造價(jià)動(dòng)輒100元/m2以上,而使用本文中的初期方案已經(jīng)可以實(shí)現(xiàn)環(huán)境數(shù)據(jù)采集與自動(dòng)灌溉等基本功能,整體成本約在幾百元內(nèi),后期擴(kuò)展其他的功能模塊所需的開銷也只是其他智能大棚成本的1/10不到.因此非常適用于預(yù)算比較有限的農(nóng)業(yè)生產(chǎn)地區(qū);
(2)操作簡(jiǎn)單、可靠性高
針對(duì)多數(shù)農(nóng)業(yè)從業(yè)人員的知識(shí)素養(yǎng)特點(diǎn),簡(jiǎn)化了設(shè)備操作難度,系統(tǒng)界面親和力高,同時(shí)用戶在微信平臺(tái)上使用本系統(tǒng)增強(qiáng)了用戶粘性.系統(tǒng)具有硬件冗余,可根據(jù)實(shí)際部署施工的難度,有選擇性地通過以太網(wǎng)、Wi-Fi、4G/GSM三種方式接入互聯(lián)網(wǎng),在條件苛刻的山區(qū)可以使用太陽(yáng)能風(fēng)能配合蓄電池給硬件模塊供電,使得系統(tǒng)在極端環(huán)境下也能正常運(yùn)行;
(3)擴(kuò)展能力強(qiáng)
系統(tǒng)提供了豐富的軟硬件接口,擴(kuò)展能力強(qiáng),低功耗采集模塊得到的環(huán)境數(shù)據(jù)參考價(jià)值高,為以后進(jìn)行農(nóng)產(chǎn)品追溯、平臺(tái)推廣提供了豐富的數(shù)據(jù)基礎(chǔ).