張明岳,高師杰
(西安工程大學電子信息學院,西安 710600)
水資源是農業的命脈,我國作為農業大國,發展節水灌溉技術對于節約水資源和發展農業技術的重要性非比尋常,對我國經濟建設以及科學技術發展也都具有重要的戰略意義。《“十三五”農業科技發展規劃》明確提出了“要充分發揮科技對加快農業現代化建設、促進農村經濟社會發展的重要支撐引領作用”。
近年來,隨著信息技術的飛速進步,以Zigbee、GPRS和物聯網等新型通訊技術現實的智能灌溉系統應運而生,其中物聯網技術的應用最多。物聯網與灌溉系統的結合,不但實現了遠程控制智能灌溉,也有效提高了灌溉效率,節約了水資源。其中,師志剛等人[1]以物聯網為支撐搭建的智能灌溉系統,基本實現了智慧型農業,在實時灌溉及經濟效益方面得到了改善,但在精準灌溉方面還不夠完善。王宗省等人[2]將物聯網與農業灌溉相結合,實現了自動化灌溉,但在精準灌溉方面沒有具體闡述。
鑒于現有的研究成果,在此,基于物聯網技術,將以STM32為主控芯片的灌溉下位機系統與電腦客戶端或微信端通過服務器連接,同時運用模糊控制算法,以實現精準灌溉(包括電腦/微信端智能監測、指令灌溉以及下位機智能決策等)。
按照系統總體任務需求進行設計。系統整體結構圖如圖1[3]。

圖1 系統整體結構框圖
由圖可見,系統主要由三個部分構成:
感知層:以STM32ARM微控板為核心,與DHT11空氣溫濕度傳感器、TH-FDR2000土壤水分傳感器以及光照傳感器等設備建立連接,用來采集作物所處環境參量數據。利用無線傳感器網絡技術建立一個自治、協同工作網絡,并將外接設備與互聯網中的其他設備進行信息交互與資源共享。
網絡層:以阿里云服務器和MYSQL數據庫作為智能網絡平臺,將Wi-Fi模塊傳輸得到的數據用PHP語言存入數據庫,供微信進行數據調用。
應用層:用戶可通過電腦端或微信公眾平臺[4]發送數據請求指令以及灌溉指令等,再由感知層根據指令要求發送當前狀態下采集的環境參量數據或驅動繼電器動作,從而使電磁閥的閥門處于不同的開度,滿足不同狀態下作物生長所需的水量。
設計選用STM32F103RCT6作為微控制器芯片,它是一種32位Cortex-M3CPU,因其價格實惠、體積小巧、內部資源豐富等優點,被廣泛應用于各類控制設備和儀器儀表中。該芯片用于控制智能傳感器組群采集環境信息數據,并將采集到的數據進行打包發送,以供查看和后續控制策略的實施。同時它也是電磁閥開關的控制單元。STM32F103芯片基本參數[5]由表1詳細給出。

表1 STM32F103RCT6基本參數
系統中選用的土壤墑情傳感器(TH-FDR2000)是一款利用高頻電子技術制造的具有高精度、高靈敏度的土壤水分測量傳感器。該傳感器通過測量田間土壤的介電常數來探知土壤的水分含量,其電路連接如圖2所示。

圖2 土壤水分傳感器電路連接示意圖
空氣溫濕度傳感器(DHT11)是一款具有校準數字信號輸出功能的復合傳感器。該傳感器通過其內部感濕、測溫元件在特定環境下計算校準系數并保存于內存中,當傳感器檢測信號時再對校準系數進行調用。此外,傳感器接口采用單線制串行通信,在集成系統中使用方便且快捷。DHT11與MCU的具體連接如圖3所示[6]。

圖3 DHT11傳感模塊與MCU連接
在此采用繼電器來驅動電磁閥。當作物所處環境參量達到灌溉要求時,啟動繼電器,在線圈兩端加上電壓,利用電磁效應,使銜鐵與靜觸點(常開觸點)吸合,從而實現電磁閥閥門動作,達到不同的灌溉狀態。如圖4為電磁閥驅動電路圖。

圖4 電磁閥驅動電路
按設計實際搭建的系統整體硬件實物圖如圖5所示。

圖5 整體硬件實物圖
空氣溫度、空氣濕度和土壤濕度作為作物生長的三個主要影響因子,具有較強的耦合關系,而光照強度與CO2濃度耦合度較低,易于獨立控制[7],因此灌溉控制器采用模糊控制算法,并以空氣溫濕度與土壤濕度作為輸入量。
先將輸入量模糊化,模程為分級。若X∈[a,b],將模糊化用瑪達尼(Mamdani)法進行極大極小推理:
若輸入量X的變化區間映射到[-6,6],并使之離散化,構成論域[-6,6]內的13個整數元素的A,即A={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},則有:

式中y為區間內離散變量,若y非整數,則將其歸為最接近的整數值,再將區間[-6,6]分為若干檔,每一檔對應一個語言值和相應的一個模糊集合。每一模糊集合對應一個隸屬度函數,一般采用高斯函數。
設作物周圍環境中實際溫度為Ti,目標設定溫度值為Tr,實際濕度為Hi,目標設定濕度值為Hr,土壤實際濕度為Wi,目標濕度為Wr,進而設空氣溫度誤差T=Ti-Tr,空氣濕度誤差H=Hi-Hr,土壤濕度誤差W=Wi-Wr。其中,空氣溫度誤差T和空氣濕度誤差H都用5個模糊狀態來表述,即:NB(負大)、NS(負小)、ZO(零)、PS(正小)、PB(正大);土壤濕度誤差W用6個模糊狀態描述,即:NB(負大)、NS(負小)、NZ(負零)、PZ(正零)、PS(正小)、PB(正大)。
輸出變量為閥門開啟度,用4個模糊狀態來表述:NZ(關)、PZ(半關)、PS(中等)、PB(全開)。其每一個模糊集合隸屬度函數均為三角函數。控制器為三輸入一輸出,按以如下規則為例的形式創建規則庫:
If(W is PB)and(H is NB)and(T is NB)then(U is NZ)
這句規則的意思是:如果土壤濕度偏差為正大與空氣濕度偏差為負大與空氣溫度偏差為負大,則電磁閥關。諸如此類,一共150條模糊控制規則。實際創建規則的界面如圖6所示。

圖6 規則庫的創建
最后采用最大隸屬度法選取隸屬度最大的元素作為輸出量,完成解模糊。
服務器和數據庫通過HTTP協議傳輸傳感器組群采集得到的數據,采用PHP腳本語言編寫與MYSQL進行數據庫連接。由客戶端發送請求指令,建立TCP連接,服務器監測到請求作出響應。
在PHP中,通過mysql_connect()函數創建數據庫連接。語法為:

其中,servername為要連接的服務器,username為登錄所使用的用戶名,password為登錄所用的密碼。系統使用tj.php這個文件來與Navicat for MySQL數據庫進行連接并存儲溫濕度數據。PHP將GET請求封裝在$_GET數組中。
實現數據傳輸與存儲的相關PHP腳本語言如圖7所示。監控整體效果如圖8。

圖7 用PHP語言實現數據傳輸與存儲

圖8 監控整體效果
輸入變量為空氣濕度偏差H、空氣溫度偏差T、土壤濕度偏差W,其論域均為[-6,6],輸出變量為閥門開啟度U,對應論域為[0,3]。在此以MATLAB模糊工具包作為研究手段,對其規則進行推理。實驗過程如圖9所示。

圖9 Simulink仿真過程界面
利用模糊規則所得出的仿真結果如圖10所示。其中,當W=-6,H=-2,T=0,U=2.27,表示土壤濕度偏差為NB,空氣濕度偏差為ZO,此時閥門應盡量全開[8]。又如當W=0,H=1.6,T=6,U=1,表示土壤濕度偏差為PZ,空氣濕度偏差為PS,空氣溫度偏差為PB,此時閥門應處于半開狀態。在實際控制時控制量“2.27級”和“1級”要轉換為精確的物理量,通過該值控制閥門的輸出電壓,從而控制閥門的開啟度[9]。

圖10 模糊控制規則瀏覽器
控制器執行結果為電磁閥的4個狀態,關、半開、中等、全開,本系統以水泵的抽水時間表示輸出量。經多次測試,得出空氣溫度x1、空氣濕度x2、土壤濕度x3這三個參數與水泵抽水時間y的關系,部分詳細測試數據如表2所示。

表2 三個參量與水泵抽水時間關系(前10組)
由表2中第一組數據可知當前環境下水泵抽水,對應電磁閥為全開狀態;由第二組數據可知當前環境下水泵不抽水,電磁閥關閉;由第四組數據可知當前環境下水泵抽水,對應電磁閥為半開狀態。其他情況可按同理推知[10]。
將物聯網與客戶應用端相結合,設計了一款智能灌溉控制系統。系統安裝、操作簡便,成本低廉,經多次試驗,獲得了穩定、可靠的運行效果,能夠完成作物所處環境參量的采集,并有效地進行實時遠程監測以及自動調控灌溉時間及灌溉量,大大節省了勞力以及水資源。系統達到了精確灌溉的目的,其設計思路也可為現代化農業溫室大棚的發展提供有價值的參考。