周磊 李玉麗
吉林建筑大學,吉林長春 130118
雖然我國的水資源總量在世界排行榜中處于領先位置,但是我國的人均水資源占有量在世界范圍內卻處于末流,是人均水資源最貧乏的國家之一。目前,我國在公園植被養護方面存在許多問題,其中最為嚴重的就是灌溉問題[1]。現階段,大多采用的是人工澆灌的方式,這種方式主要就是大水漫灌(即在取水口處連接管道進行澆灌)[2],不僅工作量大,澆灌效率低下,而且十分浪費水資源。國外在園林節水灌溉方面的研究比我國早,一些國家和地區已從半自動灌溉發展為全自動灌溉,對灌區用水進行監測預報,實行動態管理。例如,美國加州現已實現以植物需水量為核心的園林用水設計評估方法和管理措施[3]。
本文以云平臺、GD32F103CBT6 為核心,云平臺是指基于硬件的服務,提供計算、網絡和存儲能力。這種平臺允許開發者們將寫好的程序放在“云”里運行,或是使用“云”里提供的服務,或二者皆可;GD32F103CBT6 是GD32F1 系列的芯片,是全新的通用型32 位高性能、低功耗微控制器系列產品,采用ARM?Cortex?-M3 內核,適用于廣泛的應用場景。
利用ZigBee 技術、NB-IoT模塊、光照傳感器、空氣溫濕度傳感器、土壤溫濕度傳感器和土壤肥力氮磷鉀指數傳感器設計了一種節水智能灌溉系統,云平臺實時對各個傳感器采集的數據進行分析,自動開啟相關灌溉設備,對土壤中的水分和營養進行智能調節。
經過分析研究,將本系統分為采集、控制、執行3 部分,如圖1 所示。

采集部分由傳感器組成。各個傳感器被設定了間隔一段時間進行數據采集,并將其通過ZigBee 網絡發送給GD32單片機,再將其通過NB-IoT 模塊上傳至云平臺[4]。ZigBee 技術作為短距離無線傳輸技術,具有低功耗、低成本、自組網和節點布置靈活的優點。但是ZigBee技術只能組建局域網,無法直接與互聯網連接,需要一個網關來當作橋梁,NB-IoT 就是一個很好的橋梁。本設計中的NB-IoT 部分采用BC26 模塊,主控芯片為移遠公司的BC26 芯片,通過它可以入網[5]。
控制部分主要由云平臺、GD32 單片機組成。GD32 單片機通過NB-IoT 與云平臺建立數據通信,組建數據庫,將通過ZigBee 網絡收集到的信息傳到組建的數據庫中,然后云平臺對信息進行分析處理,運算得到相應的控制指令,將其發送至執行部分,執行相應的操作。
執行部分由繼電器組成。繼電器用來控制水泵和物料池閥門,通過控制水泵和閥門的工作時間來控制灌溉水量和施肥量。采集部分每小時上傳一次數據,控制部分以云平臺為核心,對數據進行分析,通過LSTM 算法對植物的需水量進行預測,然后在一天中某個合適的時刻發出灌溉指令,由執行部分將此指令實現。
光照傳感器、空氣溫濕度傳感器、土壤溫濕度傳感器、土壤肥力氮磷鉀指數傳感器和GD32F103CBT6單片機構成硬件平臺;GD32 單片機通過NB-IoT 模塊實現與云平臺的連接;云平臺首先將這些數據存儲到數據庫中,作為以后可供參考的原始資料;然后將這些數據實時顯示到平臺上;最后將這天的數據輸入到云服務器已編寫好的算法腳本中,生成植物需水量。
在植物生長的過程中,溫度與濕度是相輔相成的。空氣溫濕度影響植物的蒸騰作用,進而影響植物對水的需求量。DHT11 數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器[6],通過它可以很直觀地了解當前環境中空氣的溫濕度。
光照強度和時長對植物的蒸騰作用也有相當大的影響,并且不同植物對光照的需求也不一樣。大部分植物都比較適應在陽光充足的地方生長,但有的植物適合在較弱的光照條件下生長。通過對光照數據的采集與植物生長情況的記錄,不僅可以估算其需水量,還可以為某植物尋找在某地區最適合的生長位置。
BH1750FVI 是一款用于I2C 總線接口的數字環境光傳感器IC[7]。該集成電路最適合獲取環境光數據。該傳感器模塊引出了時鐘線和數據線,CC2530 通過I2C 協議可以與BH1750 模塊通信,可以選擇BH1750的工作方式,也可以將BH1750 寄存器的光照度數據提取出來。
YL-69 是一種土壤含水量傳感器,由不銹鋼探針和防水探頭構成,可用于長期的植被土壤濕度監測[8]。該傳感器模塊共有4 個引腳,分別為VCC、GND、A0、D0 引腳。D0 引腳為數字量輸出,其輸出高低電平的規則為:當植被土壤中的濕度高于設定的值時輸出0,低于設定值時輸出1,多用于濕度閾值控制;A0 引腳為電壓模擬量輸出引腳,可獲取精確、實時的植被土壤環境的濕度值,與單片機的ADC 引腳相連,將模擬信號轉換為數字信號,傳輸給單片機。
植物生長好壞不僅與自身環境有關,還與養分有關。植物生長所需養分很多,本設計中只考慮氮磷鉀3 種元素植物是否缺失嚴重。氮磷鉀分別對應植物生長的前、中、后3 個階段,即生長期、開花期、結果期。可以通過氮磷鉀傳感器來測得相應數據,使用時需避開土壤中堅硬物體,并將鋼針全部插入土壤中。
本設計的執行部分主要是電磁閥的通斷,當氮磷鉀物料池的電磁閥處在開啟狀態時,肥料在重力的引導下會自動傾入混合池中,因此,氮磷鉀水溶性肥料的物料池必須設計在混合池的正上方,以便于重力作用[9];同時,進水口設在混合池側面并設置防腐蝕電磁閥開關,出水口設置在與進水口相對的側面,距底部要有一定高度,防止肥料堵塞現象的發生。
由于單片機不能直接控制電磁閥,因此采用繼電器作為中間裝置,通過這個中間裝置進而控制電磁閥的通斷,繼電器板計劃連接6 個繼電器,來控制灌溉與施肥。
傳感器板連接4 個傳感器,系統首先對板子進行上電,繼而初始化;通過I2C 協議采集來自光照模塊的數據;通過觸發規則采樣采集土壤的濕度數據;通過單總線協議進行DHT11 溫度模塊的數據采集;通過485 轉TTL 接口提取氮磷鉀傳感器采集的數值;將所有數據收集后放到定義好的數組中,一方面通過OLED 屏幕顯示采集到的數據,另一方面通過ZigBee網絡將數據上傳至協調器;然后延時,最后進入循環監測傳感器上傳數據。傳感器板主程序設計流程圖如圖 2 所示。

繼電器板連接6 個繼電器,用來控制灌溉與施肥,控制電磁閥,進而實施氮磷鉀配比和混合工作。首先上電,進行相關模塊初始化,打開串口并接收ZigBee協調器發來的控制數據,判斷數據中時間位是否全為0,若不全為0,則關閉混合池閥門;通過定時器中斷來使時間數值自減,同時控制相應氮磷鉀繼電器打開并開始進行物料配比,期間循環判斷時間數值是否為0,若為0,則說明配比工作完成;打開混合池進水口,電磁閥將水引入,再等待一段時間使配料與水混合均勻,然后打開混合池閥門,打開水泵將水肥噴出,等待一段時間后關閉水泵,然后繼續接收ZigBee 終端數據。繼電器板主程序設計流程圖如圖 3 所示。

本系統的網關主控為GD32,GD32 將ZigBee 協調器收到的數據包通過串口發送給NB-IoT 模塊,實現無線通信。首先上電,進行單片機GD32 系統的初始化、ZigBee 初始化及NB-IoT 的初始化;隨后進入無限循環,當ZigBee 網絡中有信息發送過來時,將該信息通過NB-IoT 發送至云端,云端會用編寫好的LSTM算法腳本對環境參數進行分析,得出往后幾天的預測灌溉量,起到節水的作用;再通過NB-IoT 模塊將控制信息發送給ZigBee 終端節點,終端對信息進行拆解并執行相應的操作。主控板程序流程圖如圖 4 所示。

在本設計中,智慧化與節水主要靠算法來實現。智慧化是指智能化、自動化,管理員只需要啟動系統,啟動后身份轉變為監督者,除系統出錯或氣象極其不穩定時進行干預之外不做任何動作。目前,很多地方采用大水漫灌方式,這樣雖然可以滿足植物生長所需的水量,但是還有相當大的一部分水滲入土壤中,這部分水大多并不會隨時間推移被植物吸收,而是蒸發了。所以,本設計節水的含義是盡可能減少這部分無用的消耗。為了達到節水與智慧化的效果,本設計計劃采用長短期記憶(Long Short Term Memory,LSTM)算法。
LSTM 是一種特殊的遞歸神經網絡。其前身為RNN 結構,容易出現梯度消失/爆炸問題,LSTM 可以解決這2 個問題,并且可以有效地傳遞和表達長時間序列中的信息,且不會導致長時間前的有用信息被遺忘。
經查詢文獻可知,平均氣溫、空氣相對濕度、土壤濕度和日照時數對植物需水量的影響較大,所以LSTM 模型選其作為特征向量輸入,需水量作為目標向量輸出。根據已有數據預測未來的一段時間植物的需水量,這樣不僅可以節水,還可以在預測的這段時間保證植物的良好生長,進而保持城市的美觀,提升居民的幸福感。
本設計運用華為云的一站式開發平臺ModelArts去實現算法的訓練與部署。首先準備一個降雨量的數據集,將其上傳到OBS 桶中;然后創建一個訓練作業,在預置算法中選擇“時序預測-time_series_v2”算法,單擊創建訓練作業;當訓練作業的狀態變更為“已完成”時,表示已運行結束,可以在配置的“訓練輸出位置”對應的OBS 目錄下獲得訓練生成的模型和預測結果;然后創建一個來自訓練作業的AI 應用,選擇在線部署;創建完成后,在在線部署中選擇在線服務,配置計算機節點及規格后部署上線。
本設計已在室內通過盆栽完成傳感器部分的實驗,結果如圖 5 所示。

OLED 屏已顯示當前植物環境中空氣的溫濕度、土壤中的濕度以及土壤中的氮磷鉀含量。
如圖 6 所示,左邊為終端,右邊為協調器。協調器3 個白色LED 燈全亮,表示ZigBee 組網成功,成功后,終端會向協調器發送DHT11 的溫濕度數據(只為實驗數據發送,而非只能發送2 個數據)。協調器底板與PC 端連接,通過串口調試助手即可觀察。

實驗結果如圖 7 所示,通過串口調試助手可以觀察到協調器已成功接收到數據,證明完全可以通過ZigBee 網絡實現信息傳遞。

由于成本原因,擬通過在云服務器中創建一個TCP 端口來進行NB-IoT 上云實驗。首先,申請一個云服務器,在其中安裝Socket 調試工具,建立一個1001 端口的TCP 服務器,并在相關云平臺中的安全組設置中放開限制;然后,將NB-IoT 模塊通過USB 轉TTL 模塊與PC 端連接,在串口調試助手中,先用“AT+CGPADDR?”指令對模塊進行入網測試;回復IP 地址后,用“AT+QIOPEN=1,0,"T CP","36.139.236.125",1001,0,1”指令讓模塊與云服務器中所建立的TCP 服務器連接,顯示連接成功,并且串口調試助手所發送的信息在云服務器中也可以接收到。如圖 8 所示。

通過此實驗驗證,本設計可以實現云平臺的數據傳輸。
通過傳感器采集數據實驗、ZigBee 網絡通信實驗以及NB-IoT 通信實驗證明,本設計可以完成區域植物環境的參數化并上傳至云,也可以通過NB-IoT 模塊將數據傳回區域主控,進而通過ZigBee 網絡將信息傳給繼電器,最終完成整個灌溉系統的運作。目前,GD32F103CBT6 芯片、ZigBee 模塊、NB-IoT 模塊以及其他模塊都是十分成熟的產品,因而整個設計是可行有效的。
本設計實現了將植被環境參數化、可視化,如空氣溫濕度、土壤濕度、光照強度、土壤氮磷鉀含量等。主控板可實時接受來自傳感器板采集的各項數據并上傳至云平臺,云平臺會對數據進行分析處理,得出灌溉決策,判斷植物是否缺水或氮磷鉀等養分,然后下達控制指令給主控板,主控板將信息傳遞給繼電器板,使其做出相應操作,控制對應電磁閥開關,進而進行養分的補充與節水灌溉。同時,通過手機和電腦端都可以實時查看植物各項生長指標,也可以下達命令進行噴淋和施肥等操作。最終目的是達到用滿足植物生長需求的水資源保證植物健康生長,在很大程度上減少了無效水資源的使用,能有效改善人工灌溉方式所帶來的應用缺點并且使灌溉智能化。