趙蘇徽,陳 曉,2
1(南京信息工程大學 電子與信息工程學院,南京 210044)
2(南京信息工程大學 江蘇省大氣環(huán)境與裝備技術(shù)協(xié)同創(chuàng)新中心,南京 210044)
與世界上其它國家相比,我國淡水資源總量處于前列,但是由于人口基數(shù)大使得我國人均水資源擁有量處于世界末位[1].許多地區(qū)缺乏水資源,當?shù)刂荒芡ㄟ^大量開采地下水來緩解水資源危機.目前我國地下水使用量已經(jīng)嚴重超過國際警戒線,地下水超采面積也已從5.6 萬km2擴大到18 萬km2[2].與此同時中國大部分地區(qū)仍在使用傳統(tǒng)的漫灌方式,這也是導致水資源危機的重要原因[3].從目前發(fā)展的趨勢來看,盡管我國農(nóng)業(yè)高效節(jié)水灌溉的總面積不斷增加,但使用噴灌和微灌方式的灌溉面積仍然很小,加之對雨水利用率低,使得我國在對水資源利用的問題上與世界主要國家相比相差甚遠.因此為緩解水資源短缺問題而發(fā)展先進的灌溉技術(shù)已經(jīng)迫在眉睫.
國外在智能灌溉方面起步比我國要早,農(nóng)業(yè)生產(chǎn)自動化程度高.早在上世紀80年代,美國的Benami 等人[4]開發(fā)了一個節(jié)水灌溉系統(tǒng),其使用土壤濕度傳感器檢測土壤水分含量,將數(shù)據(jù)傳給控制器,而控制器根據(jù)傳感器測得的土壤相對濕度與預(yù)設(shè)值進行對比決定是否灌溉.Goap 等人[5]基于物聯(lián)網(wǎng)技術(shù)開發(fā)了一套智能灌溉系統(tǒng),利用ZigBee[6]以及WiFi 技術(shù)進行通信組網(wǎng),并將傳感節(jié)點的實時數(shù)據(jù)發(fā)送至遠程服務(wù)器進行數(shù)據(jù)解析與存儲,同時決定是否需要進行灌溉,并在網(wǎng)頁端進行直觀的顯示.我國的灌溉技術(shù)雖然起步?jīng)]有國外早,但現(xiàn)階段的發(fā)展情況已經(jīng)相差不大.劉書倫等人將物聯(lián)網(wǎng)技術(shù)與Android 相結(jié)合設(shè)計實現(xiàn)了利用Android 平臺對農(nóng)業(yè)農(nóng)田遠程灌溉系統(tǒng)的控制[7].系統(tǒng)利用多種傳感器組成的節(jié)點網(wǎng)絡(luò)來實現(xiàn)遠程監(jiān)測的同時控制多個控制器節(jié)點.何江[8]將物聯(lián)網(wǎng)技術(shù)與樹莓派相結(jié)合開發(fā)了一種智能云灌溉系統(tǒng),利用了現(xiàn)在流行的Web 技術(shù),如Python,Flask 等,實現(xiàn)從Web 端進行遠程控制以及數(shù)據(jù)監(jiān)控,模糊算法把PWM 作為輸出控制泵的轉(zhuǎn)速.
在核心控制器件選擇時,對比C51、STM32 等系列的單片機[9-11],樹莓派具有功能強大、操作方便的優(yōu)點,本身既可作為下位機也可以作為上位機,所以本文選擇了目前最新型號的樹莓派4B 作為核心控制器件.軟件設(shè)計時考慮到云平臺技術(shù)開發(fā)成本低、需求擴展靈活、數(shù)據(jù)訪問的移動性強等優(yōu)點,完全可以替代傳統(tǒng)的Web,所以并沒有選擇Web 結(jié)構(gòu),而是在云平臺上開發(fā)應(yīng)用,降低整套系統(tǒng)成本.現(xiàn)在云平臺有很多,本文使用的是中國移動的OneNET 云平臺.系統(tǒng)整體分為硬件和軟件兩大部分,其中硬件系統(tǒng)包括土壤濕度采集電路、空氣溫濕度采集電路和直流蠕動泵控制電路;軟件系統(tǒng)包括土壤濕度采集和上傳程序、空氣溫濕度采集和上傳程序、直流蠕動泵驅(qū)動程序、氣象數(shù)據(jù)獲取程序、數(shù)據(jù)庫設(shè)計和模糊控制器設(shè)計程序等.系統(tǒng)整體框圖如圖1所示.
圖1 系統(tǒng)整體框圖
硬件電路連接時將空氣溫濕度傳感器DHT11、土壤濕度傳感器YL-69 和數(shù)模轉(zhuǎn)換器PCF8591 的VCC端都接到樹莓派的2 號腳,GND 端都接到樹莓派的6號腳.DHT11 的DATA 端接到樹莓派的7 號腳,PCF8591的SDA 端和SCL 端分別接到樹莓派的3 號腳和5 號腳.MOS 管驅(qū)動的GND 端和PWM 端分別接到樹莓派的2 號腳和40 號腳,具體連接如圖2所示.
圖2 智能灌溉系統(tǒng)整體連接圖
YL-69 土壤濕度傳感器為四線制,其采用的電源為3.3 V-5 V,電壓比較器LM393,D0 引腳通過和設(shè)定的閾值相比輸出數(shù)字量0 或1,A0 引腳可以輸出模擬值,這個數(shù)值更加準確.隨著土壤濕度值變大時,得到的模擬量值也相應(yīng)的變大.
本文在使用YL-69 土壤濕度傳感器時因為要輸出精確的土壤相對濕度,所以要從A0 引腳輸出模擬量,因此必須要有一個模數(shù)轉(zhuǎn)換器將模擬信號轉(zhuǎn)換為數(shù)字信號傳輸?shù)綐漭?采用的模數(shù)轉(zhuǎn)換器是PCF8591,將YL-69 的模擬量輸出端A0 連到PCF8591 的模擬信號輸入端AIN0,模數(shù)轉(zhuǎn)換器將土壤濕度轉(zhuǎn)換成精確的數(shù)值,然后通過I2C 總線傳輸?shù)綐漭蛇M行數(shù)據(jù)處理.電路連接如圖3所示.
圖3 土壤濕度采集電路連接
DHT11 傳感器出廠時便集成了電阻式的感濕元件和NTC 測量溫度的元件,內(nèi)部已經(jīng)包含了8 位的單片機.由于它具有串行單線接口,所以體積小巧,耗電少,并且傳輸?shù)男盘栕罡呖蛇_20 米.它擁有優(yōu)良的品質(zhì)、超快的反應(yīng)能力、強大的抗干擾能力和超高的性價比讓很多精準測量甚至可以說是苛刻測量的場所都選擇它.DHT11 溫濕度傳感器共有4 個引腳,在使用時NC腳懸空,VCC 接5V 直流電源,GND 接地,DATA 連接到樹莓派的GPIO.7 腳,電路連接圖如圖4所示.
圖4 空氣溫濕度采集電路連接
本文在實驗時灌溉對象是盆栽草莓,需水量不大,因此灌溉時采用微型蠕動泵即可.其功率較小,能夠使用晶體管驅(qū)動,更加適合間歇性的工作.選用電機時,步進電機的工作方式主要是“開環(huán)”[12],而且價格方面比較貴.相比之下直流電機價格比較便宜,并且可以通過反饋系統(tǒng)間接控制電機.綜合以上考慮,本文采用直流電機加蠕動泵的組合.直流蠕動泵驅(qū)動電路采用N 溝道增強型場效應(yīng)管,雙MOS 管并聯(lián)結(jié)構(gòu)可以使導通電阻降低一半.與常用的三極管驅(qū)動電路L298N 相比較,該驅(qū)動模塊少占一個輸出引腳,并且MOS 管是電壓型器件,需要的驅(qū)動電流更小,功耗也遠低于三極管[13].電路連接如圖5所示.
(1)概述生長素的生理作用;說出生長素作用的兩重性,植物不同器官對生長素的敏感性不同;描述植物頂端優(yōu)勢的原因、解除方法及應(yīng)用
圖5 直流蠕動泵控制電路
本灌溉系統(tǒng)的控制程序在樹莓派4B 的Raspbian系統(tǒng)上運行.編程軟件為Python 3.7,數(shù)據(jù)庫為MariaDB(MySQL 的一個分支)[14].主要流程是:首先開啟I2C 設(shè)備,然后傳感器按照設(shè)定好的時間間隔讀取當前土壤濕度和空氣溫、濕度,將采集到的數(shù)據(jù)傳入到樹莓派的MySQL 數(shù)據(jù)庫,并上傳至OneNET 云平臺.與此同時從互聯(lián)網(wǎng)獲取明日氣象數(shù)據(jù)并將MySQL 數(shù)據(jù)庫中的數(shù)據(jù)共同發(fā)送到模糊控制器,模糊控制器將數(shù)據(jù)進行處理后得到灌溉時長,控制程序根據(jù)灌溉時長控制蠕動泵工作,整體流程圖如圖6所示.
圖6 軟件系統(tǒng)流程
采集空氣溫濕度使用的傳感器為DHT11,采集時間間隔為5 分鐘,每次傳輸?shù)氖且粋€40 位二進制數(shù),其中前16 位是濕度數(shù)值的整數(shù)和小數(shù),中間16 位是溫度數(shù)值的整數(shù)和小數(shù),最后8 位是校驗位.校驗準則為前32 位所得數(shù)據(jù)相加應(yīng)為最后8 位校驗位的數(shù)值,當校驗成功時,說明采集結(jié)果正確,可以使用這個數(shù)值;當校驗失敗時,說明采集結(jié)果錯誤(可能是程序錯誤,也可能是傳感器問題),此次采集數(shù)據(jù)將被丟棄.
土壤濕度采集流程與空氣溫濕度采集流程大體一致,只是多一步模數(shù)轉(zhuǎn)換,采集流程在這不再作贅述.
本文控制灌溉時將PWM 設(shè)置為固定值,在得到模糊控制器計算出的灌溉時長T后通過MOS 管驅(qū)動直流電機進而使蠕動泵工作,讓程序時延Ts 后即可控制直流蠕動泵工作.
(1)數(shù)據(jù)庫需求分析
由于本灌溉系統(tǒng)需要保存的數(shù)據(jù)僅有各個時刻傳感器采集到的數(shù)據(jù),所以僅需要一張傳感器表來存儲這些數(shù)據(jù),包括土壤濕度、空氣濕度、空氣溫度、時間和一個為了區(qū)分記錄的id.
(2)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計
通過對智能灌溉系統(tǒng)的需求進行分析,本系統(tǒng)需要一個實體屬性模型,即傳感器實體,其實體屬性圖如圖7所示.
圖7 傳感器實體屬性
(3)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計
根據(jù)上述需求分析和概念結(jié)構(gòu)設(shè)計已經(jīng)抽象出實體的屬性,建立傳感器表見表1.
表1 傳感器表
(4)數(shù)據(jù)庫連接
數(shù)據(jù)庫創(chuàng)建完成后,利用Python 的PyMySQL 庫與數(shù)據(jù)庫建立連接并把數(shù)據(jù)導入.
數(shù)據(jù)庫連接本系統(tǒng)采用的模糊邏輯系統(tǒng)為經(jīng)典的Mamdani 型模糊邏輯系統(tǒng)[15].系統(tǒng)共有兩個輸入數(shù)據(jù)分別為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為模糊論域上限.
本文的量化因子和比率因子分別為:
在進行模糊推理之前,首先必須確定隸屬度函數(shù),Eh、Ech 和T 全都采用三角形隸屬度函數(shù)[16].依據(jù)一線人員的工作經(jīng)驗和專家知識建立起模糊邏輯規(guī)則后進行賦值即可得到模糊規(guī)則響應(yīng)表[17],后續(xù)只需要執(zhí)行相應(yīng)的查表工作即可得到科學的灌溉時長.模糊響應(yīng)規(guī)則表見表2.
表2 模糊響應(yīng)規(guī)則表
此表在逆模糊化時采用“最大隸屬度法”,得到精確量的輸出.
灌溉時主要考慮土壤濕度的影響,但也不能忽略空氣溫濕度的影響,經(jīng)過多次測量,本地空氣溫度在[15,35]之間,空氣濕度在[50,90]之間,定義由空氣溫度決定的灌溉時長為Ta,由空氣濕度決定的灌溉時長為Tb,模糊控制器得到的灌溉時長為Tc.其中:
在空氣溫度小于25℃,空氣濕度大于70%RH 時灌溉時長都為0.經(jīng)過綜合考慮,空氣溫度、空氣濕度占比和模糊量的權(quán)重占比分別為:0.1、0.2 和0.7.最終得到系統(tǒng)灌溉時長T=Ta+Tb+Tc.
首先注冊一個云平臺賬號,然后在開發(fā)者中心創(chuàng)建產(chǎn)品樹莓派4B,設(shè)備接入?yún)f(xié)議選擇HTTP.創(chuàng)建完產(chǎn)品后繼續(xù)添加設(shè)備并為OneNET 監(jiān)測的環(huán)境變量添加相應(yīng)的數(shù)據(jù)流模板.樹莓派上傳數(shù)據(jù)都是通過數(shù)據(jù)流傳入,可以設(shè)置數(shù)據(jù)流相關(guān)參數(shù).最后新建應(yīng)用并添加應(yīng)用LOGO.在應(yīng)用中可以設(shè)置顯示溫濕度的折線圖、柱狀圖等.OneNET 云平臺監(jiān)控圖如圖8所示.
圖8 云平臺監(jiān)控圖
用戶可以通過電腦端直接登錄云平臺或者使用手機、平板通過設(shè)備云APP 訪問云平臺即可完成數(shù)據(jù)監(jiān)控,其網(wǎng)絡(luò)架構(gòu)如圖9所示.
圖9 系統(tǒng)網(wǎng)絡(luò)架構(gòu)
系統(tǒng)測試是檢驗智能灌溉系統(tǒng)的靈敏性和準確性.如種植草莓平均的溫度大約在15-25℃范圍內(nèi),處于生長期的草莓最適宜的土壤濕度為70%RH 左右.將直流蠕動泵的PWM 設(shè)為固定值60,環(huán)境溫度為22℃,測試系統(tǒng)在不同土壤濕度環(huán)境下的灌溉時長.為了模擬更多土壤濕度的情況,用人工加水來提高土壤濕度.在灌溉測試時用秒表記錄灌溉時長與模糊控制響應(yīng)表所得的灌溉時長進行對比.測試結(jié)果見表3.
由表3 中數(shù)據(jù)可以看出系統(tǒng)灌溉時長的誤差最大不超過2%,能夠有效地達到節(jié)水的效果,系統(tǒng)完全實現(xiàn)了自動灌溉,可以釋放大量的勞動力,也能夠加快我國農(nóng)業(yè)從經(jīng)驗種植到科學種植的進程.
表3 系統(tǒng)灌溉結(jié)果
本文設(shè)計了一種智能灌溉系統(tǒng),能夠根據(jù)當前環(huán)境狀況自動計算出灌溉時長.系統(tǒng)采用了樹莓派4B 作為核心控制器件,監(jiān)控方面在云平臺上開發(fā)應(yīng)用取代傳統(tǒng)的Web 端,大大降低開發(fā)成本,進而降低了整套系統(tǒng)的成本.系統(tǒng)經(jīng)過初步測試,灌溉時長的最大偏差不超過2%,且反應(yīng)迅速,具有很好的準確性和靈敏性,在今后大規(guī)模的農(nóng)田灌溉領(lǐng)域有廣闊的應(yīng)用前景.后續(xù)可以利用智能算法[18-24]研究不同農(nóng)作物對化肥的需求,將灌溉系統(tǒng)與施肥系統(tǒng)相結(jié)合,加快農(nóng)業(yè)自動化進程.