趙蘇徽,陳 曉,2
1(南京信息工程大學 電子與信息工程學院,南京 210044)
2(南京信息工程大學 江蘇省大氣環境與裝備技術協同創新中心,南京 210044)
與世界上其它國家相比,我國淡水資源總量處于前列,但是由于人口基數大使得我國人均水資源擁有量處于世界末位[1].許多地區缺乏水資源,當地只能通過大量開采地下水來緩解水資源危機.目前我國地下水使用量已經嚴重超過國際警戒線,地下水超采面積也已從5.6 萬km2擴大到18 萬km2[2].與此同時中國大部分地區仍在使用傳統的漫灌方式,這也是導致水資源危機的重要原因[3].從目前發展的趨勢來看,盡管我國農業高效節水灌溉的總面積不斷增加,但使用噴灌和微灌方式的灌溉面積仍然很小,加之對雨水利用率低,使得我國在對水資源利用的問題上與世界主要國家相比相差甚遠.因此為緩解水資源短缺問題而發展先進的灌溉技術已經迫在眉睫.
國外在智能灌溉方面起步比我國要早,農業生產自動化程度高.早在上世紀80年代,美國的Benami 等人[4]開發了一個節水灌溉系統,其使用土壤濕度傳感器檢測土壤水分含量,將數據傳給控制器,而控制器根據傳感器測得的土壤相對濕度與預設值進行對比決定是否灌溉.Goap 等人[5]基于物聯網技術開發了一套智能灌溉系統,利用ZigBee[6]以及WiFi 技術進行通信組網,并將傳感節點的實時數據發送至遠程服務器進行數據解析與存儲,同時決定是否需要進行灌溉,并在網頁端進行直觀的顯示.我國的灌溉技術雖然起步沒有國外早,但現階段的發展情況已經相差不大.劉書倫等人將物聯網技術與Android 相結合設計實現了利用Android 平臺對農業農田遠程灌溉系統的控制[7].系統利用多種傳感器組成的節點網絡來實現遠程監測的同時控制多個控制器節點.何江[8]將物聯網技術與樹莓派相結合開發了一種智能云灌溉系統,利用了現在流行的Web 技術,如Python,Flask 等,實現從Web 端進行遠程控制以及數據監控,模糊算法把PWM 作為輸出控制泵的轉速.
在核心控制器件選擇時,對比C51、STM32 等系列的單片機[9-11],樹莓派具有功能強大、操作方便的優點,本身既可作為下位機也可以作為上位機,所以本文選擇了目前最新型號的樹莓派4B 作為核心控制器件.軟件設計時考慮到云平臺技術開發成本低、需求擴展靈活、數據訪問的移動性強等優點,完全可以替代傳統的Web,所以并沒有選擇Web 結構,而是在云平臺上開發應用,降低整套系統成本.現在云平臺有很多,本文使用的是中國移動的OneNET 云平臺.系統整體分為硬件和軟件兩大部分,其中硬件系統包括土壤濕度采集電路、空氣溫濕度采集電路和直流蠕動泵控制電路;軟件系統包括土壤濕度采集和上傳程序、空氣溫濕度采集和上傳程序、直流蠕動泵驅動程序、氣象數據獲取程序、數據庫設計和模糊控制器設計程序等.系統整體框圖如圖1所示.

圖1 系統整體框圖
硬件電路連接時將空氣溫濕度傳感器DHT11、土壤濕度傳感器YL-69 和數模轉換器PCF8591 的VCC端都接到樹莓派的2 號腳,GND 端都接到樹莓派的6號腳.DHT11 的DATA 端接到樹莓派的7 號腳,PCF8591的SDA 端和SCL 端分別接到樹莓派的3 號腳和5 號腳.MOS 管驅動的GND 端和PWM 端分別接到樹莓派的2 號腳和40 號腳,具體連接如圖2所示.

圖2 智能灌溉系統整體連接圖
YL-69 土壤濕度傳感器為四線制,其采用的電源為3.3 V-5 V,電壓比較器LM393,D0 引腳通過和設定的閾值相比輸出數字量0 或1,A0 引腳可以輸出模擬值,這個數值更加準確.隨著土壤濕度值變大時,得到的模擬量值也相應的變大.
本文在使用YL-69 土壤濕度傳感器時因為要輸出精確的土壤相對濕度,所以要從A0 引腳輸出模擬量,因此必須要有一個模數轉換器將模擬信號轉換為數字信號傳輸到樹莓派.采用的模數轉換器是PCF8591,將YL-69 的模擬量輸出端A0 連到PCF8591 的模擬信號輸入端AIN0,模數轉換器將土壤濕度轉換成精確的數值,然后通過I2C 總線傳輸到樹莓派進行數據處理.電路連接如圖3所示.

圖3 土壤濕度采集電路連接
DHT11 傳感器出廠時便集成了電阻式的感濕元件和NTC 測量溫度的元件,內部已經包含了8 位的單片機.由于它具有串行單線接口,所以體積小巧,耗電少,并且傳輸的信號最高可達20 米.它擁有優良的品質、超快的反應能力、強大的抗干擾能力和超高的性價比讓很多精準測量甚至可以說是苛刻測量的場所都選擇它.DHT11 溫濕度傳感器共有4 個引腳,在使用時NC腳懸空,VCC 接5V 直流電源,GND 接地,DATA 連接到樹莓派的GPIO.7 腳,電路連接圖如圖4所示.

圖4 空氣溫濕度采集電路連接
本文在實驗時灌溉對象是盆栽草莓,需水量不大,因此灌溉時采用微型蠕動泵即可.其功率較小,能夠使用晶體管驅動,更加適合間歇性的工作.選用電機時,步進電機的工作方式主要是“開環”[12],而且價格方面比較貴.相比之下直流電機價格比較便宜,并且可以通過反饋系統間接控制電機.綜合以上考慮,本文采用直流電機加蠕動泵的組合.直流蠕動泵驅動電路采用N 溝道增強型場效應管,雙MOS 管并聯結構可以使導通電阻降低一半.與常用的三極管驅動電路L298N 相比較,該驅動模塊少占一個輸出引腳,并且MOS 管是電壓型器件,需要的驅動電流更小,功耗也遠低于三極管[13].電路連接如圖5所示.
(1)概述生長素的生理作用;說出生長素作用的兩重性,植物不同器官對生長素的敏感性不同;描述植物頂端優勢的原因、解除方法及應用

圖5 直流蠕動泵控制電路
本灌溉系統的控制程序在樹莓派4B 的Raspbian系統上運行.編程軟件為Python 3.7,數據庫為MariaDB(MySQL 的一個分支)[14].主要流程是:首先開啟I2C 設備,然后傳感器按照設定好的時間間隔讀取當前土壤濕度和空氣溫、濕度,將采集到的數據傳入到樹莓派的MySQL 數據庫,并上傳至OneNET 云平臺.與此同時從互聯網獲取明日氣象數據并將MySQL 數據庫中的數據共同發送到模糊控制器,模糊控制器將數據進行處理后得到灌溉時長,控制程序根據灌溉時長控制蠕動泵工作,整體流程圖如圖6所示.

圖6 軟件系統流程
采集空氣溫濕度使用的傳感器為DHT11,采集時間間隔為5 分鐘,每次傳輸的是一個40 位二進制數,其中前16 位是濕度數值的整數和小數,中間16 位是溫度數值的整數和小數,最后8 位是校驗位.校驗準則為前32 位所得數據相加應為最后8 位校驗位的數值,當校驗成功時,說明采集結果正確,可以使用這個數值;當校驗失敗時,說明采集結果錯誤(可能是程序錯誤,也可能是傳感器問題),此次采集數據將被丟棄.
土壤濕度采集流程與空氣溫濕度采集流程大體一致,只是多一步模數轉換,采集流程在這不再作贅述.
本文控制灌溉時將PWM 設置為固定值,在得到模糊控制器計算出的灌溉時長T后通過MOS 管驅動直流電機進而使蠕動泵工作,讓程序時延Ts 后即可控制直流蠕動泵工作.
(1)數據庫需求分析
由于本灌溉系統需要保存的數據僅有各個時刻傳感器采集到的數據,所以僅需要一張傳感器表來存儲這些數據,包括土壤濕度、空氣濕度、空氣溫度、時間和一個為了區分記錄的id.
(2)數據庫概念結構設計
通過對智能灌溉系統的需求進行分析,本系統需要一個實體屬性模型,即傳感器實體,其實體屬性圖如圖7所示.

圖7 傳感器實體屬性
(3)數據庫邏輯結構設計
根據上述需求分析和概念結構設計已經抽象出實體的屬性,建立傳感器表見表1.

表1 傳感器表
(4)數據庫連接
數據庫創建完成后,利用Python 的PyMySQL 庫與數據庫建立連接并把數據導入.
數據庫連接本系統采用的模糊邏輯系統為經典的Mamdani 型模糊邏輯系統[15].系統共有兩個輸入數據分別為Eh(土壤濕度誤差)和Ech(誤差變化率),一個輸出為T(灌溉時長).輸入的語言變量都為5 個{NB、NS、Z、PS、PB},論域為[-4,4];輸出的語言變量也為5 個{Z、S、M、B、B+},論域為[0,4].實際論域到模糊論域的量化因子為:

其中,yi為模糊論域上限,xi為實際論域上限.
模糊論域P到實際論域Q的比率因子為:

其中,q為 實際論域上限,p為模糊論域上限.
本文的量化因子和比率因子分別為:

在進行模糊推理之前,首先必須確定隸屬度函數,Eh、Ech 和T 全都采用三角形隸屬度函數[16].依據一線人員的工作經驗和專家知識建立起模糊邏輯規則后進行賦值即可得到模糊規則響應表[17],后續只需要執行相應的查表工作即可得到科學的灌溉時長.模糊響應規則表見表2.

表2 模糊響應規則表
此表在逆模糊化時采用“最大隸屬度法”,得到精確量的輸出.
灌溉時主要考慮土壤濕度的影響,但也不能忽略空氣溫濕度的影響,經過多次測量,本地空氣溫度在[15,35]之間,空氣濕度在[50,90]之間,定義由空氣溫度決定的灌溉時長為Ta,由空氣濕度決定的灌溉時長為Tb,模糊控制器得到的灌溉時長為Tc.其中:

在空氣溫度小于25℃,空氣濕度大于70%RH 時灌溉時長都為0.經過綜合考慮,空氣溫度、空氣濕度占比和模糊量的權重占比分別為:0.1、0.2 和0.7.最終得到系統灌溉時長T=Ta+Tb+Tc.
首先注冊一個云平臺賬號,然后在開發者中心創建產品樹莓派4B,設備接入協議選擇HTTP.創建完產品后繼續添加設備并為OneNET 監測的環境變量添加相應的數據流模板.樹莓派上傳數據都是通過數據流傳入,可以設置數據流相關參數.最后新建應用并添加應用LOGO.在應用中可以設置顯示溫濕度的折線圖、柱狀圖等.OneNET 云平臺監控圖如圖8所示.

圖8 云平臺監控圖
用戶可以通過電腦端直接登錄云平臺或者使用手機、平板通過設備云APP 訪問云平臺即可完成數據監控,其網絡架構如圖9所示.

圖9 系統網絡架構
系統測試是檢驗智能灌溉系統的靈敏性和準確性.如種植草莓平均的溫度大約在15-25℃范圍內,處于生長期的草莓最適宜的土壤濕度為70%RH 左右.將直流蠕動泵的PWM 設為固定值60,環境溫度為22℃,測試系統在不同土壤濕度環境下的灌溉時長.為了模擬更多土壤濕度的情況,用人工加水來提高土壤濕度.在灌溉測試時用秒表記錄灌溉時長與模糊控制響應表所得的灌溉時長進行對比.測試結果見表3.
由表3 中數據可以看出系統灌溉時長的誤差最大不超過2%,能夠有效地達到節水的效果,系統完全實現了自動灌溉,可以釋放大量的勞動力,也能夠加快我國農業從經驗種植到科學種植的進程.

表3 系統灌溉結果
本文設計了一種智能灌溉系統,能夠根據當前環境狀況自動計算出灌溉時長.系統采用了樹莓派4B 作為核心控制器件,監控方面在云平臺上開發應用取代傳統的Web 端,大大降低開發成本,進而降低了整套系統的成本.系統經過初步測試,灌溉時長的最大偏差不超過2%,且反應迅速,具有很好的準確性和靈敏性,在今后大規模的農田灌溉領域有廣闊的應用前景.后續可以利用智能算法[18-24]研究不同農作物對化肥的需求,將灌溉系統與施肥系統相結合,加快農業自動化進程.