張明岳,高師杰
(西安工程大學(xué)電子信息學(xué)院,西安 710600)
水資源是農(nóng)業(yè)的命脈,我國作為農(nóng)業(yè)大國,發(fā)展節(jié)水灌溉技術(shù)對于節(jié)約水資源和發(fā)展農(nóng)業(yè)技術(shù)的重要性非比尋常,對我國經(jīng)濟(jì)建設(shè)以及科學(xué)技術(shù)發(fā)展也都具有重要的戰(zhàn)略意義?!丁笆濉鞭r(nóng)業(yè)科技發(fā)展規(guī)劃》明確提出了“要充分發(fā)揮科技對加快農(nóng)業(yè)現(xiàn)代化建設(shè)、促進(jìn)農(nóng)村經(jīng)濟(jì)社會(huì)發(fā)展的重要支撐引領(lǐng)作用”。
近年來,隨著信息技術(shù)的飛速進(jìn)步,以Zigbee、GPRS和物聯(lián)網(wǎng)等新型通訊技術(shù)現(xiàn)實(shí)的智能灌溉系統(tǒng)應(yīng)運(yùn)而生,其中物聯(lián)網(wǎng)技術(shù)的應(yīng)用最多。物聯(lián)網(wǎng)與灌溉系統(tǒng)的結(jié)合,不但實(shí)現(xiàn)了遠(yuǎn)程控制智能灌溉,也有效提高了灌溉效率,節(jié)約了水資源。其中,師志剛等人[1]以物聯(lián)網(wǎng)為支撐搭建的智能灌溉系統(tǒng),基本實(shí)現(xiàn)了智慧型農(nóng)業(yè),在實(shí)時(shí)灌溉及經(jīng)濟(jì)效益方面得到了改善,但在精準(zhǔn)灌溉方面還不夠完善。王宗省等人[2]將物聯(lián)網(wǎng)與農(nóng)業(yè)灌溉相結(jié)合,實(shí)現(xiàn)了自動(dòng)化灌溉,但在精準(zhǔn)灌溉方面沒有具體闡述。
鑒于現(xiàn)有的研究成果,在此,基于物聯(lián)網(wǎng)技術(shù),將以STM32為主控芯片的灌溉下位機(jī)系統(tǒng)與電腦客戶端或微信端通過服務(wù)器連接,同時(shí)運(yùn)用模糊控制算法,以實(shí)現(xiàn)精準(zhǔn)灌溉(包括電腦/微信端智能監(jiān)測、指令灌溉以及下位機(jī)智能決策等)。
按照系統(tǒng)總體任務(wù)需求進(jìn)行設(shè)計(jì)。系統(tǒng)整體結(jié)構(gòu)圖如圖1[3]。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖
由圖可見,系統(tǒng)主要由三個(gè)部分構(gòu)成:
感知層:以STM32ARM微控板為核心,與DHT11空氣溫濕度傳感器、TH-FDR2000土壤水分傳感器以及光照傳感器等設(shè)備建立連接,用來采集作物所處環(huán)境參量數(shù)據(jù)。利用無線傳感器網(wǎng)絡(luò)技術(shù)建立一個(gè)自治、協(xié)同工作網(wǎng)絡(luò),并將外接設(shè)備與互聯(lián)網(wǎng)中的其他設(shè)備進(jìn)行信息交互與資源共享。
網(wǎng)絡(luò)層:以阿里云服務(wù)器和MYSQL數(shù)據(jù)庫作為智能網(wǎng)絡(luò)平臺(tái),將Wi-Fi模塊傳輸?shù)玫降臄?shù)據(jù)用PHP語言存入數(shù)據(jù)庫,供微信進(jìn)行數(shù)據(jù)調(diào)用。
應(yīng)用層:用戶可通過電腦端或微信公眾平臺(tái)[4]發(fā)送數(shù)據(jù)請求指令以及灌溉指令等,再由感知層根據(jù)指令要求發(fā)送當(dāng)前狀態(tài)下采集的環(huán)境參量數(shù)據(jù)或驅(qū)動(dòng)繼電器動(dòng)作,從而使電磁閥的閥門處于不同的開度,滿足不同狀態(tài)下作物生長所需的水量。
設(shè)計(jì)選用STM32F103RCT6作為微控制器芯片,它是一種32位Cortex-M3CPU,因其價(jià)格實(shí)惠、體積小巧、內(nèi)部資源豐富等優(yōu)點(diǎn),被廣泛應(yīng)用于各類控制設(shè)備和儀器儀表中。該芯片用于控制智能傳感器組群采集環(huán)境信息數(shù)據(jù),并將采集到的數(shù)據(jù)進(jìn)行打包發(fā)送,以供查看和后續(xù)控制策略的實(shí)施。同時(shí)它也是電磁閥開關(guān)的控制單元。STM32F103芯片基本參數(shù)[5]由表1詳細(xì)給出。
表1 STM32F103RCT6基本參數(shù)
系統(tǒng)中選用的土壤墑情傳感器(TH-FDR2000)是一款利用高頻電子技術(shù)制造的具有高精度、高靈敏度的土壤水分測量傳感器。該傳感器通過測量田間土壤的介電常數(shù)來探知土壤的水分含量,其電路連接如圖2所示。
圖2 土壤水分傳感器電路連接示意圖
空氣溫濕度傳感器(DHT11)是一款具有校準(zhǔn)數(shù)字信號輸出功能的復(fù)合傳感器。該傳感器通過其內(nèi)部感濕、測溫元件在特定環(huán)境下計(jì)算校準(zhǔn)系數(shù)并保存于內(nèi)存中,當(dāng)傳感器檢測信號時(shí)再對校準(zhǔn)系數(shù)進(jìn)行調(diào)用。此外,傳感器接口采用單線制串行通信,在集成系統(tǒng)中使用方便且快捷。DHT11與MCU的具體連接如圖3所示[6]。
圖3 DHT11傳感模塊與MCU連接
在此采用繼電器來驅(qū)動(dòng)電磁閥。當(dāng)作物所處環(huán)境參量達(dá)到灌溉要求時(shí),啟動(dòng)繼電器,在線圈兩端加上電壓,利用電磁效應(yīng),使銜鐵與靜觸點(diǎn)(常開觸點(diǎn))吸合,從而實(shí)現(xiàn)電磁閥閥門動(dòng)作,達(dá)到不同的灌溉狀態(tài)。如圖4為電磁閥驅(qū)動(dòng)電路圖。
圖4 電磁閥驅(qū)動(dòng)電路
按設(shè)計(jì)實(shí)際搭建的系統(tǒng)整體硬件實(shí)物圖如圖5所示。
圖5 整體硬件實(shí)物圖
空氣溫度、空氣濕度和土壤濕度作為作物生長的三個(gè)主要影響因子,具有較強(qiáng)的耦合關(guān)系,而光照強(qiáng)度與CO2濃度耦合度較低,易于獨(dú)立控制[7],因此灌溉控制器采用模糊控制算法,并以空氣溫濕度與土壤濕度作為輸入量。
先將輸入量模糊化,模程為分級。若X∈[a,b],將模糊化用瑪達(dá)尼(Mamdani)法進(jìn)行極大極小推理:
若輸入量X的變化區(qū)間映射到[-6,6],并使之離散化,構(gòu)成論域[-6,6]內(nèi)的13個(gè)整數(shù)元素的A,即A={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},則有:
式中y為區(qū)間內(nèi)離散變量,若y非整數(shù),則將其歸為最接近的整數(shù)值,再將區(qū)間[-6,6]分為若干檔,每一檔對應(yīng)一個(gè)語言值和相應(yīng)的一個(gè)模糊集合。每一模糊集合對應(yīng)一個(gè)隸屬度函數(shù),一般采用高斯函數(shù)。
設(shè)作物周圍環(huán)境中實(shí)際溫度為Ti,目標(biāo)設(shè)定溫度值為Tr,實(shí)際濕度為Hi,目標(biāo)設(shè)定濕度值為Hr,土壤實(shí)際濕度為Wi,目標(biāo)濕度為Wr,進(jìn)而設(shè)空氣溫度誤差T=Ti-Tr,空氣濕度誤差H=Hi-Hr,土壤濕度誤差W=Wi-Wr。其中,空氣溫度誤差T和空氣濕度誤差H都用5個(gè)模糊狀態(tài)來表述,即:NB(負(fù)大)、NS(負(fù)小)、ZO(零)、PS(正?。?、PB(正大);土壤濕度誤差W用6個(gè)模糊狀態(tài)描述,即:NB(負(fù)大)、NS(負(fù)?。?、NZ(負(fù)零)、PZ(正零)、PS(正?。B(正大)。
輸出變量為閥門開啟度,用4個(gè)模糊狀態(tài)來表述:NZ(關(guān))、PZ(半關(guān))、PS(中等)、PB(全開)。其每一個(gè)模糊集合隸屬度函數(shù)均為三角函數(shù)??刂破鳛槿斎胍惠敵觯匆匀缦乱?guī)則為例的形式創(chuàng)建規(guī)則庫:
If(W is PB)and(H is NB)and(T is NB)then(U is NZ)
這句規(guī)則的意思是:如果土壤濕度偏差為正大與空氣濕度偏差為負(fù)大與空氣溫度偏差為負(fù)大,則電磁閥關(guān)。諸如此類,一共150條模糊控制規(guī)則。實(shí)際創(chuàng)建規(guī)則的界面如圖6所示。
圖6 規(guī)則庫的創(chuàng)建
最后采用最大隸屬度法選取隸屬度最大的元素作為輸出量,完成解模糊。
服務(wù)器和數(shù)據(jù)庫通過HTTP協(xié)議傳輸傳感器組群采集得到的數(shù)據(jù),采用PHP腳本語言編寫與MYSQL進(jìn)行數(shù)據(jù)庫連接。由客戶端發(fā)送請求指令,建立TCP連接,服務(wù)器監(jiān)測到請求作出響應(yīng)。
在PHP中,通過mysql_connect()函數(shù)創(chuàng)建數(shù)據(jù)庫連接。語法為:
其中,servername為要連接的服務(wù)器,username為登錄所使用的用戶名,password為登錄所用的密碼。系統(tǒng)使用tj.php這個(gè)文件來與Navicat for MySQL數(shù)據(jù)庫進(jìn)行連接并存儲(chǔ)溫濕度數(shù)據(jù)。PHP將GET請求封裝在$_GET數(shù)組中。
實(shí)現(xiàn)數(shù)據(jù)傳輸與存儲(chǔ)的相關(guān)PHP腳本語言如圖7所示。監(jiān)控整體效果如圖8。
圖7 用PHP語言實(shí)現(xiàn)數(shù)據(jù)傳輸與存儲(chǔ)
圖8 監(jiān)控整體效果
輸入變量為空氣濕度偏差H、空氣溫度偏差T、土壤濕度偏差W,其論域均為[-6,6],輸出變量為閥門開啟度U,對應(yīng)論域?yàn)閇0,3]。在此以MATLAB模糊工具包作為研究手段,對其規(guī)則進(jìn)行推理。實(shí)驗(yàn)過程如圖9所示。
圖9 Simulink仿真過程界面
利用模糊規(guī)則所得出的仿真結(jié)果如圖10所示。其中,當(dāng)W=-6,H=-2,T=0,U=2.27,表示土壤濕度偏差為NB,空氣濕度偏差為ZO,此時(shí)閥門應(yīng)盡量全開[8]。又如當(dāng)W=0,H=1.6,T=6,U=1,表示土壤濕度偏差為PZ,空氣濕度偏差為PS,空氣溫度偏差為PB,此時(shí)閥門應(yīng)處于半開狀態(tài)。在實(shí)際控制時(shí)控制量“2.27級”和“1級”要轉(zhuǎn)換為精確的物理量,通過該值控制閥門的輸出電壓,從而控制閥門的開啟度[9]。
圖10 模糊控制規(guī)則瀏覽器
控制器執(zhí)行結(jié)果為電磁閥的4個(gè)狀態(tài),關(guān)、半開、中等、全開,本系統(tǒng)以水泵的抽水時(shí)間表示輸出量。經(jīng)多次測試,得出空氣溫度x1、空氣濕度x2、土壤濕度x3這三個(gè)參數(shù)與水泵抽水時(shí)間y的關(guān)系,部分詳細(xì)測試數(shù)據(jù)如表2所示。
表2 三個(gè)參量與水泵抽水時(shí)間關(guān)系(前10組)
由表2中第一組數(shù)據(jù)可知當(dāng)前環(huán)境下水泵抽水,對應(yīng)電磁閥為全開狀態(tài);由第二組數(shù)據(jù)可知當(dāng)前環(huán)境下水泵不抽水,電磁閥關(guān)閉;由第四組數(shù)據(jù)可知當(dāng)前環(huán)境下水泵抽水,對應(yīng)電磁閥為半開狀態(tài)。其他情況可按同理推知[10]。
將物聯(lián)網(wǎng)與客戶應(yīng)用端相結(jié)合,設(shè)計(jì)了一款智能灌溉控制系統(tǒng)。系統(tǒng)安裝、操作簡便,成本低廉,經(jīng)多次試驗(yàn),獲得了穩(wěn)定、可靠的運(yùn)行效果,能夠完成作物所處環(huán)境參量的采集,并有效地進(jìn)行實(shí)時(shí)遠(yuǎn)程監(jiān)測以及自動(dòng)調(diào)控灌溉時(shí)間及灌溉量,大大節(jié)省了勞力以及水資源。系統(tǒng)達(dá)到了精確灌溉的目的,其設(shè)計(jì)思路也可為現(xiàn)代化農(nóng)業(yè)溫室大棚的發(fā)展提供有價(jià)值的參考。