毛敏
(陜西國防工業職業技術學院,陜西 西安 710300)
隨著通信、計算機和傳感器技術的發展,將物聯網技術應用到農業監測中是現代農業發展的趨勢,智能農業的核心問題是對農業信息的獲取、對所獲信息進行分析并做出決策。由決策決定具體實施方案[1-2]。
本文設計了一種基于Arduino Uno微處理器和Web服務器的遠程溫室大棚監測系統。通過溫濕度、光照和土壤水分等傳感器可以實時采集、分析農作物的生長環境參數。當測量數據超過設定的閾值時,自動開啟或關閉控制開關,控制相應的指定設備(加熱、加濕、光照、澆灌設備等),對溫濕度、光照和土壤濕度進行智能調節。
在系統中,Web服務器(TOMCAT)的后臺程序通過WiFi模塊[3]和Arduino Uno微處理器相連接,向Arduino Uno微處理器發送采集指令,實現對農作物生長環境的溫度、濕度、光照強度和土壤水分參數的采集。
Arduino Uno微處理器[4]采集溫度、濕度、光照強度和土壤水分數據,并把這些數據通過WiFi模塊傳輸到Web服務器。當測量數據超過設定的閾值時,Arduino Uno微處理器自動開啟或關閉控制開關,控制相應的指定設備,對溫濕度、光照和土壤水分進行智能調節。
瀏覽器顯示由Web服務器發送的溫濕度、光照強度和土壤水分數據。用戶可以通過電腦或手機瀏覽器隨時查看現場數據。
系統框圖如圖1所示。

圖1 系統框圖
1) 數字溫/濕度傳感器
DHT11數字溫濕度傳感器[5]采用專用的數字模塊采集技術和溫濕度傳感技術,是一款含有已校準數字信號輸出的溫濕度復合傳感器。DHT11傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接,輸出數字信號,具有功耗小、超快響應和抗干擾能力強等優點。
2) 光照傳感器BH1750FVI
光照傳感器BH1750FVI是一個數字環境光傳感器,內部包含通信電平轉換,與5 V單片機IO直接連接,具有不區分環境光源,接近于視覺靈敏度的分光特性,可對廣泛的亮度進行1勒克斯的高精度測定。
3) 土壤水分傳感器
土壤水分傳感器由不銹鋼探針和防水探頭構成,可長期埋設于土壤和堤壩內使用,對表層和深層土壤墑情進行在線監測。
該傳感器使用簡便,將傳感器插入土壤,土壤中水分含量不同,土壤的電阻值就不同,通過測量兩根探針之間的電阻得到土壤中的水分含量。
通過WiFi模塊,實現Arduino Uno 微處理器與Web服務器的連接,溫濕度傳感器DHT11、光照傳感器BH1750FVI、土壤水分傳感器和Arduino Uno 微處理器構成硬件平臺。
用PC機搭建一個Web服務器平臺,農作物生長環境的溫濕度、光照強度和土壤濕度等參數經Arduino Uno 微處理器采集后,通過WiFi模塊傳送到Web服務器。Web服務器上的JAVA程序對這些數據進行分析處理。通過JSP[6]頁面實時顯示溫濕度、光照強度和土壤濕度數值。當測量數據超過設定閾值時,Arduino Uno 微處理器自動開啟或關閉控制開關,控制相應的指定設備,對溫濕度、光照和土壤濕度進行智能調節,實現Web服務器與Arduino Uno微處理器遠程交互式通信。
1) Arduino Uno微處理器
Arduino Uno微處理器是一款便捷靈活、方便上手的開源電子原型平臺,功能強大,適用于讀取溫濕度傳感器信號,可與上位機通信,制作交互式產品,該系統包括硬件(Arduino開發板)和軟件(Arduino IDE)兩部分。
2) Web服務器
Web服務器在PC機上搭建,TOMCAT作為服務器軟件,采用JAVA語言編寫后臺程序,使用TCP協議和Arduino Uno微處理器連接的WiFi模塊進行通信。
Web服務器后臺程序對Arduino Uno微處理器發送指令來獲取溫室大棚農作物生長環境的數據,并對這些數據進行分析處理,利用Web服務器上的前臺JSP程序進行溫濕度、光照和土壤濕度數值顯示。當測量數據超過設定閾值時,Arduino Uno 微處理器自動開啟或關閉控制開關,控制相應的指定設備,對溫室大棚環境進行智能調節。
3) WiFi模塊
WiFi模塊ESP8266是一款超低功耗的UART-WiFi透傳模塊,擁有業內極富競爭力的封裝尺寸和超低能耗技術,專為移動設備和物聯網應用設計,可將用戶的物理設備連接到 WiFi無線網絡上,進行互聯網或局域網通信,實現聯網功能。
4) 硬件連接
WiFi模塊與Arduino Uno控制板相連接,給WiFi模塊配置一個網絡地址:192.168.1.177,通過無線網絡與計算機連接,將計算機的網絡地址配置成192.168.1.175。WiFi模塊與計算機組成一個小的局域網,用于網絡數據的發送與接收。
DHT11的信號線接入Arduino Uno板的數字端口2中,電源線接入Arduino Uno板上的+5 V電壓端口,地線接入Arduino Uno板上的GND端口。
BH1750FVI的SDA端接入Arduino Uno板的模擬端口A4中,SCL端接入Arduino Uno板的模擬端口A5中,電源線接入Arduino Uno板上的+5 V電壓端口,地線接入Arduino Uno板上的GND端口。
土壤濕度傳感器的D0端接入Arduino Uno板的數字端口7中,A0端接入Arduino Uno板的模擬端口A0中,電源線接入Arduino Uno板上的+5 V電壓端口,地線接入Arduino Uno板上的GND端口。
WiFi 室內定位算法[7]通常采用基于接收信號強度(received signal strength indication,RSSI)的指紋定位算法,分為兩個階段:
(1) 離線訓練階段,將室內區域劃分為網格(間距1~2 m),利用接收設備對網格采樣點逐個進行采樣,每個網格對應一個獨特的指紋。這個指紋可以是單維的也可以是多維的,是接收信息或信號的一個特征或多個特征,通常可記錄該點位置、所獲取的RSSI及AP(access point)地址等,并對指紋數據進行處理( 濾波、均值等) ,在大量的已知位置上建立一個細粒度的指紋數據庫。
(2) 在線定位階段,用戶持移動設備在定位區域移動,實時獲取當前RSSI及AP 地址,將該信息上傳到服務器進行匹配。
(1)
式中:d為計算所得距離,m;RSSI為接收信號強度;A為發射端和接收端相隔1 m時的信號強度;n為環境衰減因子。
采用JAVA程序編寫后臺程序,采用TCP協議和Arduino Uno微處理器連接的WiFi模塊進行通信,通過發送指令給Arduino Uno微處理器,來獲取溫濕度、光照強度和土壤濕度數據。
采用JAVA語言編寫JSP程序,在瀏覽器上顯示農作物環境參數實時數值。
Arduino Uno微處理器[8-9]接收Web服務器[10]發送的指令,采集溫濕度、光照和土壤濕度數據。當測量數據值超過設定閾值時,Arduino Uno微處理器自動開啟或關閉控制開關,控制相應的指定設備(加熱、加濕、光照、澆灌設備等),對農作物環境參數進行智能調節。
系統工作流程如圖2所示。

圖2 系統流程圖
為了驗證系統的實時性,啟動電路,可以看到Arduino Uno的TXD、RXD指示燈不斷閃爍。連續采集溫濕度、光照和土壤濕度數據,測試結果在瀏覽器上顯示,如圖3所示。

圖3 原始測試結果
繼續對DHT11數字溫濕度傳感器增加溫度和濕度,對光照傳感器增加光照度,對土壤增加水分,瀏覽器顯示數值改變(如圖4所示),滿足實時顯示要求。

圖4 環境改變后的測試結果
本文設計的系統中:Arduino Uno微處理器便捷靈活,具有豐富的接口,編程簡單;Web服務器配置簡單;JSP程序在計算機屏幕上建立圖形化的軟面板來替代常規的傳統儀器面板,實時顯示測量數據;不需要設計專門的顯示電路,使硬件電路設計簡單,成本降低;網絡模塊實現Web服務器與Arduino Uno微處理器遠程交互式通信。
通過JAVA程序設計,使簡單的電路完成復雜的功能,不需要專門設計顯示電路,系統設計成本降低。該系統還具有遠距離測量、反應快、測量精度高和分辨力高的優點。