王瀟楓,駱邵文,劉潤琪,楊文昌,程新玥
(武漢理工大學信息工程學院,湖北武漢,430070)
現代通信技術發展迅速,利用互聯網和自動化技術實現作物栽培智能化已成為農業發展的必然趨勢。隨著人們對室內植物養護的重視程度加深,相應智能化產品也隨之出現,如印度的Saini S, Kumari P[1]等人通過濕度傳感器與光照傳感器與花盆相結合,保證了植物生長所需的水量與光照,實現了對植物的實時養護。國內也有許多智能植物養護系統的相關研究,如湖南農業大學的戴師[2]等人實現了遠程監控植物的濕度并計算需水量,還可以遠程澆水。在物聯網的浪潮下,植物養護有著光明的前景。當前國內市場重點較多的偏向于對數據的監測而忽視了對數據的處理和分析。本設計基于國內相關研究,加入對采樣數據的分析和處理,致力于改善植物生長環境以獲得更健康的植株。
本系統通過傳感器監測植物種植區的溫濕度與光照強度,將采集到的數據傳輸至單片機,所測數據通過WiFi模塊實時顯示在手機客戶端,客戶端比對傳輸數據和植物理想生長環境指標后為用戶提供反饋建議。
具體功能實現的結構框圖如圖1所示,溫濕度傳感器模塊DHT11及光照強度傳感器模塊BH1750以實現對植物生長環境的監控。硬件系統通過UART和IIC協議獲取數據,STM32控制WiFi模塊ESP8266實現數據無線傳輸。硬件系統將各模塊數據發送至手機客戶端。軟件系統通過TCP協議獲取傳輸數據,使用Android Studio設計的安卓APP可以將所得數據顯示在主界面。用戶可以實時監測植物生長處的溫濕度與光照強度。客戶端根據植物適宜的生長環境進行分析運算,提供養護建議供用戶參考。

圖1 系統結構框圖
本系統硬件部分通過傳感器模塊進行溫濕度與光照數據的獲取,再通過WiFi模塊進行數據的傳輸。軟件部分在Android App搭載TCP服務器,實現可靠的數據傳輸與顯示功能,為用戶監護植物生長提供便利,比對植物生長參數與理想環境參數并提供反饋意見。用戶還可通過軟件遠程為植物補光。
如圖2所示,STM32所連溫濕度傳感器、光照傳感器、WiFi模塊以及補光裝置搭載在格架上,格架裝配了遮陽網和防雨罩以便用戶減少植株受光程度并能起到擋雨作用。

圖2 系統實物展示圖
2.1.1 系統硬件電路圖
WiFi模塊使用串口USART3完成與單片機的通訊,USART3_RX對應PB11連接ESP8266的TXD,USART3_TX對應PB10連接RXD。溫濕度傳感器DHT11通過GPIO口PC5向單片機傳輸溫濕度數據。光照傳感器BH1750通過IIC協議傳輸數據,時鐘線SCL連接PB6,數據線SDA連接PB7。
2.1.2 數據無線傳輸功能
數據無線傳輸通過STM32與WiFi模塊ESP8266相連實現。該模塊可搭載軟件應用,或利用其他應用處理器裝載Wi-Fi網絡功能。

圖3 系統硬件電路圖
ESP8266模塊通過AT指令集完成配置[3]。用“AT+CWMODE=1”指令將ESP8266模塊配置為station模式,用“AT+RST”指令讓 WiFi模塊重啟,用“AT+CIPMUX”指令設定為單路連接方式,用“AT+CWJAP”指令讓模塊連接路由,用“AT+CIPSTART”指令建立 TCP連接,“AT+CIPMODE”與“AT+CIPSEND”指令實現WiFi模塊在透傳模式下發送數據[4]。
2.1.3 溫濕度數據獲取功能
本系統選用數字溫濕度復合傳感器DHT11模塊測量溫濕度,該溫濕度傳感器可輸出校準后的數字信號。
DHT11的數據格式:8bit濕度整數數據+8bit濕度小數數據+8bi溫度整數數據+8bit溫度小數數據+8bit校驗和,數據傳送正確時校驗和數據等于“8bit濕度整數數據+8bit濕度小數數據+8bi溫度整數數據+8bit溫度小數數據”所得結果的末8位[5]。
2.1.4 光照強度數據獲取功能
該系統選用BH1750模塊作為測量光照強度的傳感器,輸入光范圍1-65535lx。BH1750通過IIC實現通訊,IIC通信是由時鐘線(SCL)和數據線(SDA)組成。BH1750有5個引腳,其中VCC腳為電壓源正極;SCL為IIC時鐘線,是時鐘輸入引腳,其時鐘信號由MCU輸出;SDA為IIC數據線,為雙向IO口,用于傳輸數據;ADDR為IIC地址線,當接不同的源時地址線對應器件地址不同,ADDR接GND時地址為0100011,ADDR接VCC時器件為1011100;GND為接地引腳。
時鐘線輸出方波脈沖,數據線傳輸“1”或者“0”數據,連續傳送8次,組成一個8位的二進制數即一個字節的數據。時鐘信號由STM32引腳輸出,數據線實現BH1750與STM32的雙向傳輸。STM32通過預設的器件地址和讀寫位判斷組成字節數據。在BH1750發送應答位后STM32開始發送或接收數據[6]。
2.1.5 STM32功能
STM32系列是專為高性能要求、低成本、低功耗的嵌入式應用設計的ARM內核。具有極高的性能,豐富的外設,較低功耗以及全面的技術文檔。本設計調用了STM32的外部中斷、時鐘、I2C總線、GPIO、TIM定時器、USART等硬件設施。
STM32F103xB增強型系列使用高性能的ARM? Cortex?-M3 32位的RISC內核,工作頻率為72MHz,內置高速存儲器(高達128K字節的閃存和20K字節的SRAM),豐富的增強I/O端口和聯接到兩條APB總線的外設。所有型號的器件都包含2個12位的ADC、3個通用16位定時器和1個PWM定時器,還包含標準和先進的通信接口:多達2個I2C接口和SPI接口、3個USART接口、一個USB接口和一個CAN接口[7]。
2.2.1 通信功能
TCP協議提供面向連接的可靠服務。目前的TCP/IP協議族中的主流socket類型為使用TCP協議的流套接字以及使用UDP協議的數據報套接字。
Java語言的ServerSocket 類監聽客戶端的連接請求,并創建Socket 實例[8]。該設計中APP 建立通信終端,等待客戶端連接。TCP 連接的建立步驟如下。
①創建ServerSocket 對象,綁定并監聽端口:
ServerSocket serversocket=new ServerSocket(8080);
②獲取本機IP 地址供客戶端建立連接:
int ipAddress=wifiInfo.getIpAddress();
③啟動服務端監聽線程:
serversocket_thread.start();
④建立連接后通過輸出輸入流執行讀寫:
inputstream=clicksSocket.getInputStream();
outputStream=clicksSocket.getOutputStream();
⑤關閉相關資源。
2.2.2 Android客戶端功能
用戶客戶端APP界面開發主要是利用Android Studio[9]進行開發。在Android Studio APP中,用戶界面上的所有的元素全都為View 和ViewGroup對象構成。View是使使用的用戶能夠與之交互的一個對象。ViewGroup則是用來存儲其他View和ViewGroup對象的布局容器。
Activity是一個人機交互的程序,連接人和機器的操作,用法相當于shell,在其中寫上Java代碼,從而完成想要實現的功能。activity_main.xml是Android界面的顯示視圖,界面中所有的配置控件都能夠在這里進行設計。AndroidManifest.xml是主配置文件,用來配置每個組件的訪問權限。R.java是android_main.xml里控件的id號,用來在MainActivity里通過id來確定這個控件,從而做出功能處理。app:通常工程里的各個組成部分放在這個目錄中,其中res文件中存放一些圖片、layout、values等資源文件。
在頁面設計上主要使用TextView 和EditView。在android_main.xml中為TextView設置組件id,通過id我們可以在工程代碼中使用方法findViewById()獲取到對應對象,然后進行相關屬性的設置。
在接收信息轉遞中,使用Handler 進行信息傳遞。Handler主要用來接收子線程發送的數據, 根據發送的數據配合主線程更新UI并和UI主線程交互。用Handler發送信息,為了防止在UI主線程中處理消息導致其他處理工作被影響,因此在Handler的線程中來接收處理該消息。在Android App 搭載TCP服務器,實現可靠的數據傳輸與顯示功能,為用戶監護植物生長提供便利。
2.3.1 植物養護建議功能
客戶端根據對所測環境溫濕度和光照數據與用戶植物理想生長環境進行比對分析,向用戶提出關于澆水的頻率、擺放位置的選取等實用性較強的植物養護建議。
如圖4所示,手機客戶端可以顯示植物當前生長環境的相關狀態并給出該植物的生長建議,用戶可根據該建議及時做出改進措.施,為植物構建良好的生長環境。

圖4 app植物養護建議圖
本設計選取當下市場上較為常見的部分綠植,如仙人掌、綠蘿、多肉植物、文竹等等,在數據庫中導入植物適宜的生長環境數值即光照強度,溫濕度以及養護建議等等。
如圖5所示,通過選擇植物種類,客戶端可以修改植物生長的適宜的光照強度和溫濕度范圍,并提供對應的養護建議。
2.3.2 客戶端APP控制功能
當客戶端APP反饋植物光照偏弱時,用戶可以用APP控制補光裝置的開啟,補充光照。客戶端通過WiFi模塊遠程控制STM32打開補光裝置,實物圖如圖6所示。
本系統實現了數據的采集與無線傳輸、客戶端顯示以及數據分析反饋等多個功能。實時監測植物的生長環境并提供養護建議,方便用戶及時做出調整,確保植物處于較為健康的狀態。
該系統利用較低的成本實現對植物生長環境的監控與信息反饋,不僅可以應用到室內的植物養植上,還可以應用到大棚種植中。通過對該系統進行進一步拓展就可以實現對更多種類植物的實時監督,提高植物存活率。相信在當今這個物聯網時代,植物養護水平會得到進一步的發展。

圖6 補光裝置開啟實物圖