譚 燕,秦風元
(1.重慶三峽職業(yè)學院智能制造學院,重慶 404155;2.江蘇大學電氣信息工程學院,江蘇 鎮(zhèn)江 212013)
我國為世界13大最缺水國家之一,且農(nóng)業(yè)方面的相關(guān)用水量占我國總用水量的1/2左右,而近年來電子科學技術(shù)的發(fā)展不斷推進了農(nóng)業(yè)工程相關(guān)領(lǐng)域智能化的更新與完善[1-3]。因此,研究智能灌溉系統(tǒng),提高灌溉系統(tǒng)的用水效率對節(jié)約水資源具有重要的意義。
Raspberry Pi是一種基于Linux操作系統(tǒng)的微信電腦,作為開源硬件領(lǐng)域的高階硬件產(chǎn)品,其在車輛工程、農(nóng)業(yè)工程等方面有了廣泛應用[4-6]。姬江濤等通過Raspberry Pi設計一款智能蔬菜耕作設備,其耕作的株距合格率為94.91%,誤播率為5.09%,具有良好的工作性能[7]。楊柳等將Raspberry Pi應用于拖拉機的無人駕駛系統(tǒng)的研究中,該系統(tǒng)的響應時間為0.3 s左右,且舵機的角度偏差為3°[8]。張世昂等通過樹莓派研究設計了一種田間農(nóng)作物的智能巡檢車,其能夠較好的完成巡檢車預期的各項巡檢要求[9]。本研究通過搭建Raspberry Pi 3b與相關(guān)傳感器的硬件系統(tǒng),應用pyhton語言編寫控制與后臺程序,前端界面程序采用Html5、Css以及Java Script編寫,具有跨平臺、兼容性好、界面表現(xiàn)性好等優(yōu)點。同時采用 MySQL 對數(shù)據(jù)進行存儲,系統(tǒng)自身的模糊運算控制器能夠根據(jù)數(shù)據(jù)庫中的數(shù)據(jù)輸出合適的灌水量,從而使所研究設備成為一個“云”平臺,達到智能化灌溉的目的。進而為智能灌溉設備的實現(xiàn)提供了新的思路。
從所研究灌溉系統(tǒng)的穩(wěn)定性出發(fā),選取的硬件包括Raspberry Pi 3b(圖1)、DHT11型空氣溫濕度檢測模塊(圖2)、卡默爾微型電機蠕動泵(圖3)、L298N型電機驅(qū)動模塊(圖4)、YL-69型土壤濕度計檢測模塊以及PCF8591型A/D轉(zhuǎn)化模塊(圖5)等??傮w結(jié)構(gòu)示意圖如圖6所示。

圖1 樹莓派3bFig.1 Raspberry Pi 3b

圖2 空氣溫濕度檢測模塊Fig.2 Air temperature and humidity detection module

圖3微型電機蠕動泵Fig.3 Micro motor peristaltic pump

圖4 電機驅(qū)動模塊Fig.4 Motor drive module

圖5 土壤濕度計檢測模塊與A/D轉(zhuǎn)化模塊Fig.5 Soil hygrometer detection module and A/D conversion module

圖6 硬件總體結(jié)構(gòu)圖Fig.6 Hardware architecture
采用SD Formatte對樹莓派所安裝的16G內(nèi)存卡進行格式化,將NOOBS安裝程序拷貝至內(nèi)存卡中,并使內(nèi)存卡插入樹莓派內(nèi)用NOOBS安裝本研究所需的Linux Ubuntu mate系統(tǒng)(見圖7)。安裝系統(tǒng)之后,以局域網(wǎng)作為計算機與樹莓派的連接媒介,使計算機通過putty(見圖8)對樹莓派進行控制。

圖7 NOOBS界面Fig.7 NOOBS Interface

圖8 putty界面Fig.8 Puty Interface
本研究的智能灌溉系程序的編寫語言為Python3.5.2,選取Flask為Web的程序框架,選擇MySQL為數(shù)據(jù)庫。系統(tǒng)軟件的整體設計如圖9所示。

圖9 軟件整體結(jié)構(gòu)框圖Fig.9 Software block diagram
圖9中相關(guān)傳感器通過獲取土壤溫度、空氣溫濕度等數(shù)值,將輸入存數(shù)到數(shù)據(jù)庫中,并通過WEB將其顯示,除此之外,控制程序?qū)?shù)據(jù)庫內(nèi)的數(shù)據(jù)送入模糊算法,并將模糊算法的結(jié)果存入數(shù)據(jù)庫。WEB程序在整個過程中即可顯示相關(guān)結(jié)果,也可對整個系統(tǒng)進行操作控制。
Raspberry Pi 3b的開發(fā)語言主要為C語言與Python語言,因若采用C語言對整個系統(tǒng)進行編程會復雜且不便,從而加長了開發(fā)周期,故采用Python進行開發(fā)[10-12]。選擇B/S(Browser/Server)作為程序結(jié)構(gòu),F(xiàn)lask作為框架,采用BCM的編碼方式。打開Raspberry Pi 3b內(nèi) ootconfig.txt 文件,刪除文件內(nèi)的##并保存,之后打開打開etcmodules文件,在文件內(nèi)輸入 i2c_bcm2708和i2c-dev ,最后安裝SMBUS文件,從而來完成Raspberry Pi 3b的I2C的載入。
由于本研究中所選取土壤濕度計檢測模塊的PCF8591型A/D轉(zhuǎn)化模塊的引腳均為接地,故地址為0X48,二進制為1001000,通過A0、A1、A2來進行地址的修改??諝鉁貪穸葯z測模塊與Raspberry Pi 3b的GPIO連接,安裝Python-GPIO 模塊,從而給樹莓派傳入空氣溫度與濕度的二進制數(shù)值。電機的驅(qū)動模塊與Raspberry Pi 3b的GPIO20與21連接,通過編程使電機可以達到正反轉(zhuǎn)以及通過PWM的大小來進行變速工作與關(guān)閉。
為便于對編寫好的程序及時調(diào)用,避免重復的編程工作,對所編寫好的各模塊程序進行封裝,類視圖如圖10所示。

圖10 類視圖Fig.10 Category view
按照圖10所示類視圖分別對通過Python編程語言對土壤濕度計檢測模塊、空氣溫濕度檢測模塊、電機的驅(qū)動模塊的程序進行封裝。
采用Html5、Css以及Java Script對灌溉系統(tǒng)的登陸以及控制頁面進行設計,通過對css的添加、js的引用、添加泵的控制程序、空氣溫濕度和灌溉水量等表格生成按鈕的添加等來實現(xiàn)系統(tǒng)前端的全部設計。將前文中土壤濕度計檢測模塊、空氣溫濕度檢測模塊、電機的驅(qū)動模塊的程序?qū)?,并安裝My SQL數(shù)據(jù)庫,通過Python在數(shù)據(jù)庫中建立table來對后續(xù)的試驗數(shù)據(jù)進行記載。對進入相關(guān)界面的賬戶名稱與密碼進行設置,最后對空氣的溫濕度、電機的正反轉(zhuǎn)以及調(diào)速相關(guān)程序進行設計。
為使灌溉系統(tǒng)通過采集土壤濕度計檢測模塊與空氣溫濕度檢測模塊的數(shù)據(jù),從而調(diào)整電機的轉(zhuǎn)速,達到智能灌溉的目的,采用模糊算法作為控制系統(tǒng)的方法。
本研究采用的控制器為二維模糊控制器,測控量為土壤濕度與土壤濕度的變化,其中土壤濕度作為被控制量,詞集為:{負大,負大低,負中,負中低,負小,負小低,正零,正小低,正小,正中低,正中,正大低,正大},濕度的誤差、誤差變化以及濕度分別為A、B、C,其模糊集全部為:{FB,F(xiàn)BL,F(xiàn)M,F(xiàn)ML,F(xiàn)S,F(xiàn)SL,0,ZSL,ZS,ZML,ZM,ZBL,ZB},對應的論域:{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},為使系統(tǒng)盡快到達濕度設定值,建立模糊控制的規(guī)則,并對其變量進行賦值。由公式(1)將精確數(shù)值轉(zhuǎn)化為模糊值。
(1)
式中:a為精確數(shù)值上限;b為精確數(shù)值上限;X為精確數(shù)值;Y為模糊值;n為模糊值上、下限值(兩者對稱)。
在對被控制量以及電機的控制進行編程中,電機的控制需要計算其PWM值,計算流程如圖11所示。

圖11 電機PWM計算流程圖Fig.11 PWM flow chart of motor
圖11為計算電機PWM值,需將土壤、空氣的相關(guān)數(shù)值乘以權(quán)值系數(shù)。不同因素的權(quán)值系數(shù)不同,本研究采用AHP(即層次分析法)來求得各權(quán)值系數(shù)的大小。通過一致矩陣法建立判斷矩陣,以Santy法來求得矩陣內(nèi)各元素的大小,結(jié)果為:

將其列向量歸一化、行向量求和以及歸一化,分別得到:
通過Aω=λω,求得λ=3.011。通過將ω四舍五入最終得到三因素的權(quán)值系數(shù)分為:0.69、0.19、0.12。
分別對系統(tǒng)進行服務器功能測試以及種植試驗。服務器功能試驗圖如圖12所示,其數(shù)值顯示、按鈕功能等均正常,符合預期設計要求。通過試驗設備系統(tǒng)(圖13)對單顆黃瓜幼苗進行試驗灌溉,試驗周期為90 d,黃瓜的移種、葉子的長出、開花如圖14所示(因授粉技術(shù)的限制,本實驗未結(jié)出果實)。

圖12 服務器前端功能測試圖Fig.12 Server front end function test chart

圖13 試驗設備系統(tǒng)Fig.13 Test equipment system

圖14 種植試驗Fig.14 Planting test
從圖14可以得知黃瓜幼苗到開花的生長過程良好,且通過系統(tǒng)統(tǒng)計得知,一周內(nèi)黃瓜幼苗的澆水量約為20 mL左右,低于一般的人工澆水量。驗證了采用Raspberry Pi 3b研究精準灌溉系統(tǒng)的可行性。
(1)采用Raspberry Pi 3b、卡默爾微型電機蠕動泵等設計了智能灌溉系統(tǒng)的硬件部分。
(2)通過Python語言對智能灌溉系統(tǒng)程序控制與顯示等部分進行了編程。
(3)編寫模糊算法對智能灌溉系統(tǒng)的電機實現(xiàn)控制,并通過服務器功能測試以及種植試驗進行了驗證,表明了采用Raspberry Pi 3b研究精準灌溉系統(tǒng)的可行性。