毛敏
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院,陜西 西安 710300)
隨著通信、計算機和傳感器技術(shù)的發(fā)展,將物聯(lián)網(wǎng)技術(shù)應(yīng)用到農(nóng)業(yè)監(jiān)測中是現(xiàn)代農(nóng)業(yè)發(fā)展的趨勢,智能農(nóng)業(yè)的核心問題是對農(nóng)業(yè)信息的獲取、對所獲信息進行分析并做出決策。由決策決定具體實施方案[1-2]。
本文設(shè)計了一種基于Arduino Uno微處理器和Web服務(wù)器的遠程溫室大棚監(jiān)測系統(tǒng)。通過溫濕度、光照和土壤水分等傳感器可以實時采集、分析農(nóng)作物的生長環(huán)境參數(shù)。當測量數(shù)據(jù)超過設(shè)定的閾值時,自動開啟或關(guān)閉控制開關(guān),控制相應(yīng)的指定設(shè)備(加熱、加濕、光照、澆灌設(shè)備等),對溫濕度、光照和土壤濕度進行智能調(diào)節(jié)。
在系統(tǒng)中,Web服務(wù)器(TOMCAT)的后臺程序通過WiFi模塊[3]和Arduino Uno微處理器相連接,向Arduino Uno微處理器發(fā)送采集指令,實現(xiàn)對農(nóng)作物生長環(huán)境的溫度、濕度、光照強度和土壤水分參數(shù)的采集。
Arduino Uno微處理器[4]采集溫度、濕度、光照強度和土壤水分數(shù)據(jù),并把這些數(shù)據(jù)通過WiFi模塊傳輸?shù)絎eb服務(wù)器。當測量數(shù)據(jù)超過設(shè)定的閾值時,Arduino Uno微處理器自動開啟或關(guān)閉控制開關(guān),控制相應(yīng)的指定設(shè)備,對溫濕度、光照和土壤水分進行智能調(diào)節(jié)。
瀏覽器顯示由Web服務(wù)器發(fā)送的溫濕度、光照強度和土壤水分數(shù)據(jù)。用戶可以通過電腦或手機瀏覽器隨時查看現(xiàn)場數(shù)據(jù)。
系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)框圖
1) 數(shù)字溫/濕度傳感器
DHT11數(shù)字溫濕度傳感器[5]采用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),是一款含有已校準數(shù)字信號輸出的溫濕度復(fù)合傳感器。DHT11傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接,輸出數(shù)字信號,具有功耗小、超快響應(yīng)和抗干擾能力強等優(yōu)點。
2) 光照傳感器BH1750FVI
光照傳感器BH1750FVI是一個數(shù)字環(huán)境光傳感器,內(nèi)部包含通信電平轉(zhuǎn)換,與5 V單片機IO直接連接,具有不區(qū)分環(huán)境光源,接近于視覺靈敏度的分光特性,可對廣泛的亮度進行1勒克斯的高精度測定。
3) 土壤水分傳感器
土壤水分傳感器由不銹鋼探針和防水探頭構(gòu)成,可長期埋設(shè)于土壤和堤壩內(nèi)使用,對表層和深層土壤墑情進行在線監(jiān)測。
該傳感器使用簡便,將傳感器插入土壤,土壤中水分含量不同,土壤的電阻值就不同,通過測量兩根探針之間的電阻得到土壤中的水分含量。
通過WiFi模塊,實現(xiàn)Arduino Uno 微處理器與Web服務(wù)器的連接,溫濕度傳感器DHT11、光照傳感器BH1750FVI、土壤水分傳感器和Arduino Uno 微處理器構(gòu)成硬件平臺。
用PC機搭建一個Web服務(wù)器平臺,農(nóng)作物生長環(huán)境的溫濕度、光照強度和土壤濕度等參數(shù)經(jīng)Arduino Uno 微處理器采集后,通過WiFi模塊傳送到Web服務(wù)器。Web服務(wù)器上的JAVA程序?qū)@些數(shù)據(jù)進行分析處理。通過JSP[6]頁面實時顯示溫濕度、光照強度和土壤濕度數(shù)值。當測量數(shù)據(jù)超過設(shè)定閾值時,Arduino Uno 微處理器自動開啟或關(guān)閉控制開關(guān),控制相應(yīng)的指定設(shè)備,對溫濕度、光照和土壤濕度進行智能調(diào)節(jié),實現(xiàn)Web服務(wù)器與Arduino Uno微處理器遠程交互式通信。
1) Arduino Uno微處理器
Arduino Uno微處理器是一款便捷靈活、方便上手的開源電子原型平臺,功能強大,適用于讀取溫濕度傳感器信號,可與上位機通信,制作交互式產(chǎn)品,該系統(tǒng)包括硬件(Arduino開發(fā)板)和軟件(Arduino IDE)兩部分。
2) Web服務(wù)器
Web服務(wù)器在PC機上搭建,TOMCAT作為服務(wù)器軟件,采用JAVA語言編寫后臺程序,使用TCP協(xié)議和Arduino Uno微處理器連接的WiFi模塊進行通信。
Web服務(wù)器后臺程序?qū)rduino Uno微處理器發(fā)送指令來獲取溫室大棚農(nóng)作物生長環(huán)境的數(shù)據(jù),并對這些數(shù)據(jù)進行分析處理,利用Web服務(wù)器上的前臺JSP程序進行溫濕度、光照和土壤濕度數(shù)值顯示。當測量數(shù)據(jù)超過設(shè)定閾值時,Arduino Uno 微處理器自動開啟或關(guān)閉控制開關(guān),控制相應(yīng)的指定設(shè)備,對溫室大棚環(huán)境進行智能調(diào)節(jié)。
3) WiFi模塊
WiFi模塊ESP8266是一款超低功耗的UART-WiFi透傳模塊,擁有業(yè)內(nèi)極富競爭力的封裝尺寸和超低能耗技術(shù),專為移動設(shè)備和物聯(lián)網(wǎng)應(yīng)用設(shè)計,可將用戶的物理設(shè)備連接到 WiFi無線網(wǎng)絡(luò)上,進行互聯(lián)網(wǎng)或局域網(wǎng)通信,實現(xiàn)聯(lián)網(wǎng)功能。
4) 硬件連接
WiFi模塊與Arduino Uno控制板相連接,給WiFi模塊配置一個網(wǎng)絡(luò)地址:192.168.1.177,通過無線網(wǎng)絡(luò)與計算機連接,將計算機的網(wǎng)絡(luò)地址配置成192.168.1.175。WiFi模塊與計算機組成一個小的局域網(wǎng),用于網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送與接收。
DHT11的信號線接入Arduino Uno板的數(shù)字端口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板的數(shù)字端口7中,A0端接入Arduino Uno板的模擬端口A0中,電源線接入Arduino Uno板上的+5 V電壓端口,地線接入Arduino Uno板上的GND端口。
WiFi 室內(nèi)定位算法[7]通常采用基于接收信號強度(received signal strength indication,RSSI)的指紋定位算法,分為兩個階段:
(1) 離線訓(xùn)練階段,將室內(nèi)區(qū)域劃分為網(wǎng)格(間距1~2 m),利用接收設(shè)備對網(wǎng)格采樣點逐個進行采樣,每個網(wǎng)格對應(yīng)一個獨特的指紋。這個指紋可以是單維的也可以是多維的,是接收信息或信號的一個特征或多個特征,通??捎涗浽擖c位置、所獲取的RSSI及AP(access point)地址等,并對指紋數(shù)據(jù)進行處理( 濾波、均值等) ,在大量的已知位置上建立一個細粒度的指紋數(shù)據(jù)庫。
(2) 在線定位階段,用戶持移動設(shè)備在定位區(qū)域移動,實時獲取當前RSSI及AP 地址,將該信息上傳到服務(wù)器進行匹配。
(1)
式中:d為計算所得距離,m;RSSI為接收信號強度;A為發(fā)射端和接收端相隔1 m時的信號強度;n為環(huán)境衰減因子。
采用JAVA程序編寫后臺程序,采用TCP協(xié)議和Arduino Uno微處理器連接的WiFi模塊進行通信,通過發(fā)送指令給Arduino Uno微處理器,來獲取溫濕度、光照強度和土壤濕度數(shù)據(jù)。
采用JAVA語言編寫JSP程序,在瀏覽器上顯示農(nóng)作物環(huán)境參數(shù)實時數(shù)值。
Arduino Uno微處理器[8-9]接收Web服務(wù)器[10]發(fā)送的指令,采集溫濕度、光照和土壤濕度數(shù)據(jù)。當測量數(shù)據(jù)值超過設(shè)定閾值時,Arduino Uno微處理器自動開啟或關(guān)閉控制開關(guān),控制相應(yīng)的指定設(shè)備(加熱、加濕、光照、澆灌設(shè)備等),對農(nóng)作物環(huán)境參數(shù)進行智能調(diào)節(jié)。
系統(tǒng)工作流程如圖2所示。
圖2 系統(tǒng)流程圖
為了驗證系統(tǒng)的實時性,啟動電路,可以看到Arduino Uno的TXD、RXD指示燈不斷閃爍。連續(xù)采集溫濕度、光照和土壤濕度數(shù)據(jù),測試結(jié)果在瀏覽器上顯示,如圖3所示。
圖3 原始測試結(jié)果
繼續(xù)對DHT11數(shù)字溫濕度傳感器增加溫度和濕度,對光照傳感器增加光照度,對土壤增加水分,瀏覽器顯示數(shù)值改變(如圖4所示),滿足實時顯示要求。
圖4 環(huán)境改變后的測試結(jié)果
本文設(shè)計的系統(tǒng)中:Arduino Uno微處理器便捷靈活,具有豐富的接口,編程簡單;Web服務(wù)器配置簡單;JSP程序在計算機屏幕上建立圖形化的軟面板來替代常規(guī)的傳統(tǒng)儀器面板,實時顯示測量數(shù)據(jù);不需要設(shè)計專門的顯示電路,使硬件電路設(shè)計簡單,成本降低;網(wǎng)絡(luò)模塊實現(xiàn)Web服務(wù)器與Arduino Uno微處理器遠程交互式通信。
通過JAVA程序設(shè)計,使簡單的電路完成復(fù)雜的功能,不需要專門設(shè)計顯示電路,系統(tǒng)設(shè)計成本降低。該系統(tǒng)還具有遠距離測量、反應(yīng)快、測量精度高和分辨力高的優(yōu)點。