胡建濤,陶表鑫,陳子涵,李仲宇
(東南大學 成賢學院,江蘇 南京 210000)
全球智能化農業發展迅速,尤其在發展中國家。智慧農業市場潛力巨大,正處于快速擴張階段。雖然不同地區的推廣程度有差異,市場競爭格局較為分散,但是細分市場正在穩健增長。基于STM32的智慧農業系統能夠更加高效和科學地管理農業大棚,實現實時監控和快速響應。
硬件部分的設計,本系統采用了STM32單片機作為核心控制芯片,有效整合了數據采集模塊、設備管理模塊和數據展示模塊。終端數據采集系統用STM32單片機作為控制核心,通過各類傳感器實時采集大棚的溫濕度、CO2濃度、光照強度等信息。云平臺監測中心與終端采集系統建立連接并實現數據傳輸[1]。
系統軟件設計,基于Keil5進行編程,其中含有數據采集程序、智能控制程序。基于阿里云聯網平臺并配置云智能App實現數據實時顯示及遠程控制等。此外,該監測系統利用Arduino 控制ESP32-CAM和OV2640,并通過互聯網進行遠程查看。系統整體設計流程如圖1所示。

圖1 系統整體設計流程
2.1.1 溫濕度采集模塊
本系統采用DHT11類型的數字溫濕度感應器。DHT11是一種集成了已校準數字信號輸出的溫度和濕度傳感器,能夠直接與單片機連接,通過單總線協議與單片機進行數據交換。溫濕度傳感器以其成本低、性能穩定、響應快速、抗干擾性強、數字化輸出和校準性能高而受到青睞[2]。
2.1.2 光照強度模塊
在監測光照強度方面,系統采用了BH1750數字光感應器。BH1750可以直接提供數字信號輸出,簡化了和微控制器等數字設備的接口,能夠檢測環境光強,并通過數字信號輸出結果,能夠提供高精度的光強測量。
2.1.3 CO2濃度監測模塊
系統中的SGP30氣體感測器主要用于室內空氣質量監測,能夠檢測多種氣體的濃度,包括總揮發性有機化合物和CO2濃度。
SGP30具有高靈敏度和精度,能夠檢測到低濃度的氣體。傳感器提供自動基線校準功能,確保長期運行的準確性。
2.2.1 顯示模塊
系統選用OLED屏幕作為其主要的數據展示界面。OLED屏幕與傳統的LCD 顯示不同,OLED 可以自發光,所以不需要背光燈,同時具有更低的功耗。OLED 顯示屏還擁有非常高的對比度與極高的反應速度,內部的驅動芯片為SSD1306,通信方式為IIC。
2.2.2 監控模塊
本系統使用的是一種基于ESP32-CAM芯片的無線監控系統,該系統通過結合ESP32-CAM的Wi-Fi和OV2640高清攝像頭、Blynk物聯網App,不僅實現了遠程監控,而且在同一互聯網內實現了高速數據傳輸,顯著提升了特定環境下視頻畫面的質量和穩定性[3]。取得自己的公網IP之后,再綁定ESP32-CAM芯片作為系統的核心,使用OV2640攝像頭進行實時視頻監控,將捕獲的圖像數據傳送到ESP32-CAM芯片處理后,再通過Blynk物聯網App訪問已綁定設備的視頻流IP并顯示。如圖2所示是由ESP32-CAM攝像頭拍攝的圖片。

圖2 由ESP32-CAM攝像頭拍攝的圖片
在 Arduino IDE 中為ESP32 -CAM設定好Web Server。服務器提供了一個可以通過網絡訪問的接口,用于展示攝像頭捕獲的圖像信息。Web Server 將在局域網內的某個IP地址和端口上運行。確保知道這個地址和端口,因為需要將它們映射到公網 IP 地址。在路由器上設置端口轉發,將外部訪問到公網 IP 上的特定端口轉發到ESP32 -CAM的局域網 IP 地址和端口上。這樣任何發往公網 IP 特定端口的請求都會被轉發到 ESP32-CAM中,在 DDNS 服務上配置域名,指向公網 IP 地址。當公網 IP 地址變化時,DDNS 服務會自動更新。完成以上設置,就可以通過域名和公網端口來訪問ESP32-CAM實現遠程監控,工作過程如圖3所示。

圖3 ESP32-CAM工作過程
水泵、風機、閥門和蜂鳴器均由繼電器控制,在前面所監測的數據與人為設定的閾值不相等時,由STM32自動控制繼電器,再由繼電器控制各類設施工作。水泵和風機由繼電器控制啟動與停止;閥門是由舵機模擬控制;蜂鳴器采用電磁式蜂鳴器,在監測設備檢測到數值與人為設定值不相符時,蜂鳴器觸發系統警報,實時反饋給管理者讓其能夠有針對性進行相應的調控對策,以促進農作物的最優化生長[4]。
本系統在Keil5環境下開發了底層控制軟件,覆蓋數據收集和智能控制等多個功能模塊。同時在Arduino的開發環境下控制監視系統。同時在生活物聯網平臺下搭建上位機,主要包括數據實時監測、數據處理、數據反饋及遠程控制等。
MQTT協議是主題訂閱與發布的協議,當前設備是應用MQTT協議與阿里云平臺進行通信。MQTT是一個針對物聯網場景專門設計的通信協議,使用輕量級的發布/訂閱方式來傳輸消息。針對低帶寬和有限的計算資源進行優化,確保在各種物聯網應用場景中都能提供高效的服務[5]。這種基于消息隊列的協議運用發布/訂閱模型,實現一對多的消息傳遞,有效地減少了應用程序之間的相互依賴,相較于其他協議,其開發過程更為簡潔。本次設備采用的ESP8266就具備TCP協議棧,能夠建立TCP連接,所以,配合STM32代碼里封裝的MQTT協議,就可以與阿里云平臺完成通信。MQTT連接需要填寫用戶ID、設備ID、設備密碼等信息才能登錄。MQTT協議登錄的這3個參數,一般稱為設備三元組。
本系統利用MQTT協議連接阿里云服務器,智慧農業大棚設備通過 ESP-01S對服務器的主題進行訂閱,客戶端也對相同的主題進行訂閱,當有一方發布消息時,訂閱主題的客戶端均可收到消息,通過對消息的編碼與解析區分不同的命令消息。
激活系統硬件后,安裝在大棚內的傳感器開始監控空氣和土壤的溫度、濕度以及CO2濃度等環境參數。并通過ESP-01S通信模塊將環境監測數據上傳給阿里云平臺。上傳成功后,用戶可以打開云智能App或Web端查看監測到的大棚內環境參數信息,手機端云智能App界面如圖4所示。電腦端展示界面如圖5所示。網頁端展示界面如圖6所示。

圖4 手機端云智能App界面

圖5 電腦端展示界面

圖6 網頁端展示界面
采集到的空氣的溫濕度、光照強度和CO2濃度、土壤濕度等數據還可以通過OLED屏幕展示。OLED屏幕顯示界面如圖7所示。

圖7 OLED屏幕顯示界面
此外,用戶可通過客戶端進行底層設備的控制。該系統能夠對監測到的數據和用戶設定的閾值進行比較。若數據超過預定閾值,系統會立即向用戶發送預警信號。這樣用戶可以及時了解溫室內的環境變化,并迅速采取相應措施。同時,該系統還具備自動控制功能,能夠操作相關的硬件設備,以調整溫室內的生長環境,有利于植物生長。測試結果表明,設備可以達到預期效果。
本系統實現的功能如下。
數據采集方面:通過硬件系統中的各類傳感器模塊進行數據采集,將數據傳送給單片機。遠程控制方面:通過云智能App或者Web端對底層硬件進行控制。實時監控方面:采集的數據可在OLED屏幕上展示,也可在App上展示。用戶可以清晰獲知參數在各時間段的變化。
此系統通過多種傳感器模塊持續追蹤溫室內的環境參數,隨后通過通信模塊將這些數據發送到云端服務器。后臺管理系統分析并處理接收到的環境監測數據,并且為用戶提供數據的可視化展示,根據這些數據對大棚內的各種硬件設施進行管理和控制,使其更加“智慧”。