鄭 雯 , 李承輝 , 王 凱 , 張 博 , 謝徐峰 , 邱子儀 , 滕紅麗
(河南農業大學理學院,河南 鄭州 450002)
草莓營養價值高、果肉鮮美,在我國有很大的市場需求[1]。優質草莓的生長離不開適宜的生長溫度、空氣濕度以及充足的水分,而傳統人工采集環境參數不僅效率低而且無法保證數據的實時性,會影響草莓的質量[2]。基于此,課題組設計了一款低成本、高效益、操作簡單的草莓園區環境感知系統。
該系統利用DHT11溫濕度傳感器和YL-69土壤濕度傳感器實時感知草莓園區環境變化,將采集的數據傳輸至Arduino開發板,使用按鍵調節傳感器感知環境參數的范圍,然后將環境數據和調節參數在LCD上顯示。同時使用I2C串口協議將數據傳輸至ESP8266,再使用無線傳輸的方式將數據傳輸至移動終端。系統總體設計方案如圖1所示。

圖1 系統總體設計圖
DHT11傳感器又稱為數字溫濕度傳感器,是一款電平信號輸出的溫濕度復合傳感器。它使用專有的元器件監測溫濕度,結合模擬信號A/D轉換器將模擬信號轉換為數字信號,保證傳感器能夠有極高的環境變化感知靈敏性以及能夠長時間使用的高質量[3]。傳感器包括一個濕度傳感器和一個NTC測溫元件,具有穩定性高、數據精度高、抗干擾能力強、性價比高等優點[4]。DHT11采用單總線通信方式,采用單根信號線DATA完成數據的雙向傳輸,VDD輸入電壓3.3 V~5.5 V,NC空腳,GND接地引腳。
DHT11與Arduino UNO之間的電路連接非常簡單,課題組在設計該系統時,將DATA接Arduino的D2引腳。DHT11電路連接圖如圖2所示。當數據線長度短于20 m時,可以使用5 kΩ上拉電阻,大于20 m時可根據實際情況使用合適的上拉電阻。

圖2 DHT11電路連接圖
本系統所使用的土壤濕度傳感器為電阻式傳感器,傳感器表面采用特殊的防銹處理,能夠很好地提高傳感器接觸面的導電性、解決傳感器表面生銹的困擾[5]。傳感器由一個土壤探頭和放大電路組成,可以輸出模擬量和數字量。通過可變電阻的大小與土壤探頭獲得的輸出電壓來比較輸出數字量。A/D轉換器中的電位器用于調節土壤濕度的閾值,順時針調節濕度越大,逆時針則越小。
傳感器的處理芯片為電壓比較器LM393芯片。該芯片精度高,在很大程度上避免了由于溫度變化引起電壓過載現象,輸入電路電壓接近接地電壓。土壤濕度傳感器原理圖如圖3所示。

圖3 土壤濕度傳感器原理圖
按鍵開關是一種功能性的電子開關。如圖4所示,輕輕點按開關按鈕即可使開關接通,松手時開關即斷開。

圖4 按鍵圖
系統設置有“顯示”“切換”“+”“-”等4個按鍵,用于顯示閾值界面詳情,切換參數設置,調節草莓園內環境溫度、環境濕度、土壤濕度的閾值范圍。四個按鍵分別連接Arduino的9、10、11、12引腳,接10 kΩ上拉電阻,具體以Arduino的D10口與按鍵(用于加數值)的連接為例,連接圖如圖5所示。

圖5 按鍵與Arduino的連接圖
LCD1602是一款字符型液晶顯示器。字符的顯示由點陣圖實現,每一個點陣由0/1代碼來點亮,同時寫入控制字地址RAW區地址是由三位十六位數字組成(000H~FFFH),每一位字符都有自己的特定十六位地址控制字[6]。該系統采用2行16列顯示模塊。
該顯示器集成了I2C總線接口模塊作為 LCD1602的驅動模塊,使得LCD1602的接線變得更為簡潔方便,只需兩條通信串口線就可以和Arduino通信[7]。LCD1602液晶屏可在控制面板直接供電的情況下,不需要外帶驅動設備就能夠正常運行,此處LCD1602采用4 bit模式以減少與Arduino的聯機。將數據分批傳輸,連接線路時,僅需要連接D4~D7數據端,而將D0~D3數據端懸空。電路原理圖如圖6所示。

圖6 LCD與Arduino連接圖
ESP8266是一款超低功耗的UART-WiFi透傳模塊,其擁有極富競爭力的封裝尺寸和超低能耗技術,專為移動設備和物聯網應用設計,可將用戶的物理設備連接到WiFi無線網絡上,進行互聯網或局域網通信,實現聯網功能[8-9]。
該系統采用的ESP8266串口WiFi模塊共有四個有效引腳,如圖7所示,其余引腳需懸空。其中,TXD是數據發送引腳,RXD是數據接收引腳,可以分別接在Arduino的TX口和RX口,此時Arduino的RX口作為串口數據接收口復用,TX口作為串口數據發送口復用,分別接在WiFi模塊的數據發送口與接收口。

圖7 ESP8266引腳
系統硬件架構完成后,系統軟件所實現的功能主要由傳感器獲取、ESP8266WiFi模塊、LCD顯示器、外圍設備控制等幾個程序模塊組成。程序開始后先進行初始化,完成對Arduino的I/O口、內部寄存器、串行通信的波特率等的初始設置。對于ESP8266WiFi模塊,其初始化過程如下:先對WiFi模塊復位重啟,然后設置成AP工作模式,并啟動多連接,最后設置開啟服務器模式。WiFi模塊的波特率設置為9 600,將其和Arduino串口連接。ESP8266連接網絡程序如下:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
const char * ssid = "strawberry";
const char * password = " strawberry 123";
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("please contect to me and then mange wifiAP ");
Serial.println(ssid);
WiFiManager wifiManager;
wifiManager.autoConnect("AutoConnectAP");
接著進行溫濕度數據的實時采集、顯示和傳輸,同時進行按鍵檢測,通過掃描按鍵是否按下,觸發相應的事件(LCD閾值調節界面顯示、選項切換以及閾值加減四個事件)。若事件被觸發,則系統會執行相應的動作。Arduino將接收到的數據與系統特定的閾值進行比較,若超出設定的閾值范圍便會控制加熱器、除濕風扇、降溫風扇以及水泵,對草莓園環境參數進行相應的調節。若在閾值范圍內則將數據傳輸至服務器,使移動終端可以獲取及顯示草莓園內的實況。系統實時感知和控制草莓園環境部分程序流程圖如圖8所示。

圖8 系統感知與控制部分程序流程圖
移動終端的設計采用的是快捷、開發周期短、兼容性強的微信小程序[10]。小程序被打開后會自動連接服務器,接收從服務器發送過來的信息,并將草莓園區環境數據顯示在首頁。用戶也可以通過點擊遠程控制頁面的按鈕控制草莓園內相應的設備。微信小程序軟件流程圖如圖9所示。

圖9 微信小程序軟件流程圖
課題組設計了一款智能化草莓園環境感知系統,包括硬件搭建及軟件設計,通過對草莓的生產環境進行全方位動態監控,實現了對草莓智能、高效、高質的種植與管理。該系統也存在一些不足,如人機交互體驗較為單一,設備布線并不美觀等。后期可從系統的實用性以及美觀性等方面進行完善,并加大開發力度,將其早日投入大棚的實際應用中。