胡建濤,陶表鑫,陳子涵,李仲宇
(東南大學(xué) 成賢學(xué)院,江蘇 南京 210000)
全球智能化農(nóng)業(yè)發(fā)展迅速,尤其在發(fā)展中國(guó)家。智慧農(nóng)業(yè)市場(chǎng)潛力巨大,正處于快速擴(kuò)張階段。雖然不同地區(qū)的推廣程度有差異,市場(chǎng)競(jìng)爭(zhēng)格局較為分散,但是細(xì)分市場(chǎng)正在穩(wěn)健增長(zhǎng)。基于STM32的智慧農(nóng)業(yè)系統(tǒng)能夠更加高效和科學(xué)地管理農(nóng)業(yè)大棚,實(shí)現(xiàn)實(shí)時(shí)監(jiān)控和快速響應(yīng)。
硬件部分的設(shè)計(jì),本系統(tǒng)采用了STM32單片機(jī)作為核心控制芯片,有效整合了數(shù)據(jù)采集模塊、設(shè)備管理模塊和數(shù)據(jù)展示模塊。終端數(shù)據(jù)采集系統(tǒng)用STM32單片機(jī)作為控制核心,通過(guò)各類傳感器實(shí)時(shí)采集大棚的溫濕度、CO2濃度、光照強(qiáng)度等信息。云平臺(tái)監(jiān)測(cè)中心與終端采集系統(tǒng)建立連接并實(shí)現(xiàn)數(shù)據(jù)傳輸[1]。
系統(tǒng)軟件設(shè)計(jì),基于Keil5進(jìn)行編程,其中含有數(shù)據(jù)采集程序、智能控制程序?;诎⒗镌坡?lián)網(wǎng)平臺(tái)并配置云智能App實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)顯示及遠(yuǎn)程控制等。此外,該監(jiān)測(cè)系統(tǒng)利用Arduino 控制ESP32-CAM和OV2640,并通過(guò)互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程查看。系統(tǒng)整體設(shè)計(jì)流程如圖1所示。
圖1 系統(tǒng)整體設(shè)計(jì)流程
2.1.1 溫濕度采集模塊
本系統(tǒng)采用DHT11類型的數(shù)字溫濕度感應(yīng)器。DHT11是一種集成了已校準(zhǔn)數(shù)字信號(hào)輸出的溫度和濕度傳感器,能夠直接與單片機(jī)連接,通過(guò)單總線協(xié)議與單片機(jī)進(jìn)行數(shù)據(jù)交換。溫濕度傳感器以其成本低、性能穩(wěn)定、響應(yīng)快速、抗干擾性強(qiáng)、數(shù)字化輸出和校準(zhǔn)性能高而受到青睞[2]。
2.1.2 光照強(qiáng)度模塊
在監(jiān)測(cè)光照強(qiáng)度方面,系統(tǒng)采用了BH1750數(shù)字光感應(yīng)器。BH1750可以直接提供數(shù)字信號(hào)輸出,簡(jiǎn)化了和微控制器等數(shù)字設(shè)備的接口,能夠檢測(cè)環(huán)境光強(qiáng),并通過(guò)數(shù)字信號(hào)輸出結(jié)果,能夠提供高精度的光強(qiáng)測(cè)量。
2.1.3 CO2濃度監(jiān)測(cè)模塊
系統(tǒng)中的SGP30氣體感測(cè)器主要用于室內(nèi)空氣質(zhì)量監(jiān)測(cè),能夠檢測(cè)多種氣體的濃度,包括總揮發(fā)性有機(jī)化合物和CO2濃度。
SGP30具有高靈敏度和精度,能夠檢測(cè)到低濃度的氣體。傳感器提供自動(dòng)基線校準(zhǔn)功能,確保長(zhǎng)期運(yùn)行的準(zhǔn)確性。
2.2.1 顯示模塊
系統(tǒng)選用OLED屏幕作為其主要的數(shù)據(jù)展示界面。OLED屏幕與傳統(tǒng)的LCD 顯示不同,OLED 可以自發(fā)光,所以不需要背光燈,同時(shí)具有更低的功耗。OLED 顯示屏還擁有非常高的對(duì)比度與極高的反應(yīng)速度,內(nèi)部的驅(qū)動(dòng)芯片為SSD1306,通信方式為IIC。
2.2.2 監(jiān)控模塊
本系統(tǒng)使用的是一種基于ESP32-CAM芯片的無(wú)線監(jiān)控系統(tǒng),該系統(tǒng)通過(guò)結(jié)合ESP32-CAM的Wi-Fi和OV2640高清攝像頭、Blynk物聯(lián)網(wǎng)App,不僅實(shí)現(xiàn)了遠(yuǎn)程監(jiān)控,而且在同一互聯(lián)網(wǎng)內(nèi)實(shí)現(xiàn)了高速數(shù)據(jù)傳輸,顯著提升了特定環(huán)境下視頻畫(huà)面的質(zhì)量和穩(wěn)定性[3]。取得自己的公網(wǎng)IP之后,再綁定ESP32-CAM芯片作為系統(tǒng)的核心,使用OV2640攝像頭進(jìn)行實(shí)時(shí)視頻監(jiān)控,將捕獲的圖像數(shù)據(jù)傳送到ESP32-CAM芯片處理后,再通過(guò)Blynk物聯(lián)網(wǎng)App訪問(wèn)已綁定設(shè)備的視頻流IP并顯示。如圖2所示是由ESP32-CAM攝像頭拍攝的圖片。
圖2 由ESP32-CAM攝像頭拍攝的圖片
在 Arduino IDE 中為ESP32 -CAM設(shè)定好Web Server。服務(wù)器提供了一個(gè)可以通過(guò)網(wǎng)絡(luò)訪問(wèn)的接口,用于展示攝像頭捕獲的圖像信息。Web Server 將在局域網(wǎng)內(nèi)的某個(gè)IP地址和端口上運(yùn)行。確保知道這個(gè)地址和端口,因?yàn)樾枰獙⑺鼈冇成涞焦W(wǎng) IP 地址。在路由器上設(shè)置端口轉(zhuǎn)發(fā),將外部訪問(wèn)到公網(wǎng) IP 上的特定端口轉(zhuǎn)發(fā)到ESP32 -CAM的局域網(wǎng) IP 地址和端口上。這樣任何發(fā)往公網(wǎng) IP 特定端口的請(qǐng)求都會(huì)被轉(zhuǎn)發(fā)到 ESP32-CAM中,在 DDNS 服務(wù)上配置域名,指向公網(wǎng) IP 地址。當(dāng)公網(wǎng) IP 地址變化時(shí),DDNS 服務(wù)會(huì)自動(dòng)更新。完成以上設(shè)置,就可以通過(guò)域名和公網(wǎng)端口來(lái)訪問(wèn)ESP32-CAM實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,工作過(guò)程如圖3所示。
圖3 ESP32-CAM工作過(guò)程
水泵、風(fēng)機(jī)、閥門(mén)和蜂鳴器均由繼電器控制,在前面所監(jiān)測(cè)的數(shù)據(jù)與人為設(shè)定的閾值不相等時(shí),由STM32自動(dòng)控制繼電器,再由繼電器控制各類設(shè)施工作。水泵和風(fēng)機(jī)由繼電器控制啟動(dòng)與停止;閥門(mén)是由舵機(jī)模擬控制;蜂鳴器采用電磁式蜂鳴器,在監(jiān)測(cè)設(shè)備檢測(cè)到數(shù)值與人為設(shè)定值不相符時(shí),蜂鳴器觸發(fā)系統(tǒng)警報(bào),實(shí)時(shí)反饋給管理者讓其能夠有針對(duì)性進(jìn)行相應(yīng)的調(diào)控對(duì)策,以促進(jìn)農(nóng)作物的最優(yōu)化生長(zhǎng)[4]。
本系統(tǒng)在Keil5環(huán)境下開(kāi)發(fā)了底層控制軟件,覆蓋數(shù)據(jù)收集和智能控制等多個(gè)功能模塊。同時(shí)在Arduino的開(kāi)發(fā)環(huán)境下控制監(jiān)視系統(tǒng)。同時(shí)在生活物聯(lián)網(wǎng)平臺(tái)下搭建上位機(jī),主要包括數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè)、數(shù)據(jù)處理、數(shù)據(jù)反饋及遠(yuǎn)程控制等。
MQTT協(xié)議是主題訂閱與發(fā)布的協(xié)議,當(dāng)前設(shè)備是應(yīng)用MQTT協(xié)議與阿里云平臺(tái)進(jìn)行通信。MQTT是一個(gè)針對(duì)物聯(lián)網(wǎng)場(chǎng)景專門(mén)設(shè)計(jì)的通信協(xié)議,使用輕量級(jí)的發(fā)布/訂閱方式來(lái)傳輸消息。針對(duì)低帶寬和有限的計(jì)算資源進(jìn)行優(yōu)化,確保在各種物聯(lián)網(wǎng)應(yīng)用場(chǎng)景中都能提供高效的服務(wù)[5]。這種基于消息隊(duì)列的協(xié)議運(yùn)用發(fā)布/訂閱模型,實(shí)現(xiàn)一對(duì)多的消息傳遞,有效地減少了應(yīng)用程序之間的相互依賴,相較于其他協(xié)議,其開(kāi)發(fā)過(guò)程更為簡(jiǎn)潔。本次設(shè)備采用的ESP8266就具備TCP協(xié)議棧,能夠建立TCP連接,所以,配合STM32代碼里封裝的MQTT協(xié)議,就可以與阿里云平臺(tái)完成通信。MQTT連接需要填寫(xiě)用戶ID、設(shè)備ID、設(shè)備密碼等信息才能登錄。MQTT協(xié)議登錄的這3個(gè)參數(shù),一般稱為設(shè)備三元組。
本系統(tǒng)利用MQTT協(xié)議連接阿里云服務(wù)器,智慧農(nóng)業(yè)大棚設(shè)備通過(guò) ESP-01S對(duì)服務(wù)器的主題進(jìn)行訂閱,客戶端也對(duì)相同的主題進(jìn)行訂閱,當(dāng)有一方發(fā)布消息時(shí),訂閱主題的客戶端均可收到消息,通過(guò)對(duì)消息的編碼與解析區(qū)分不同的命令消息。
激活系統(tǒng)硬件后,安裝在大棚內(nèi)的傳感器開(kāi)始監(jiān)控空氣和土壤的溫度、濕度以及CO2濃度等環(huán)境參數(shù)。并通過(guò)ESP-01S通信模塊將環(huán)境監(jiān)測(cè)數(shù)據(jù)上傳給阿里云平臺(tái)。上傳成功后,用戶可以打開(kāi)云智能App或Web端查看監(jiān)測(cè)到的大棚內(nèi)環(huán)境參數(shù)信息,手機(jī)端云智能App界面如圖4所示。電腦端展示界面如圖5所示。網(wǎng)頁(yè)端展示界面如圖6所示。
圖4 手機(jī)端云智能App界面
圖5 電腦端展示界面
圖6 網(wǎng)頁(yè)端展示界面
采集到的空氣的溫濕度、光照強(qiáng)度和CO2濃度、土壤濕度等數(shù)據(jù)還可以通過(guò)OLED屏幕展示。OLED屏幕顯示界面如圖7所示。
圖7 OLED屏幕顯示界面
此外,用戶可通過(guò)客戶端進(jìn)行底層設(shè)備的控制。該系統(tǒng)能夠?qū)ΡO(jiān)測(cè)到的數(shù)據(jù)和用戶設(shè)定的閾值進(jìn)行比較。若數(shù)據(jù)超過(guò)預(yù)定閾值,系統(tǒng)會(huì)立即向用戶發(fā)送預(yù)警信號(hào)。這樣用戶可以及時(shí)了解溫室內(nèi)的環(huán)境變化,并迅速采取相應(yīng)措施。同時(shí),該系統(tǒng)還具備自動(dòng)控制功能,能夠操作相關(guān)的硬件設(shè)備,以調(diào)整溫室內(nèi)的生長(zhǎng)環(huán)境,有利于植物生長(zhǎng)。測(cè)試結(jié)果表明,設(shè)備可以達(dá)到預(yù)期效果。
本系統(tǒng)實(shí)現(xiàn)的功能如下。
數(shù)據(jù)采集方面:通過(guò)硬件系統(tǒng)中的各類傳感器模塊進(jìn)行數(shù)據(jù)采集,將數(shù)據(jù)傳送給單片機(jī)。遠(yuǎn)程控制方面:通過(guò)云智能App或者Web端對(duì)底層硬件進(jìn)行控制。實(shí)時(shí)監(jiān)控方面:采集的數(shù)據(jù)可在OLED屏幕上展示,也可在App上展示。用戶可以清晰獲知參數(shù)在各時(shí)間段的變化。
此系統(tǒng)通過(guò)多種傳感器模塊持續(xù)追蹤溫室內(nèi)的環(huán)境參數(shù),隨后通過(guò)通信模塊將這些數(shù)據(jù)發(fā)送到云端服務(wù)器。后臺(tái)管理系統(tǒng)分析并處理接收到的環(huán)境監(jiān)測(cè)數(shù)據(jù),并且為用戶提供數(shù)據(jù)的可視化展示,根據(jù)這些數(shù)據(jù)對(duì)大棚內(nèi)的各種硬件設(shè)施進(jìn)行管理和控制,使其更加“智慧”。