任 玲 , 夏 俊 , 翟旭軍 , 劉政委 , 戚玉強(qiáng)
(江蘇農(nóng)牧科技職業(yè)學(xué)院農(nóng)業(yè)工程學(xué)院,江蘇 泰州 225300)
中國(guó)是一個(gè)人口大國(guó)和農(nóng)業(yè)大國(guó),隨著生活水平的提高,人們對(duì)農(nóng)產(chǎn)品質(zhì)量和數(shù)量需求也越來(lái)越大,此時(shí),傳統(tǒng)農(nóng)業(yè)生產(chǎn)模式難以滿足不斷增長(zhǎng)的需求,溫室大棚系統(tǒng)應(yīng)運(yùn)而生。傳統(tǒng)溫室大棚內(nèi)環(huán)境調(diào)控系統(tǒng)多采用人工實(shí)地檢測(cè)環(huán)境參數(shù)和啟動(dòng)控制設(shè)備調(diào)控環(huán)境,這存在局限性,消耗人力和物力。此外,受主觀因素限制,測(cè)量結(jié)果難免存在誤差。新興的物聯(lián)網(wǎng)技術(shù)為溫室大棚內(nèi)環(huán)境調(diào)控提供了一個(gè)嶄新的思路[1],將物聯(lián)網(wǎng)技術(shù)應(yīng)用到溫室大棚內(nèi),能夠進(jìn)行彼此間信息交互、共享,會(huì)使農(nóng)業(yè)生產(chǎn)生活發(fā)生革命性轉(zhuǎn)變,對(duì)于提高農(nóng)作物質(zhì)量和產(chǎn)量[2-3]、增加農(nóng)業(yè)經(jīng)濟(jì)效益具有非常重要的意義。
基于農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)的智能溫室系統(tǒng)整體結(jié)構(gòu)分為感知控制層、網(wǎng)絡(luò)傳輸層和終端應(yīng)用層[4],如圖1所示。感知控制層是農(nóng)業(yè)物聯(lián)網(wǎng)體系的基礎(chǔ),主要功能是收集各個(gè)節(jié)點(diǎn)信息,然后將信息通過(guò)網(wǎng)絡(luò)匯集到數(shù)據(jù)中心,這里采用Zigbee無(wú)線網(wǎng)絡(luò)進(jìn)行統(tǒng)一分析處理。為了提升數(shù)據(jù)傳輸?shù)母咝?,在?shù)據(jù)傳輸過(guò)程中往往需要用到數(shù)據(jù)融合技術(shù),對(duì)溫室現(xiàn)場(chǎng)執(zhí)行器進(jìn)行控制。網(wǎng)絡(luò)傳輸層利用一個(gè)良好穩(wěn)定的網(wǎng)絡(luò)傳輸系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)傳輸和同步,以及控制命令的下達(dá),本層可以采用多種方式接入互聯(lián)網(wǎng),當(dāng)前無(wú)線傳輸技術(shù)發(fā)展突飛猛進(jìn),可使用Bluetooth、RFID、WIFI、Zigbee等,本系統(tǒng)采用WIFI進(jìn)行信號(hào)傳輸。通過(guò)終端應(yīng)用層用戶可對(duì)溫室環(huán)境進(jìn)行監(jiān)測(cè)和對(duì)溫室設(shè)備進(jìn)行遠(yuǎn)程控制。
圖1 智能溫室農(nóng)業(yè)物聯(lián)網(wǎng)架構(gòu)方案
感知控制層幫助用戶在傳感網(wǎng)絡(luò)覆蓋區(qū)協(xié)作地感知、采集、處理和傳輸植物養(yǎng)護(hù)環(huán)境和可控設(shè)備狀態(tài)信息,由數(shù)據(jù)采集節(jié)點(diǎn)模塊、終端執(zhí)行器模塊、Zigbee網(wǎng)關(guān)和電源模塊組成。
Zigbee的功能框圖如圖2所示,包括微控制器(MCU)、電源管理模塊、設(shè)備狀態(tài)控制模塊和通信接口模塊。微控制器選用資源豐富的AVR單片機(jī)ATMEGA328P芯片構(gòu)成的Arduino UNO R3控制板,使用它的UART連接ESP8266 WIFI模塊,完成與數(shù)據(jù)采集節(jié)點(diǎn)模塊、上層系統(tǒng)的通信,執(zhí)行器控制采用繼電器組實(shí)現(xiàn)。為保證執(zhí)行器控制準(zhǔn)確,控制板將當(dāng)前設(shè)備狀態(tài)與預(yù)設(shè)控制狀態(tài)進(jìn)行比對(duì)來(lái)控制現(xiàn)場(chǎng)設(shè)備,若有故障發(fā)生會(huì)及時(shí)報(bào)警。
數(shù)據(jù)采集模塊連接數(shù)據(jù)信息和Zigbee網(wǎng)關(guān),把設(shè)施大棚內(nèi)的環(huán)境監(jiān)控信息實(shí)時(shí)傳輸給Zigbee網(wǎng)關(guān),Zigbee技術(shù)是一種功耗低、數(shù)據(jù)速率低、成本低、可靠性高、組網(wǎng)方式靈活、高安全性的雙向無(wú)線通信技術(shù)[5-7],其基礎(chǔ)是IEEE 802.15.4國(guó)際標(biāo)準(zhǔn)協(xié)議。無(wú)線傳感器采集大棚內(nèi)的溫濕度、光照度和土壤水分參數(shù),每個(gè)傳感器節(jié)點(diǎn)都使用了CC2530F256作為控制核心,所用傳感器類型和性能參數(shù)如表1所示。數(shù)據(jù)采集節(jié)點(diǎn)由無(wú)線通信模塊、傳感器接口模塊和電源模塊組成,電源模塊可以用蓄電池、市電、太陽(yáng)能供電,大大提升了運(yùn)作效率,數(shù)據(jù)采集節(jié)點(diǎn)結(jié)構(gòu)如圖3所示。
表1 傳感器類型和性能參數(shù)
圖3 數(shù)據(jù)采集節(jié)點(diǎn)結(jié)構(gòu)
本系統(tǒng)農(nóng)業(yè)設(shè)備指的是通風(fēng)風(fēng)機(jī)、補(bǔ)光燈、滴灌設(shè)備和噴灌設(shè)備,通過(guò)四路220 V的繼電器控制設(shè)備啟停,實(shí)現(xiàn)設(shè)施大棚智能管理。系統(tǒng)采用終端控制節(jié)點(diǎn)方式全天對(duì)大棚內(nèi)的機(jī)電設(shè)備進(jìn)行遠(yuǎn)程智能檢測(cè),確保大棚內(nèi)土壤水分、環(huán)境溫濕度、環(huán)境光照度等指標(biāo)合理化。ULN2003多用于驅(qū)動(dòng)繼電器、步進(jìn)電機(jī)等大功率、大電流器件,作為驅(qū)動(dòng)器驅(qū)動(dòng)四路繼電器。終端執(zhí)行器節(jié)點(diǎn)電路如圖4所示。
圖4 終端執(zhí)行器硬件電路
系統(tǒng)傳輸信息的網(wǎng)絡(luò)層由Zigbee網(wǎng)關(guān)和5G移動(dòng)網(wǎng)絡(luò)組成,Zigbee移動(dòng)網(wǎng)絡(luò)通信模塊負(fù)責(zé)接收感知層發(fā)送的數(shù)據(jù),并將其通過(guò)5G網(wǎng)絡(luò)轉(zhuǎn)發(fā)到終端應(yīng)用平臺(tái);終端應(yīng)用平臺(tái)選用的是TLINK物聯(lián)網(wǎng)云服務(wù)平臺(tái),負(fù)責(zé)監(jiān)測(cè)數(shù)據(jù)狀態(tài)并發(fā)送指令到控制中心Arduino UNO R3。應(yīng)用終端和ESP8266網(wǎng)絡(luò)通信模塊連接到同一個(gè)WIFI下,應(yīng)用終端通過(guò)網(wǎng)絡(luò)的調(diào)試助手發(fā)送和接收數(shù)據(jù)。ESP8266 WIFI模塊的TX和RX引腳與Arduino的PD2和PD3引腳相連。終端應(yīng)用層采用TLINK物聯(lián)網(wǎng)平臺(tái)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,農(nóng)業(yè)管理者和研究人員可以在任何時(shí)間、任何地點(diǎn)查看所采集的農(nóng)情信息。
監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)融合技術(shù)是指多傳感器按時(shí)序檢測(cè)到海量信息,按照一定的規(guī)則或協(xié)議采用計(jì)算機(jī)算法技術(shù)進(jìn)行分析、綜合,消除多信息之間可能存在的冗余和矛盾[8-9],以完成所需的決策和評(píng)估任務(wù)而進(jìn)行的信息處理技術(shù)。農(nóng)業(yè)環(huán)境監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)融合是指各類傳感設(shè)備采集的環(huán)境數(shù)據(jù)在一定時(shí)間內(nèi)變化不大、非常穩(wěn)定,若采用均勻間隔周期進(jìn)行數(shù)據(jù)采集傳輸,就會(huì)造成采集到的數(shù)據(jù)存在冗余現(xiàn)象[10-11],并且數(shù)據(jù)傳輸過(guò)程存在能量消耗大的問(wèn)題。為了降低傳感器網(wǎng)絡(luò)傳輸能量消耗,使傳感器節(jié)點(diǎn)獲得更加準(zhǔn)確的數(shù)據(jù),提出無(wú)跡卡爾曼濾波(UKF)融合算法,節(jié)點(diǎn)感知數(shù)據(jù)仍是等間隔采集存儲(chǔ),但是經(jīng)過(guò)算法分析剔除后發(fā)送的數(shù)據(jù)包是非等間隔發(fā)送。
UKF算法是基于無(wú)跡卡爾曼濾波的數(shù)據(jù)融合算法,該算法將感知節(jié)點(diǎn)按均勻時(shí)序采集到的原始數(shù)據(jù)緩存,然后對(duì)采集的n個(gè)數(shù)據(jù)進(jìn)行整體分析,用這些樣本數(shù)據(jù)點(diǎn)表示高斯密度近似狀態(tài)的概率密度,用一系列確定的數(shù)據(jù)逼近狀態(tài)的后驗(yàn)概率密度,分析判斷過(guò)程中是否有冗余數(shù)據(jù),保留滿足要求的有效數(shù)據(jù)。算法實(shí)現(xiàn)過(guò)程如下。
對(duì)于不同時(shí)刻k,由具有高斯白噪聲wk的隨機(jī)變量x和具有高斯白噪聲vk的觀測(cè)變量y構(gòu)成的非線性狀態(tài)方程和測(cè)量方程如下:
式中,f是非線性狀態(tài)方程函數(shù),g是非線性測(cè)量方程函數(shù),設(shè)wk、vk具有協(xié)方差陣。
隨機(jī)變量x在不同時(shí)刻k的UKF算法基本步驟如下。
步驟1:初始化,計(jì)算均值 和方差P。
步驟2:1)計(jì)算2n+1個(gè)sigma點(diǎn),這里的n指的是狀態(tài)的維數(shù)。
2)計(jì)算這些采樣點(diǎn)相應(yīng)的權(quán)值。
式中,下標(biāo)m為均值,c為協(xié)方差,上標(biāo)為第幾個(gè)采樣點(diǎn);α為比例因子,一般取0~1;β是用來(lái)融入隨機(jī)變量x的驗(yàn)前信息,是一個(gè)非負(fù)的權(quán)系數(shù);參數(shù)γ=α2(n+ρ)-n是一個(gè)縮放比例參數(shù);ρ一般為3-n或0。
步驟3:將sigma點(diǎn)集向后傳遞,進(jìn)行加權(quán)處理得到狀態(tài)變量和協(xié)方差的先驗(yàn)估計(jì)值。
根據(jù)先驗(yàn)估計(jì)值,使用無(wú)跡變換得到新的sigma點(diǎn)集。
對(duì)新的sigma點(diǎn)集向后傳遞,通過(guò)加權(quán)求和得到系統(tǒng)預(yù)測(cè)的均值及協(xié)方差。
步驟4:計(jì)算系統(tǒng)的狀態(tài)和協(xié)方差更新。
基于無(wú)跡UKF的算法流程如圖5所示。
圖5 UKF算法流程圖
智能溫室系統(tǒng)的軟件設(shè)計(jì)由感知控制節(jié)點(diǎn)、服務(wù)器和客戶端軟件設(shè)計(jì)三部分組成??蛻舳顺绦蜇?fù)責(zé)顯示植物養(yǎng)護(hù)環(huán)境參數(shù)、歷史數(shù)據(jù)記錄及養(yǎng)護(hù)設(shè)施管理;網(wǎng)絡(luò)通信端程序負(fù)責(zé)對(duì)感知層采集的數(shù)據(jù)進(jìn)行傳輸并控制設(shè)備狀態(tài)信息的傳輸;感知控制節(jié)點(diǎn)負(fù)責(zé)采集傳輸植物養(yǎng)護(hù)環(huán)境參數(shù)和田間設(shè)備狀態(tài)信息,控制養(yǎng)護(hù)設(shè)備的啟停。
感知控制節(jié)點(diǎn)上電后[12]首先進(jìn)行系統(tǒng)初始化,然后周期性地采集植物養(yǎng)護(hù)環(huán)境信息并存儲(chǔ),同時(shí)周期性地輪詢是否有控制執(zhí)行器的指令信息。若有則發(fā)送控制指令給繼電器,否則繼續(xù)偵聽(tīng)信道。設(shè)計(jì)流程如圖6所示。
圖6 感知節(jié)點(diǎn)程序功能流程圖
5.1.1 數(shù)據(jù)采集模塊程序設(shè)計(jì)
Arduino編程語(yǔ)言是由C語(yǔ)言改進(jìn)的,在Arduino IDE中導(dǎo)入各傳感器模塊所需的庫(kù)文件后即可對(duì)整個(gè)傳感器系統(tǒng)進(jìn)行編程。環(huán)境溫濕度、光照度和土壤水分傳感器采集到的信息通過(guò)Zigbee模塊傳輸至Arduino控制模塊。感知模塊硬件部分由多個(gè)傳感器構(gòu)成,因此在編寫感知節(jié)點(diǎn)Arduino代碼時(shí)需要充分考慮各傳感器之間的關(guān)系,包括傳感器采集數(shù)據(jù)的順序與傳感器之間的協(xié)同性,具體流程如圖7所示。
圖7 數(shù)據(jù)采集模塊程序流程圖
5.1.2 控制模塊程序設(shè)計(jì)
控制程序在本系統(tǒng)主要指繼電器控制滴灌、噴灌、補(bǔ)光和通風(fēng),用戶通過(guò)點(diǎn)擊客戶端對(duì)應(yīng)按鈕發(fā)送控制指令,指令經(jīng)過(guò)層層下發(fā),下達(dá)到終端節(jié)點(diǎn)控制繼電器啟停,控制繼電器打開(kāi)流程圖如圖8所示。
圖8 控制模塊流程圖
網(wǎng)絡(luò)通信選用WIFI ESP8266 模塊進(jìn)行無(wú)線通信,WIFI模塊和手機(jī)端使用的是TCP通信協(xié)議,Socket通信方式。將傳感器節(jié)點(diǎn)收集的感知數(shù)據(jù)通過(guò)ESP8266發(fā)送給服務(wù)器,實(shí)現(xiàn)無(wú)線傳感網(wǎng)絡(luò)與Internet網(wǎng)絡(luò)的連接;同時(shí),應(yīng)用程序通過(guò)使用Socket方式向網(wǎng)絡(luò)發(fā)出指令,AT指令使用流程圖如圖9所示。
圖9 AT指令使用流程圖
使用TLINK物聯(lián)網(wǎng)平臺(tái)自動(dòng)生成服務(wù),創(chuàng)建一個(gè)Android應(yīng)用,包括創(chuàng)建產(chǎn)品、定義數(shù)據(jù)點(diǎn),完成操作后可生成代碼包。APP開(kāi)發(fā)整個(gè)工作流程如圖10所示。
圖10 APP工作流程圖
本測(cè)試采用手機(jī)作為終端,首先要進(jìn)行設(shè)備聯(lián)網(wǎng)設(shè)置,保證手機(jī)和硬件設(shè)備在同一個(gè)WIFI服務(wù)器,設(shè)置完成后設(shè)備自動(dòng)重啟,1 min便可發(fā)送數(shù)據(jù)和遠(yuǎn)程控制。進(jìn)入手機(jī)TLINK物聯(lián)網(wǎng)平臺(tái),輸入設(shè)備名和密碼綁定認(rèn)證,然后進(jìn)入監(jiān)控界面如圖11所示。
圖11 手機(jī)端監(jiān)控界面
該系統(tǒng)在現(xiàn)場(chǎng)進(jìn)行多次運(yùn)行測(cè)試,期間運(yùn)行穩(wěn)定,Zigbee無(wú)線網(wǎng)絡(luò)傳感器穩(wěn)定可靠,環(huán)境溫濕度、光照度和土壤水分?jǐn)?shù)據(jù)采集響應(yīng)迅速,數(shù)據(jù)準(zhǔn)確,數(shù)據(jù)上傳同步延遲在1 s以內(nèi),控制指令下達(dá)后,能精準(zhǔn)控制滴灌、噴灌、補(bǔ)光和通風(fēng)設(shè)備,控制設(shè)備響應(yīng)迅速正常。云端Web服務(wù)器運(yùn)行穩(wěn)定,數(shù)據(jù)中心工作正常,查看土壤水分、環(huán)境溫濕度和光照度歷史曲線,未發(fā)生數(shù)據(jù)查詢緩慢或異?,F(xiàn)象。
手機(jī)端監(jiān)控的環(huán)境光照度歷史數(shù)據(jù)如圖12所示,網(wǎng)絡(luò)控制定時(shí)開(kāi)關(guān)功能界面如圖13所示。
圖12 環(huán)境光照度歷史曲線
基于農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)的智能溫室采用了TLINK物聯(lián)網(wǎng)平臺(tái),借助云服務(wù)器進(jìn)行智能手機(jī)和硬件設(shè)備的通信,實(shí)現(xiàn)了土壤水分、環(huán)境溫濕度和光照度數(shù)據(jù)的查看,手動(dòng)或自動(dòng)控制滴灌、噴灌、補(bǔ)光和通風(fēng)風(fēng)機(jī)等農(nóng)業(yè)設(shè)備調(diào)節(jié)種植環(huán)境參數(shù);系統(tǒng)還具有網(wǎng)絡(luò)定時(shí)、告警推送功能,根據(jù)實(shí)際種植需要,可以增加硬件、修改程序數(shù)據(jù)并在TLINK物聯(lián)網(wǎng)平臺(tái)新增設(shè)備。對(duì)系統(tǒng)進(jìn)行了實(shí)驗(yàn)測(cè)試,結(jié)果表明:設(shè)計(jì)成本低,便于大規(guī)模生產(chǎn)和推廣,養(yǎng)護(hù)裝置智能化程度高,這將為植物智能養(yǎng)護(hù)提供性價(jià)比較高的養(yǎng)護(hù)裝置,具有廣闊的推廣前景。
圖13 網(wǎng)絡(luò)控制定時(shí)功能界面