周磊 李玉麗
吉林建筑大學(xué),吉林長(zhǎng)春 130118
雖然我國(guó)的水資源總量在世界排行榜中處于領(lǐng)先位置,但是我國(guó)的人均水資源占有量在世界范圍內(nèi)卻處于末流,是人均水資源最貧乏的國(guó)家之一。目前,我國(guó)在公園植被養(yǎng)護(hù)方面存在許多問(wèn)題,其中最為嚴(yán)重的就是灌溉問(wèn)題[1]?,F(xiàn)階段,大多采用的是人工澆灌的方式,這種方式主要就是大水漫灌(即在取水口處連接管道進(jìn)行澆灌)[2],不僅工作量大,澆灌效率低下,而且十分浪費(fèi)水資源。國(guó)外在園林節(jié)水灌溉方面的研究比我國(guó)早,一些國(guó)家和地區(qū)已從半自動(dòng)灌溉發(fā)展為全自動(dòng)灌溉,對(duì)灌區(qū)用水進(jìn)行監(jiān)測(cè)預(yù)報(bào),實(shí)行動(dòng)態(tài)管理。例如,美國(guó)加州現(xiàn)已實(shí)現(xiàn)以植物需水量為核心的園林用水設(shè)計(jì)評(píng)估方法和管理措施[3]。
本文以云平臺(tái)、GD32F103CBT6 為核心,云平臺(tái)是指基于硬件的服務(wù),提供計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)能力。這種平臺(tái)允許開(kāi)發(fā)者們將寫好的程序放在“云”里運(yùn)行,或是使用“云”里提供的服務(wù),或二者皆可;GD32F103CBT6 是GD32F1 系列的芯片,是全新的通用型32 位高性能、低功耗微控制器系列產(chǎn)品,采用ARM?Cortex?-M3 內(nèi)核,適用于廣泛的應(yīng)用場(chǎng)景。
利用ZigBee 技術(shù)、NB-IoT模塊、光照傳感器、空氣溫濕度傳感器、土壤溫濕度傳感器和土壤肥力氮磷鉀指數(shù)傳感器設(shè)計(jì)了一種節(jié)水智能灌溉系統(tǒng),云平臺(tái)實(shí)時(shí)對(duì)各個(gè)傳感器采集的數(shù)據(jù)進(jìn)行分析,自動(dòng)開(kāi)啟相關(guān)灌溉設(shè)備,對(duì)土壤中的水分和營(yíng)養(yǎng)進(jìn)行智能調(diào)節(jié)。
經(jīng)過(guò)分析研究,將本系統(tǒng)分為采集、控制、執(zhí)行3 部分,如圖1 所示。
采集部分由傳感器組成。各個(gè)傳感器被設(shè)定了間隔一段時(shí)間進(jìn)行數(shù)據(jù)采集,并將其通過(guò)ZigBee 網(wǎng)絡(luò)發(fā)送給GD32單片機(jī),再將其通過(guò)NB-IoT 模塊上傳至云平臺(tái)[4]。ZigBee 技術(shù)作為短距離無(wú)線傳輸技術(shù),具有低功耗、低成本、自組網(wǎng)和節(jié)點(diǎn)布置靈活的優(yōu)點(diǎn)。但是ZigBee技術(shù)只能組建局域網(wǎng),無(wú)法直接與互聯(lián)網(wǎng)連接,需要一個(gè)網(wǎng)關(guān)來(lái)當(dāng)作橋梁,NB-IoT 就是一個(gè)很好的橋梁。本設(shè)計(jì)中的NB-IoT 部分采用BC26 模塊,主控芯片為移遠(yuǎn)公司的BC26 芯片,通過(guò)它可以入網(wǎng)[5]。
控制部分主要由云平臺(tái)、GD32 單片機(jī)組成。GD32 單片機(jī)通過(guò)NB-IoT 與云平臺(tái)建立數(shù)據(jù)通信,組建數(shù)據(jù)庫(kù),將通過(guò)ZigBee 網(wǎng)絡(luò)收集到的信息傳到組建的數(shù)據(jù)庫(kù)中,然后云平臺(tái)對(duì)信息進(jìn)行分析處理,運(yùn)算得到相應(yīng)的控制指令,將其發(fā)送至執(zhí)行部分,執(zhí)行相應(yīng)的操作。
執(zhí)行部分由繼電器組成。繼電器用來(lái)控制水泵和物料池閥門,通過(guò)控制水泵和閥門的工作時(shí)間來(lái)控制灌溉水量和施肥量。采集部分每小時(shí)上傳一次數(shù)據(jù),控制部分以云平臺(tái)為核心,對(duì)數(shù)據(jù)進(jìn)行分析,通過(guò)LSTM 算法對(duì)植物的需水量進(jìn)行預(yù)測(cè),然后在一天中某個(gè)合適的時(shí)刻發(fā)出灌溉指令,由執(zhí)行部分將此指令實(shí)現(xiàn)。
光照傳感器、空氣溫濕度傳感器、土壤溫濕度傳感器、土壤肥力氮磷鉀指數(shù)傳感器和GD32F103CBT6單片機(jī)構(gòu)成硬件平臺(tái);GD32 單片機(jī)通過(guò)NB-IoT 模塊實(shí)現(xiàn)與云平臺(tái)的連接;云平臺(tái)首先將這些數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,作為以后可供參考的原始資料;然后將這些數(shù)據(jù)實(shí)時(shí)顯示到平臺(tái)上;最后將這天的數(shù)據(jù)輸入到云服務(wù)器已編寫好的算法腳本中,生成植物需水量。
在植物生長(zhǎng)的過(guò)程中,溫度與濕度是相輔相成的??諝鉁貪穸扔绊懼参锏恼趄v作用,進(jìn)而影響植物對(duì)水的需求量。DHT11 數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器[6],通過(guò)它可以很直觀地了解當(dāng)前環(huán)境中空氣的溫濕度。
光照強(qiáng)度和時(shí)長(zhǎng)對(duì)植物的蒸騰作用也有相當(dāng)大的影響,并且不同植物對(duì)光照的需求也不一樣。大部分植物都比較適應(yīng)在陽(yáng)光充足的地方生長(zhǎng),但有的植物適合在較弱的光照條件下生長(zhǎng)。通過(guò)對(duì)光照數(shù)據(jù)的采集與植物生長(zhǎng)情況的記錄,不僅可以估算其需水量,還可以為某植物尋找在某地區(qū)最適合的生長(zhǎng)位置。
BH1750FVI 是一款用于I2C 總線接口的數(shù)字環(huán)境光傳感器IC[7]。該集成電路最適合獲取環(huán)境光數(shù)據(jù)。該傳感器模塊引出了時(shí)鐘線和數(shù)據(jù)線,CC2530 通過(guò)I2C 協(xié)議可以與BH1750 模塊通信,可以選擇BH1750的工作方式,也可以將BH1750 寄存器的光照度數(shù)據(jù)提取出來(lái)。
YL-69 是一種土壤含水量傳感器,由不銹鋼探針和防水探頭構(gòu)成,可用于長(zhǎng)期的植被土壤濕度監(jiān)測(cè)[8]。該傳感器模塊共有4 個(gè)引腳,分別為VCC、GND、A0、D0 引腳。D0 引腳為數(shù)字量輸出,其輸出高低電平的規(guī)則為:當(dāng)植被土壤中的濕度高于設(shè)定的值時(shí)輸出0,低于設(shè)定值時(shí)輸出1,多用于濕度閾值控制;A0 引腳為電壓模擬量輸出引腳,可獲取精確、實(shí)時(shí)的植被土壤環(huán)境的濕度值,與單片機(jī)的ADC 引腳相連,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),傳輸給單片機(jī)。
植物生長(zhǎng)好壞不僅與自身環(huán)境有關(guān),還與養(yǎng)分有關(guān)。植物生長(zhǎng)所需養(yǎng)分很多,本設(shè)計(jì)中只考慮氮磷鉀3 種元素植物是否缺失嚴(yán)重。氮磷鉀分別對(duì)應(yīng)植物生長(zhǎng)的前、中、后3 個(gè)階段,即生長(zhǎng)期、開(kāi)花期、結(jié)果期??梢酝ㄟ^(guò)氮磷鉀傳感器來(lái)測(cè)得相應(yīng)數(shù)據(jù),使用時(shí)需避開(kāi)土壤中堅(jiān)硬物體,并將鋼針全部插入土壤中。
本設(shè)計(jì)的執(zhí)行部分主要是電磁閥的通斷,當(dāng)?shù)租浳锪铣氐碾姶砰y處在開(kāi)啟狀態(tài)時(shí),肥料在重力的引導(dǎo)下會(huì)自動(dòng)傾入混合池中,因此,氮磷鉀水溶性肥料的物料池必須設(shè)計(jì)在混合池的正上方,以便于重力作用[9];同時(shí),進(jìn)水口設(shè)在混合池側(cè)面并設(shè)置防腐蝕電磁閥開(kāi)關(guān),出水口設(shè)置在與進(jìn)水口相對(duì)的側(cè)面,距底部要有一定高度,防止肥料堵塞現(xiàn)象的發(fā)生。
由于單片機(jī)不能直接控制電磁閥,因此采用繼電器作為中間裝置,通過(guò)這個(gè)中間裝置進(jìn)而控制電磁閥的通斷,繼電器板計(jì)劃連接6 個(gè)繼電器,來(lái)控制灌溉與施肥。
傳感器板連接4 個(gè)傳感器,系統(tǒng)首先對(duì)板子進(jìn)行上電,繼而初始化;通過(guò)I2C 協(xié)議采集來(lái)自光照模塊的數(shù)據(jù);通過(guò)觸發(fā)規(guī)則采樣采集土壤的濕度數(shù)據(jù);通過(guò)單總線協(xié)議進(jìn)行DHT11 溫度模塊的數(shù)據(jù)采集;通過(guò)485 轉(zhuǎn)TTL 接口提取氮磷鉀傳感器采集的數(shù)值;將所有數(shù)據(jù)收集后放到定義好的數(shù)組中,一方面通過(guò)OLED 屏幕顯示采集到的數(shù)據(jù),另一方面通過(guò)ZigBee網(wǎng)絡(luò)將數(shù)據(jù)上傳至協(xié)調(diào)器;然后延時(shí),最后進(jìn)入循環(huán)監(jiān)測(cè)傳感器上傳數(shù)據(jù)。傳感器板主程序設(shè)計(jì)流程圖如圖 2 所示。
繼電器板連接6 個(gè)繼電器,用來(lái)控制灌溉與施肥,控制電磁閥,進(jìn)而實(shí)施氮磷鉀配比和混合工作。首先上電,進(jìn)行相關(guān)模塊初始化,打開(kāi)串口并接收Z(yǔ)igBee協(xié)調(diào)器發(fā)來(lái)的控制數(shù)據(jù),判斷數(shù)據(jù)中時(shí)間位是否全為0,若不全為0,則關(guān)閉混合池閥門;通過(guò)定時(shí)器中斷來(lái)使時(shí)間數(shù)值自減,同時(shí)控制相應(yīng)氮磷鉀繼電器打開(kāi)并開(kāi)始進(jìn)行物料配比,期間循環(huán)判斷時(shí)間數(shù)值是否為0,若為0,則說(shuō)明配比工作完成;打開(kāi)混合池進(jìn)水口,電磁閥將水引入,再等待一段時(shí)間使配料與水混合均勻,然后打開(kāi)混合池閥門,打開(kāi)水泵將水肥噴出,等待一段時(shí)間后關(guān)閉水泵,然后繼續(xù)接收Z(yǔ)igBee 終端數(shù)據(jù)。繼電器板主程序設(shè)計(jì)流程圖如圖 3 所示。
本系統(tǒng)的網(wǎng)關(guān)主控為GD32,GD32 將ZigBee 協(xié)調(diào)器收到的數(shù)據(jù)包通過(guò)串口發(fā)送給NB-IoT 模塊,實(shí)現(xiàn)無(wú)線通信。首先上電,進(jìn)行單片機(jī)GD32 系統(tǒng)的初始化、ZigBee 初始化及NB-IoT 的初始化;隨后進(jìn)入無(wú)限循環(huán),當(dāng)ZigBee 網(wǎng)絡(luò)中有信息發(fā)送過(guò)來(lái)時(shí),將該信息通過(guò)NB-IoT 發(fā)送至云端,云端會(huì)用編寫好的LSTM算法腳本對(duì)環(huán)境參數(shù)進(jìn)行分析,得出往后幾天的預(yù)測(cè)灌溉量,起到節(jié)水的作用;再通過(guò)NB-IoT 模塊將控制信息發(fā)送給ZigBee 終端節(jié)點(diǎn),終端對(duì)信息進(jìn)行拆解并執(zhí)行相應(yīng)的操作。主控板程序流程圖如圖 4 所示。
在本設(shè)計(jì)中,智慧化與節(jié)水主要靠算法來(lái)實(shí)現(xiàn)。智慧化是指智能化、自動(dòng)化,管理員只需要啟動(dòng)系統(tǒng),啟動(dòng)后身份轉(zhuǎn)變?yōu)楸O(jiān)督者,除系統(tǒng)出錯(cuò)或氣象極其不穩(wěn)定時(shí)進(jìn)行干預(yù)之外不做任何動(dòng)作。目前,很多地方采用大水漫灌方式,這樣雖然可以滿足植物生長(zhǎng)所需的水量,但是還有相當(dāng)大的一部分水滲入土壤中,這部分水大多并不會(huì)隨時(shí)間推移被植物吸收,而是蒸發(fā)了。所以,本設(shè)計(jì)節(jié)水的含義是盡可能減少這部分無(wú)用的消耗。為了達(dá)到節(jié)水與智慧化的效果,本設(shè)計(jì)計(jì)劃采用長(zhǎng)短期記憶(Long Short Term Memory,LSTM)算法。
LSTM 是一種特殊的遞歸神經(jīng)網(wǎng)絡(luò)。其前身為RNN 結(jié)構(gòu),容易出現(xiàn)梯度消失/爆炸問(wèn)題,LSTM 可以解決這2 個(gè)問(wèn)題,并且可以有效地傳遞和表達(dá)長(zhǎng)時(shí)間序列中的信息,且不會(huì)導(dǎo)致長(zhǎng)時(shí)間前的有用信息被遺忘。
經(jīng)查詢文獻(xiàn)可知,平均氣溫、空氣相對(duì)濕度、土壤濕度和日照時(shí)數(shù)對(duì)植物需水量的影響較大,所以LSTM 模型選其作為特征向量輸入,需水量作為目標(biāo)向量輸出。根據(jù)已有數(shù)據(jù)預(yù)測(cè)未來(lái)的一段時(shí)間植物的需水量,這樣不僅可以節(jié)水,還可以在預(yù)測(cè)的這段時(shí)間保證植物的良好生長(zhǎng),進(jìn)而保持城市的美觀,提升居民的幸福感。
本設(shè)計(jì)運(yùn)用華為云的一站式開(kāi)發(fā)平臺(tái)ModelArts去實(shí)現(xiàn)算法的訓(xùn)練與部署。首先準(zhǔn)備一個(gè)降雨量的數(shù)據(jù)集,將其上傳到OBS 桶中;然后創(chuàng)建一個(gè)訓(xùn)練作業(yè),在預(yù)置算法中選擇“時(shí)序預(yù)測(cè)-time_series_v2”算法,單擊創(chuàng)建訓(xùn)練作業(yè);當(dāng)訓(xùn)練作業(yè)的狀態(tài)變更為“已完成”時(shí),表示已運(yùn)行結(jié)束,可以在配置的“訓(xùn)練輸出位置”對(duì)應(yīng)的OBS 目錄下獲得訓(xùn)練生成的模型和預(yù)測(cè)結(jié)果;然后創(chuàng)建一個(gè)來(lái)自訓(xùn)練作業(yè)的AI 應(yīng)用,選擇在線部署;創(chuàng)建完成后,在在線部署中選擇在線服務(wù),配置計(jì)算機(jī)節(jié)點(diǎn)及規(guī)格后部署上線。
本設(shè)計(jì)已在室內(nèi)通過(guò)盆栽完成傳感器部分的實(shí)驗(yàn),結(jié)果如圖 5 所示。
OLED 屏已顯示當(dāng)前植物環(huán)境中空氣的溫濕度、土壤中的濕度以及土壤中的氮磷鉀含量。
如圖 6 所示,左邊為終端,右邊為協(xié)調(diào)器。協(xié)調(diào)器3 個(gè)白色LED 燈全亮,表示ZigBee 組網(wǎng)成功,成功后,終端會(huì)向協(xié)調(diào)器發(fā)送DHT11 的溫濕度數(shù)據(jù)(只為實(shí)驗(yàn)數(shù)據(jù)發(fā)送,而非只能發(fā)送2 個(gè)數(shù)據(jù))。協(xié)調(diào)器底板與PC 端連接,通過(guò)串口調(diào)試助手即可觀察。
實(shí)驗(yàn)結(jié)果如圖 7 所示,通過(guò)串口調(diào)試助手可以觀察到協(xié)調(diào)器已成功接收到數(shù)據(jù),證明完全可以通過(guò)ZigBee 網(wǎng)絡(luò)實(shí)現(xiàn)信息傳遞。
由于成本原因,擬通過(guò)在云服務(wù)器中創(chuàng)建一個(gè)TCP 端口來(lái)進(jìn)行NB-IoT 上云實(shí)驗(yàn)。首先,申請(qǐng)一個(gè)云服務(wù)器,在其中安裝Socket 調(diào)試工具,建立一個(gè)1001 端口的TCP 服務(wù)器,并在相關(guān)云平臺(tái)中的安全組設(shè)置中放開(kāi)限制;然后,將NB-IoT 模塊通過(guò)USB 轉(zhuǎn)TTL 模塊與PC 端連接,在串口調(diào)試助手中,先用“AT+CGPADDR?”指令對(duì)模塊進(jìn)行入網(wǎng)測(cè)試;回復(fù)IP 地址后,用“AT+QIOPEN=1,0,"T CP","36.139.236.125",1001,0,1”指令讓模塊與云服務(wù)器中所建立的TCP 服務(wù)器連接,顯示連接成功,并且串口調(diào)試助手所發(fā)送的信息在云服務(wù)器中也可以接收到。如圖 8 所示。
通過(guò)此實(shí)驗(yàn)驗(yàn)證,本設(shè)計(jì)可以實(shí)現(xiàn)云平臺(tái)的數(shù)據(jù)傳輸。
通過(guò)傳感器采集數(shù)據(jù)實(shí)驗(yàn)、ZigBee 網(wǎng)絡(luò)通信實(shí)驗(yàn)以及NB-IoT 通信實(shí)驗(yàn)證明,本設(shè)計(jì)可以完成區(qū)域植物環(huán)境的參數(shù)化并上傳至云,也可以通過(guò)NB-IoT 模塊將數(shù)據(jù)傳回區(qū)域主控,進(jìn)而通過(guò)ZigBee 網(wǎng)絡(luò)將信息傳給繼電器,最終完成整個(gè)灌溉系統(tǒng)的運(yùn)作。目前,GD32F103CBT6 芯片、ZigBee 模塊、NB-IoT 模塊以及其他模塊都是十分成熟的產(chǎn)品,因而整個(gè)設(shè)計(jì)是可行有效的。
本設(shè)計(jì)實(shí)現(xiàn)了將植被環(huán)境參數(shù)化、可視化,如空氣溫濕度、土壤濕度、光照強(qiáng)度、土壤氮磷鉀含量等。主控板可實(shí)時(shí)接受來(lái)自傳感器板采集的各項(xiàng)數(shù)據(jù)并上傳至云平臺(tái),云平臺(tái)會(huì)對(duì)數(shù)據(jù)進(jìn)行分析處理,得出灌溉決策,判斷植物是否缺水或氮磷鉀等養(yǎng)分,然后下達(dá)控制指令給主控板,主控板將信息傳遞給繼電器板,使其做出相應(yīng)操作,控制對(duì)應(yīng)電磁閥開(kāi)關(guān),進(jìn)而進(jìn)行養(yǎng)分的補(bǔ)充與節(jié)水灌溉。同時(shí),通過(guò)手機(jī)和電腦端都可以實(shí)時(shí)查看植物各項(xiàng)生長(zhǎng)指標(biāo),也可以下達(dá)命令進(jìn)行噴淋和施肥等操作。最終目的是達(dá)到用滿足植物生長(zhǎng)需求的水資源保證植物健康生長(zhǎng),在很大程度上減少了無(wú)效水資源的使用,能有效改善人工灌溉方式所帶來(lái)的應(yīng)用缺點(diǎn)并且使灌溉智能化。