劉尚玻,劉皓耿,李才茂,陳丹丹,尹文濤
(佛山科學(xué)技術(shù)學(xué)院 機電工程與自動化學(xué)院,廣東 佛山 528000)
當前物聯(lián)網(wǎng)技術(shù)已經(jīng)走進了農(nóng)業(yè)生產(chǎn)實際中,能夠?qū)崿F(xiàn)農(nóng)業(yè)生產(chǎn)中的各類傳感器、控制設(shè)備智慧互聯(lián)互通,以一種可靠、經(jīng)濟、低成本、高安全性的方式構(gòu)建起智能溫室管理系統(tǒng),對溫室內(nèi)的環(huán)境進行監(jiān)測和控制有著巨大的優(yōu)越性,能夠大大減少人力物力投入,有效防范農(nóng)業(yè)生產(chǎn)事故,更好地做到農(nóng)業(yè)精細化生產(chǎn)管理。
溫室大棚的運用有效降低了外界環(huán)境給農(nóng)作物生長帶來的惡劣影響,是提高農(nóng)作物的質(zhì)量和產(chǎn)量的有效途徑。農(nóng)作物的生長過程受環(huán)境影響巨大。當氣溫過高時,農(nóng)作物體內(nèi)的酶活性降低,其光合作用、呼吸作用將受阻,嚴重時會出現(xiàn)灼燒現(xiàn)象;當氣溫過低時,農(nóng)作物代謝速率降低,甚至出現(xiàn)凍傷現(xiàn)象。當濕度過大時,農(nóng)作物極易發(fā)生病蟲災(zāi)害;當溫度過高、濕度過低時,農(nóng)作物又易脫水、干枯、生長延緩。此外,處于低洼地勢區(qū)域的溫室大棚,遇極端暴雨天氣時,容易受澇被淹,長期的水浸泡會導(dǎo)致農(nóng)作物因缺氧而爛根,產(chǎn)量、質(zhì)量將大打折扣。
本文開發(fā)的智能溫室管理系統(tǒng)能夠?qū)崟r監(jiān)測、控制溫室大棚內(nèi)的環(huán)境溫濕度;同時,在阿里云物聯(lián)網(wǎng)平臺實現(xiàn)對環(huán)境溫濕度的可視化顯示,當溫室大棚遇洪澇災(zāi)害時,可以及時排水除險。具體來講,系統(tǒng)首先實時接收溫濕度傳感器、水位傳感器回傳的環(huán)境數(shù)據(jù);然后通過串口與ESP8266模塊通信,按照MQTT物聯(lián)網(wǎng)通信協(xié)議,在WiFi局域網(wǎng)環(huán)境下將環(huán)境數(shù)據(jù)上傳至阿里云云端;最后阿里云云端將對這些數(shù)據(jù)進行實時處理與顯示。在溫濕度數(shù)據(jù)超過或低于閾值時,系統(tǒng)控制電機、噴水器進行作業(yè),保持室內(nèi)溫濕度穩(wěn)定;出現(xiàn)洪澇災(zāi)害時,電機可以及時排水除澇。
系統(tǒng)總體設(shè)計框圖如圖1所示。單片機通過串口獲取DTH11溫濕度傳感器采集到的大棚環(huán)境溫度、濕度數(shù)據(jù),然后將數(shù)據(jù)進行濾波處理、消除干擾,再通過串口將處理好的的數(shù)據(jù)包傳輸?shù)絅odeMCU。NodeMCU在WiFi局域網(wǎng)的覆蓋下,通過MQTT物聯(lián)網(wǎng)協(xié)議,將數(shù)據(jù)打包上傳到阿里云。阿里云能夠?qū)崟r顯示大棚室內(nèi)溫度、濕度數(shù)據(jù),實現(xiàn)數(shù)據(jù)的可視化。
圖1 系統(tǒng)總體設(shè)計框圖
如果大棚內(nèi)的溫度、濕度出現(xiàn)波動,通風電機、熱風機、灑水器將執(zhí)行已經(jīng)設(shè)定的PID控制算法動作,維持室內(nèi)溫濕度值處于一個穩(wěn)定區(qū)間。如果水位高度傳感器監(jiān)測到大棚室內(nèi)地面水位高度超過閾值,將判斷大棚受淹,立即啟動抽水泵工作。一旦溫度、濕度、大棚地面水位高度任一數(shù)值超過閾值,系統(tǒng)都將自動上報阿里云報警中心及釘釘工作群,實現(xiàn)雙重預(yù)警。
通信模塊采用的是NodeMCU,它具有PWM、IC、ADC等功能。NodeMCU核心為ESP-12F,但亦可作為單片機控制使用。在本系統(tǒng)中,其通過串口與單片機通信,作為通信模塊將單片機傳送的傳感器采集到的數(shù)據(jù)發(fā)送至阿里云物聯(lián)網(wǎng)平臺。
DHT11溫濕度傳感器的工作原理是通過電阻的變化來測量環(huán)境濕度和NTC元件測量環(huán)境溫度,最終通過數(shù)字信號輸出,將溫濕度值傳遞至單片機。
水位傳感器是通過自身一系列暴露的平行導(dǎo)線線跡測量水量的大小,繼而判斷水位高低,將數(shù)字信號轉(zhuǎn)換成模擬信號傳輸?shù)絾纹瑱C。
為了提高數(shù)據(jù)的平滑度、降低干擾的影響,系統(tǒng)采用去極值加權(quán)滑動平均濾波算法對各個傳感器采集到的數(shù)據(jù)進行處理。算法流程如圖2所示,其中為隊列的長度,為加權(quán)系數(shù)。傳感器每采集到一個新的數(shù)據(jù),便會插入到原始數(shù)據(jù)隊列的隊尾,使隊尾的數(shù)據(jù)為最新,隊首的數(shù)據(jù)為最舊;然后去掉隊列中的最大值和最小值,得到一組新的數(shù)據(jù);最后根據(jù)預(yù)先設(shè)定的加權(quán)系數(shù)表,計算出這組數(shù)據(jù)的加權(quán)平均數(shù)。該濾波算法的優(yōu)點如下:
圖2 去極值加權(quán)滑動平均濾波算法流程
(1)每次計算出濾波值后,不會立即丟棄過去所有的采樣數(shù)據(jù),而是等到下次濾波時,與最新的數(shù)據(jù)一起計算濾波值,提高了數(shù)據(jù)更新速度。
(2)對原始數(shù)據(jù)進行去極值處理,能夠有效消除由于脈沖干擾所引起的偏差。
溫濕度傳感器通過串口向單片機發(fā)送采集到的實時環(huán)境溫濕度數(shù)據(jù),單片機每0.5 s讀取一次傳感器數(shù)據(jù),然后通過濾波程序?qū)υ紨?shù)據(jù)進行濾波,得到誤差較小的數(shù)據(jù),降低干擾的影響。隨后,單片機通過串口向NodeMCU通信模塊發(fā)送處理后的溫濕度數(shù)據(jù)。在WiFi局域網(wǎng)條件下,通過MQTT協(xié)議,NodeMCU將溫濕度數(shù)據(jù)發(fā)送到阿里云物聯(lián)網(wǎng)平臺,阿里云物聯(lián)網(wǎng)平臺實時將數(shù)據(jù)繪制成曲線,實現(xiàn)數(shù)據(jù)可視化,如圖3和圖4所示。
圖3 溫度歷史數(shù)據(jù)曲線
圖4 濕度歷史數(shù)據(jù)曲線
NodeMCU使用Arduino IDE的開發(fā)環(huán)境進行開發(fā),通過調(diào)用函數(shù)庫來實現(xiàn)MQTT協(xié)議的使用。具體而言,MQTT協(xié)議的工作流程先是由發(fā)布方(Publisher)發(fā)送信息到Broker,即MQTT服務(wù)器;服務(wù)器接收消息后,篩查訂閱方符合的消息需求,將消息推送到訂閱方。MQTT服務(wù)器信息的配置代碼如下,其中MQTT_POST為MQTT通信協(xié)議中連接服務(wù)器的端口號。
當室內(nèi)環(huán)境溫度、濕度、地面水位高度中的一個或多個數(shù)據(jù)超過設(shè)定警戒值的情況下,平臺將啟動觸發(fā)機制,自動向報警中心發(fā)出預(yù)警,并通過釘釘群聊機器人在釘釘?shù)墓ぷ魅喊l(fā)出報警,提示管理人員盡快排除問題;管理人員排查完畢后需向報警中心反饋處理結(jié)果,或是排查出其他未可歸類原因并選擇作“忽略處理”,否則該預(yù)警將一直提示為“未處理”狀態(tài),管理人員上報的處理結(jié)果將一直保存在數(shù)據(jù)中心,做好信息備案處理,方便后期管理人員隨時查閱,同時也為農(nóng)業(yè)生產(chǎn)提供有力的安全保障。圖5和圖6分別是報警結(jié)果及處理意見欄界面圖和釘釘群聊自動發(fā)送報警顯示圖。
圖5 報警結(jié)果及處理意見欄界面圖
圖6 釘釘群聊自動發(fā)送報警顯示圖
大棚的熱量來源主要是太陽光的輻射,即大棚溫度的控制主要依靠控制大棚受到的光照強度,但如果僅靠控制光照強度仍然無法有效控制大棚溫度,則需要額外采用熱風機和通風機來參與控制。若大棚的實際溫度小于期望溫度,則單片機控制熱風機向大棚內(nèi)輸送熱風,升高大棚溫度;反之則控制通風機運轉(zhuǎn),通過自然通風來降低大棚溫度??刂拼笈餄穸葎t采用通風機和灑水器作為執(zhí)行器。若大棚的實際濕度小于期望濕度,則單片機控制灑水器向大棚內(nèi)噴灑水霧,增加大棚濕度;反之則控制通風機運轉(zhuǎn),通過自然通風來給大棚排濕。由于降溫和降濕的執(zhí)行器都是通風機,所以單片機程序先將降溫控制程序和降濕控制程序的控制量進行疊加,然后再輸出給通風機。
大棚溫濕度控制結(jié)構(gòu)如圖7所示。在每個大棚溫濕度控制周期里,單片機首先分別通過溫度傳感器和濕度傳感器獲得大棚的實際溫度和濕度,然后程序?qū)囟群蜐穸鹊钠谕蹬c實際值分別做差。對于溫度偏差,如果偏差值大于0,即需要對大棚進行增溫,則輸入到通道1的PID控制程序中,反之則輸入到通道2的PID控制程序中;對于濕度偏差,如果偏差值大于0,即需要對大棚進行增濕,則輸入到通道4的PID控制程序中,反之則輸入到通道3的PID控制程序中。PID控制程序根據(jù)水位偏差的當前值和歷史值計算出控制量,控制熱風機、通風機和灑水器的輸出功率,使大棚溫度和濕度的實際值不斷接近期望值。其中,通風機的控制量為通道2和通道3的控制器輸出量的疊加。
圖7 大棚溫濕度控制結(jié)構(gòu)
本系統(tǒng)的防洪功能設(shè)計理念以預(yù)防澇害為主,在溫室大棚地表水面超過預(yù)警值時即開始動作,確保溫室大棚不受淹。一旦水位高度傳感器監(jiān)測到溫室大棚內(nèi)積水量已超過設(shè)定的閾值,大棚自身排水系統(tǒng)出現(xiàn)過負荷工作的情況,阿里云將通過后臺與釘釘工作群同步兩級報警,提示工作人員盡快處理。工作人員在收到報警后,須進行實地或通過其他途徑查明內(nèi)澇情況,制定出應(yīng)對措施,并在阿里云平臺的報警信息上書寫情況報告并留檔,否則該報警信息將提示為“未處理”。與此同時,該區(qū)域內(nèi)的抽水電機開始工作,按照事先設(shè)定的PID工作算法,加快溫室大棚排水,保持溫室大棚地表水位不過紅線。此外,為了防止日常農(nóng)業(yè)生產(chǎn)中消殺、清洗時出現(xiàn)的短暫溫室大棚地表水位超過設(shè)定的閾值情況,只有水位高度傳感器連續(xù)一段時間監(jiān)測到水位超標情況下,電機抽水機制才觸發(fā)工作。
圖8為大棚地表水位控制結(jié)構(gòu)。在每個大棚地表水位控制周期里,單片機首先通過通信總線獲取水位傳感器測得的地表實際水位,然后程序?qū)⑵谕缓蛯嶋H水位做差,輸入到PID控制程序中。PID控制程序根據(jù)水位偏差的當前值和歷史值計算出控制量,控制抽水泵的輸入電壓,進而控制抽水流速,使大棚地表水位的實際值不斷地接近期望值。
圖8 大棚地表水位控制結(jié)構(gòu)
為迎合智慧農(nóng)業(yè)的時代發(fā)展大潮,結(jié)合農(nóng)業(yè)生產(chǎn)中的實際情況,本文設(shè)計了一種智能溫室大棚管理系統(tǒng)。本系統(tǒng)運用物聯(lián)網(wǎng)技術(shù),借助WiFi局域網(wǎng)的低成本、高可靠性的通信手段,將大棚溫濕度數(shù)值實時上傳到阿里云端并實現(xiàn)了數(shù)據(jù)可視化,方便工作人員實時查看。本系統(tǒng)設(shè)計了控制PID算法,大棚的溫濕度受外界擾動時,能夠通過灑水器、通風機、熱風機將大棚的溫濕度穩(wěn)定在一個適宜農(nóng)作物生長的區(qū)間。遇極端天氣發(fā)生洪澇災(zāi)害時,系統(tǒng)的防洪功能會自動響應(yīng)、及時排水,防患于未然。本系統(tǒng)能夠?qū)崿F(xiàn)對農(nóng)業(yè)溫室大棚生產(chǎn)的精細化、智慧化管理,減少傳統(tǒng)農(nóng)業(yè)生產(chǎn)中的人力物力投入,降低農(nóng)業(yè)生產(chǎn)成本,為農(nóng)業(yè)生產(chǎn)增產(chǎn)增質(zhì)。