孫若鵬 權(quán) 悅 劉帥帥 張衛(wèi)民 徐江鵬 鄭 超
(安徽科技學(xué)院機(jī)械工程學(xué)院 安徽鳳陽(yáng) 233100)
近年來(lái),“精準(zhǔn)農(nóng)業(yè)”的概念在農(nóng)村普及,然而精準(zhǔn)農(nóng)業(yè)的實(shí)現(xiàn)主要依賴(lài)于農(nóng)業(yè)灌溉技術(shù)的發(fā)展,但是目前國(guó)內(nèi)灌溉的主要方式還是通過(guò)人工灌溉進(jìn)行,農(nóng)民的負(fù)擔(dān)較大,需要根據(jù)環(huán)境和農(nóng)作物的長(zhǎng)勢(shì),經(jīng)過(guò)農(nóng)民主觀經(jīng)驗(yàn)分析進(jìn)行灌溉,此傳統(tǒng)方法費(fèi)時(shí)費(fèi)力。其次,人為觀測(cè)的依據(jù)不夠精準(zhǔn),且通過(guò)普通的灌溉方式對(duì)水資源浪費(fèi)巨大,不符合當(dāng)下提出的“精準(zhǔn)農(nóng)業(yè)”概念,因此,在查閱文獻(xiàn)時(shí),選擇了滴灌的方式進(jìn)行灌溉。滴灌可以使灌溉時(shí)的水流量減少,水分可以緩慢進(jìn)入土壤,減少多余水分的流失。然而滴灌需要布線,在農(nóng)田環(huán)境下具有很多不確定性,會(huì)引起布線困難,成本增加。
在自動(dòng)灌溉的研究過(guò)程中,科研工作者取得了豐碩的成果。顧飛龍針對(duì)傳統(tǒng)的人工灌溉因控制精度和實(shí)時(shí)性不高而造成水資源浪費(fèi)的問(wèn)題,提出結(jié)合傳感器技術(shù)、遠(yuǎn)距離無(wú)線傳輸技術(shù)LoRa 和模糊控制理論,設(shè)計(jì)了一款基于LoRa 的智能農(nóng)業(yè)灌溉系統(tǒng),可以有效實(shí)現(xiàn)智能節(jié)水灌溉[1]。陳天成對(duì)于傳統(tǒng)農(nóng)業(yè)中灌溉和施肥時(shí),產(chǎn)生過(guò)度浪費(fèi)的問(wèn)題,設(shè)計(jì)了一種基于ZigBee的水肥一體化智能灌溉系統(tǒng),通過(guò)ZigBee傳輸數(shù)據(jù)到云平臺(tái),再利用AI專(zhuān)家系統(tǒng)根據(jù)農(nóng)作物長(zhǎng)勢(shì)和環(huán)境因素分析得出最佳灌溉方案[2]。雷萬(wàn)榮等設(shè)計(jì)了LoRa 低能耗遠(yuǎn)距離通訊無(wú)線電臺(tái)控制技術(shù),有效減少能耗,結(jié)合彭曼公式進(jìn)行灌溉范圍預(yù)測(cè),通過(guò)上位機(jī)傳達(dá)控制指令給無(wú)線電臺(tái)實(shí)現(xiàn)自動(dòng)灌溉[3];鄭志建對(duì)于農(nóng)業(yè)節(jié)水中不合理的問(wèn)題,通過(guò)對(duì)多個(gè)影響因子進(jìn)行數(shù)據(jù)融合處理,進(jìn)行參數(shù)融合算法設(shè)計(jì),使得出的測(cè)量結(jié)果更準(zhǔn)確,滴灌效果和節(jié)水性能更好[4];楊婷對(duì)于國(guó)內(nèi)滴灌系統(tǒng)大多沒(méi)有實(shí)時(shí)數(shù)據(jù)采集與分析和滴灌系統(tǒng)布線困難的問(wèn)題,提出使用低功耗、易組網(wǎng)、低成本的ZigBee無(wú)線通訊技術(shù),融合傳感器數(shù)據(jù)折算成土壤濕度值作為滴灌判斷依據(jù),實(shí)現(xiàn)節(jié)水和提高滴灌效率[5];車(chē)守全等為使農(nóng)業(yè)生產(chǎn)數(shù)據(jù)集成可視化,能夠提供精準(zhǔn)灌溉策略,設(shè)計(jì)了LoRa物聯(lián)網(wǎng)網(wǎng)絡(luò)終端和網(wǎng)關(guān),并基于OPC和WINCC 設(shè)計(jì)了上位機(jī)交互系統(tǒng),該系統(tǒng)具有較高的農(nóng)業(yè)生產(chǎn)實(shí)用性[6]。
本文在上述研究中所提到的滴灌控制方法和無(wú)線傳感策略的基礎(chǔ)上,以STM32單片機(jī)作為控制部分為出發(fā)點(diǎn),結(jié)合遠(yuǎn)距離、低功耗的LoRa無(wú)線網(wǎng)絡(luò)通訊技術(shù),設(shè)計(jì)一種基于LoRa無(wú)線傳輸?shù)淖詣?dòng)滴灌系統(tǒng)。系統(tǒng)通過(guò)土壤溫濕度傳感器、大氣溫濕度傳感器和光照強(qiáng)度傳感器采集數(shù)據(jù),數(shù)據(jù)經(jīng)LoRa傳輸,經(jīng)過(guò)A/D轉(zhuǎn)換到STM32,將數(shù)據(jù)分析整合,得到土壤墑情判斷值,依據(jù)該值控制單片機(jī)GPIO 端口輸出高低電平,通過(guò)改變電磁閥兩端電平實(shí)現(xiàn)電磁閥通斷,進(jìn)行自動(dòng)滴灌作業(yè)。單片機(jī)再通過(guò)LoRa 模塊將數(shù)據(jù)傳給上位機(jī)顯示當(dāng)前測(cè)量數(shù)據(jù),并可手動(dòng)控制是否滴灌。
(一)單片機(jī)控制模塊。本設(shè)計(jì)選用STM32F103VET6芯片作為控制模塊的核心,該芯片的工作頻率最高為72MHz,采用的是ARMCortex-M3內(nèi)核架構(gòu),具有出廠設(shè)置的8MHz的RC振蕩器,96KB 的SRAM 和512KB 的FLASH,同時(shí)帶有8 個(gè)定時(shí)器和3 個(gè)16 位定時(shí)器,串口有3 個(gè)USART 接口,2 個(gè)看門(mén)狗定時(shí)器,分別是獨(dú)立看門(mén)狗和窗口看門(mén)狗,防止程序跑飛,三路12位ADC。
圖1 STM32F103VET6芯片引腳圖
使用STM32作為系統(tǒng)控制的核心,為了對(duì)農(nóng)田土壤的墑情做出合理判斷,因此需要編寫(xiě)能代替人力進(jìn)行分析判斷是否需要滴灌的自動(dòng)控制程序,程序中包含串口數(shù)據(jù)收發(fā)、定時(shí)器中斷、A/D轉(zhuǎn)換模塊,無(wú)線通訊模塊、看門(mén)狗模塊等組成部分。主要負(fù)責(zé)將各個(gè)分布在農(nóng)田里的傳感器采集到的各種信息進(jìn)行數(shù)據(jù)處理,判斷是否開(kāi)啟電磁閥。
(二)LoRa 無(wú)線通訊模塊。LoRa (Long Range)是一種低能耗、遠(yuǎn)距離的局域網(wǎng)無(wú)線標(biāo)準(zhǔn),其最遠(yuǎn)通訊距離3km,射頻信號(hào)為470Mhz,通過(guò)與LoRa 智能網(wǎng)關(guān)通訊實(shí)現(xiàn)數(shù)據(jù)傳輸。該無(wú)線通訊技術(shù)適用于環(huán)境相對(duì)惡劣且對(duì)通訊速率要求不高的情況下。因此在農(nóng)田這種影響因素多且變化較為頻繁的環(huán)境下較為適用。
本文使用的LoRa模塊選擇ATK-LoRa-01-V3.0,該產(chǎn)品是ALIENTEK 推出的一款高性能、體積小,功耗低的LoRa 無(wú)線串口模塊。模塊采用SX1278擴(kuò)頻芯片,通過(guò)ISM頻段進(jìn)行射頻,工作頻率通常在410Mhz~441Mhz,有32 個(gè)1Mhz 頻率的步進(jìn)信道。使用LoRa 無(wú)線網(wǎng)關(guān)配合執(zhí)行裝置和采集裝置,通過(guò)農(nóng)業(yè)無(wú)線網(wǎng),可以遠(yuǎn)距離采集和監(jiān)測(cè)數(shù)據(jù),實(shí)現(xiàn)控制需求。
在本設(shè)計(jì)中LoRa 選擇星型組網(wǎng)方式,該方式具有結(jié)構(gòu)簡(jiǎn)單,維護(hù)方便、擴(kuò)展性強(qiáng)的特點(diǎn),且網(wǎng)絡(luò)延遲小,傳輸誤差率低。
圖2 SX1278電路連接圖
(三)其他硬件。
1.LoRa智能網(wǎng)關(guān)。負(fù)責(zé)將傳感器采集到的數(shù)據(jù),上傳至互聯(lián)網(wǎng),通過(guò)LoRa無(wú)線通訊方式,收集土壤溫濕度、光照強(qiáng)度、大氣溫濕度等參數(shù),以RS232、RS485或者以太網(wǎng)等通訊方式,上傳到農(nóng)業(yè)物聯(lián)網(wǎng)云平臺(tái)。
圖3 LoRa網(wǎng)關(guān)
2.執(zhí)行裝置。本設(shè)計(jì)中執(zhí)行裝置選用電磁脈沖閥,最多可并行連接32個(gè)無(wú)線控制終端,配合節(jié)流閥,流量計(jì)、水泵等控制滴灌的開(kāi)啟與關(guān)閉。
3.傳感器采集裝置。本設(shè)計(jì)中依據(jù)在農(nóng)作物生長(zhǎng)中影響最大的土壤溫濕度、大氣溫濕度、光照強(qiáng)度等環(huán)境因素設(shè)置傳感器, LoRa模塊可以使之低功耗運(yùn)行,一分鐘上傳一次數(shù)據(jù),自帶電池適用于大規(guī)模組網(wǎng)。
(一)WSN傳輸優(yōu)化算法設(shè)計(jì)。
1.代碼設(shè)計(jì)。對(duì)于整個(gè)自動(dòng)滴灌系統(tǒng)設(shè)計(jì)采用傳感器采集數(shù)據(jù),通過(guò)LoRa模塊進(jìn)行數(shù)據(jù)傳輸,但對(duì)于傳輸過(guò)程中可能存在傳感器覆蓋面積小,采集數(shù)據(jù)不全面等問(wèn)題,提出使用一種果蠅優(yōu)化算法來(lái)增加傳感器的覆蓋率。
果蠅優(yōu)化算法(Fruit Fly Optimization Algorithm, FOA)是受到果蠅覓食行為啟發(fā)的一種新興的群體優(yōu)化算法,他的運(yùn)行過(guò)程是模仿果蠅從用嗅覺(jué)隨機(jī)搜索固定范圍內(nèi)的食物信號(hào),當(dāng)其接近食物的位置時(shí),群體會(huì)根據(jù)味道濃度通過(guò)視覺(jué)一起向食物飛去,最終找到食物,實(shí)現(xiàn)整個(gè)算法的運(yùn)算。FOA 實(shí)現(xiàn)對(duì)解空間的群體迭代搜索,且原理簡(jiǎn)單,操作易于實(shí)現(xiàn),具有較強(qiáng)的局部搜索能力[7]。以下是果蠅優(yōu)化算法的具體步驟。
①首先初始化果蠅群體規(guī)模為Sizepop,迭代次數(shù)最大值為Maxgen,然后隨機(jī)初始化果蠅群體所在位置,初始化果蠅算法的參數(shù),初始化WSN的相關(guān)參數(shù)。
②初始化果蠅群體位置后,為了讓果蠅能夠利用嗅覺(jué)搜尋食物,再賦值予每個(gè)果蠅隨機(jī)的距離和方向。
式中,i代表第i個(gè)果蠅的個(gè)體,step代表果蠅向外搜索的步長(zhǎng),rand為0-1之間的隨機(jī)數(shù)。而step的數(shù)值,在基本果蠅優(yōu)化算法中為1。
③但因?yàn)榫唧w目標(biāo)食物的位置,果蠅群體無(wú)法直接獲知,所以需要設(shè)定一個(gè)值,即算法中先假設(shè)第i個(gè)果蠅與初始遠(yuǎn)點(diǎn)的距離(Dist),而后再計(jì)算味道濃度的判定值(Si),該值設(shè)定為距離的倒數(shù)。
④把得出的氣味濃度判定值Si代入進(jìn)判定氣味濃度值的函數(shù)(適應(yīng)度函數(shù))中,找到具體的果蠅個(gè)體位置濃度(Smelli)。
⑤找出果蠅群中氣味濃度最大的果蠅個(gè)體(尋找最優(yōu)個(gè)體),還有其對(duì)應(yīng)的濃度值。
⑥保留果蠅個(gè)體中最佳的味道濃度值和對(duì)應(yīng)的X_axis,Y_axis坐標(biāo),判斷是否這次迭代的最佳味道濃度值比上次最佳味道濃度值好,如果是,那么果蠅群體則通過(guò)視覺(jué)飛向該位置。
⑦重復(fù)執(zhí)行步驟②至步驟⑤,進(jìn)行迭代尋優(yōu)過(guò)程,然后比較當(dāng)前位置果蠅個(gè)體的最佳味道濃度值是否優(yōu)于上次迭代的最佳味道濃度值,若優(yōu)于,則繼續(xù)執(zhí)行步驟⑥。
因此可以看出在無(wú)線網(wǎng)絡(luò)傳輸模型里,果蠅優(yōu)化算法需要的優(yōu)化函數(shù),即濃度判斷函數(shù),從原理上說(shuō)就是WSN網(wǎng)絡(luò)覆蓋優(yōu)化模型的目標(biāo)函數(shù)。為了得到目標(biāo)監(jiān)控區(qū)域內(nèi)的節(jié)點(diǎn)覆蓋率,其判斷模型為:
其中,M×N為監(jiān)控區(qū)域范圍內(nèi)設(shè)置的網(wǎng)格點(diǎn),如果網(wǎng)格節(jié)點(diǎn)能被傳感器節(jié)點(diǎn)覆蓋,則該節(jié)點(diǎn)就被監(jiān)測(cè)到;∑Scov為成功覆蓋的網(wǎng)格點(diǎn)總數(shù)。
2. 仿真參數(shù)的設(shè)置和仿真結(jié)果分析。仿真依托于MATLAB R2015b 軟件,通過(guò)建立數(shù)學(xué)模型搭建仿真代碼,經(jīng)過(guò)10次仿真,并得出仿真圖形。仿真設(shè)置如下,對(duì)FOA實(shí)驗(yàn)部分參數(shù)設(shè)置:部署監(jiān)測(cè)區(qū)域?yàn)?0×60,設(shè)置試驗(yàn)網(wǎng)格點(diǎn)為0.4×0.4,果蠅個(gè)體的搜索步長(zhǎng)設(shè)為0.3,果蠅的種群規(guī)模設(shè)置為25,總共預(yù)迭代次數(shù)設(shè)為500,而rs=6為傳感器的感知半徑。
通過(guò)10次仿真,結(jié)果如表1,從表中可得到最佳的覆蓋率:初始果蠅算法優(yōu)化的覆蓋率只有74.6%,在經(jīng)過(guò)500 次迭代之后,最終果蠅優(yōu)化算法實(shí)現(xiàn)的覆蓋率可以達(dá)到96.41%,提升了21.81%,充分表現(xiàn)了果蠅優(yōu)化算法的優(yōu)越性,提高了在WSN中的傳感器覆蓋率。
圖6 FOA-WSN覆蓋率初始結(jié)果
圖7 FOA-WSN覆蓋率最終結(jié)果
圖8 算法訓(xùn)練過(guò)程
從算法訓(xùn)練圖中可以看出,F(xiàn)OA算法具有高效性與穩(wěn)定性的特點(diǎn),有效地增大了傳感器采集的覆蓋率,提升了數(shù)據(jù)傳輸?shù)耐暾院蜏?zhǔn)確性。
(二)單片機(jī)程序設(shè)計(jì)。為了實(shí)現(xiàn)自動(dòng)滴灌系統(tǒng)所需的功能,要編寫(xiě)相應(yīng)的單片機(jī)控制程序,程序的編寫(xiě)選擇使用Keil MDK5軟件,程序里用到的功能模塊有用于采集數(shù)據(jù)后傳輸?shù)拇谑瞻l(fā)模塊USART,數(shù)據(jù)轉(zhuǎn)換的A/D 模塊,定時(shí)滴灌的TIM定時(shí)器中斷模塊,還有用來(lái)執(zhí)行指令的GPIO輸入輸出模塊等。
在程序設(shè)計(jì)中,需要先初始化外設(shè)硬件各個(gè)功能模塊,包括配置GPIO口、清理USART串口數(shù)據(jù)、系統(tǒng)時(shí)鐘設(shè)置、顯示屏設(shè)置、LoRa模塊配置等。通過(guò)調(diào)用庫(kù)函數(shù)來(lái)配置各個(gè)寄存器的參數(shù),通過(guò)直接操作寄存器來(lái)實(shí)現(xiàn)相應(yīng)的功能。
首先將數(shù)據(jù)采集需要通過(guò)A/D轉(zhuǎn)換信號(hào),再把采集來(lái)的數(shù)據(jù)通過(guò)聚類(lèi)算法進(jìn)行分析整合,綜合判斷后,再控制定時(shí)器模塊開(kāi)啟或關(guān)閉電磁閥,可設(shè)置滴灌時(shí)長(zhǎng),通過(guò)直接控制GPIO口輸出電平的高低控制電磁閥的通斷,實(shí)現(xiàn)自動(dòng)滴灌作業(yè)。為了防止程序跑死,使用了獨(dú)立看門(mén)狗模塊作為程序監(jiān)控。同時(shí),采集的數(shù)據(jù)將實(shí)時(shí)經(jīng)過(guò)USART串口反饋到上位機(jī)上顯示,觀測(cè)人員可以直觀地了解到當(dāng)前環(huán)境的土壤墑情情況,也可人工控制上位機(jī)直接下達(dá)指令,實(shí)現(xiàn)人工滴灌。
圖9 系統(tǒng)程序流程圖
程序的主要流程如下:首先選擇作業(yè)模式,分為手動(dòng)和自動(dòng)滴灌模式。自動(dòng)滴灌模式下可以實(shí)時(shí)采集數(shù)據(jù),對(duì)數(shù)據(jù)聚類(lèi)分析,擬合成土壤墑情值,結(jié)合灌溉標(biāo)準(zhǔn)實(shí)現(xiàn)電磁閥自動(dòng)開(kāi)關(guān);手動(dòng)模式下,可以手動(dòng)選擇打開(kāi)或關(guān)閉電磁閥。
為了方便作業(yè)人員觀測(cè),本文基于VisualTFT 設(shè)計(jì)了一種操作簡(jiǎn)單、控制方便、監(jiān)控直觀的檢測(cè)系統(tǒng)。在該操作系統(tǒng)中可以直觀監(jiān)控檢測(cè)區(qū)域內(nèi)的環(huán)境數(shù)據(jù),包括土壤溫濕度值、大氣溫濕度值和光照強(qiáng)度值,這些都是影響土壤墑情的重要因素。在設(shè)計(jì)的基礎(chǔ)界面內(nèi)可以顯示這些影響因素的數(shù)值,還有當(dāng)前電磁閥的開(kāi)啟狀態(tài)、滴灌持續(xù)時(shí)間等。該系統(tǒng)也具有兩種操作設(shè)置,在屏上手動(dòng)切換滴灌模式,并可設(shè)置滴灌時(shí)間。
基于LoRa無(wú)線通訊傳輸?shù)耐ㄓ嵞J娇梢允股衔粰C(jī)和單片機(jī)超遠(yuǎn)距離傳輸數(shù)據(jù),且能量的損耗率低,可以有效減少布線數(shù)量和電能消耗,提高滴灌系統(tǒng)的整體效率與系統(tǒng)穩(wěn)定性,節(jié)約了很多人力和時(shí)間。
果蠅優(yōu)化算法有效地提高了在現(xiàn)場(chǎng)監(jiān)控區(qū)域內(nèi)傳感器的覆蓋率,使傳感器的設(shè)置數(shù)量可以最大限度降低,有效節(jié)約設(shè)置的成本。且覆蓋率的增加可以實(shí)現(xiàn)監(jiān)控區(qū)域的全覆蓋,不漏過(guò)任何一個(gè)需要監(jiān)測(cè)的位置,保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和完整性。
上位機(jī)選擇觸控屏顯示,可以更方便的讓工作人員檢測(cè)到農(nóng)田檢測(cè)區(qū)域內(nèi)的狀況,直觀地反饋各種數(shù)據(jù),并能及時(shí)讓監(jiān)測(cè)者了解到農(nóng)作物此時(shí)的缺水狀態(tài);同時(shí)還可以設(shè)置滴灌模式,自動(dòng)滴灌設(shè)置可以隨時(shí)監(jiān)控農(nóng)作物是否需要滴灌,節(jié)省人力;手動(dòng)滴灌設(shè)置則可以人為選擇是否進(jìn)行滴灌。并可得知電磁閥的開(kāi)啟狀態(tài)和滴灌時(shí)間。
綜上所述,本文設(shè)計(jì)的基于LoRa 無(wú)線傳輸?shù)淖詣?dòng)滴灌系統(tǒng)可以很好地實(shí)現(xiàn)對(duì)農(nóng)作滴灌的精準(zhǔn)控制,有效減少人力物力,提高農(nóng)作物產(chǎn)量,符合智慧農(nóng)業(yè)、精準(zhǔn)農(nóng)業(yè)的需求。