毛敏



摘 要: 為了遠程實時監測農業生產數據的目的,采用網絡模塊W5100、數字溫濕度傳感器DHT11、光照傳感器BH1750FVI、土壤濕度傳感器,以Arduino Uno微處理器和虛擬儀器Labview 為平臺設計出遠程實時農業監測系統。通過試驗,該系統2秒鐘可給出現場實時監測數據,測量結果隨著環境參數的改變而改變,適用于需要遠程實時農業監測的場合。
關鍵詞: W5100; 傳感器; Labview; Arduino
中圖分類號: TP311
文獻標志碼: A
文章編號:1007-757X(2019)06-0035-03
Abstract: In order to remotely monitor agricultural production data in real time, the network module W5100, digital temperature and humidity sensor DHT11, illumination sensor BH1750FVI and soil humidity sensor are used to design real-time agricultural monitoring system based on Arduino UNO microprocessor and virtual instrument Labview. Through experiments, the system can give the real-time monitoring data within 2 seconds, and the measurement result changes with the change of environment parameters. It is suitable for the situation that needs the remotely real-time agriculture monitoring.
Key words: W5100; Sensors; Labview; Arduino
0?引言
智能農業的核心問題是對農業信息的獲取、對所獲信息的管理、經信息分析做出的決策、由決策而決定的具體實施方案。而對農業信息的獲取是智能農業的起點,是非常關鍵的,如果無法實時地獲取農業信息,就無法建造真正的智能農業,所以建立一個實用、可靠的農業檢測系統非常必要。
隨著通信、計算機、傳感器技術的發展,將物聯網應用到農業監測系統中是目前的發展趨勢,它將采集到的溫度、濕度、光照強度、土壤水分等信息進行處理[1-2],為農業生產的在各個時期的精準管理提供信息支出。
本文設計了一種基于Arduino和Labview的遠程智能農業監測系統,可以對農作物生長環境參數實時采集,數據采集終端設備采用Arduino作為控制核心,上位機軟件采用Labview,兩者通過網絡模塊W5100進行通信。
1?系統設計
在系統中,Labview[3]編寫的軟件作為上位機,負責讀取由Arduino Uno[4]微處理器發送的溫濕度、光照強度、土壤濕度并進行顯示。
Arduino Uno微處理器作為下位機,通過網絡模塊W5100接收上位機發來的命令,負責接收和判斷命令、采集和傳輸溫度、濕度、光照強度、土壤濕度數據,并將這些數據通過網絡模塊W5100上傳至Labview上位機軟件進行顯示。系統框圖如圖1所示:
1.1?傳感器
1.1.1?DHT11數字溫/濕度傳感器
DHT11數字溫濕度傳感器[5]采用專用的數字模塊采集技術和溫濕度傳感技術,是一款含有已校準數字信號輸出的溫濕度復合傳感器。DHT11傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接,輸出數字信號,具有功耗小、超快響應、抗干擾能力強等優點。
1.1.2?光照傳感器BH1750FVI
光照傳感器BH1750FVI是一個數字環境光傳感器,不區分環境光源,接近于視覺靈敏度的分光特性,可對廣泛的亮度進行1勒克斯的高精度測定,模塊內部包含通信電平轉換,與5V單片機IO直接連接。
1.1.3?土壤濕度傳感器
通過測量兩根探針之間的電阻,來了解土壤中的水分含量。當插入土壤中時,由于土壤中水分含量不同,土壤的電阻值就不同。
1.2?硬件設計
通過網絡模塊W5100[6],實現Arduino Uno 微處理器與Labview的無線連接,溫濕度傳感器DHT11、光照傳感器BH1750FVI、土壤濕度傳感器與Arduino Uno 微處理器構成硬件平臺,溫濕度、光照強度、土壤濕度數據經Arduino Uno 微處理器處理后,通過網絡模塊W5100傳送到上位機,Labview 軟件編寫VI函數,在Labview前面板實時顯示溫濕度、光照強度、土壤濕度數值,實現Labview 軟件與Arduino控制板遠程交互式通信。
1.2.1?Arduino Uno微處理器
Arduino[7-8]是一款便捷靈活、方便上手的開源電子原型平臺,功能強大,適用于讀取溫濕度傳感器信號,可與上位機通訊,制作交互式產品,該系統包括硬件(Arduino開發板) 和軟件(Arduino IDE)兩部分。
1.2.2?虛擬儀器Labview
虛擬儀器Labview[9]有常規儀器的控制面板,采用可視化的圖形編程語言和平臺,在計算機屏幕上建立圖形化的軟面板來替代常規的傳統儀器面板,可節省成本。
Labview為Arduino開發了專門的接口工具包,把這個工具包和Arduino軟件結合起來,通過Labview軟件可實現對Arduino微處理器的控制或交換數據。
W5100是一種多功能的網絡接口芯片,內部集成有以太網控制器,主要應用于高集成、高穩定、高性能和低成本的系統中。
1.2.3?硬件連接
網絡模塊W5100與Arduino Uno控制板連接,W5100配置一個網絡地址:192.168.1.177,通過網線與計算機網卡連接,將計算機的網卡地址配置成192.168.1.175,W5100與計算機組成一個小的局域網,用于網絡數據的發送與接收。
DHT11的信號線接入Arduino Uno板的數字端口2中,電源線接入Arduino Uno板上的+5V電壓端口,地線接入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端口。
1.3?軟件設計
1.3.1?Labview程序設計
Labview編寫的軟件[10]負責讀取Arduino Uno發送的溫濕度、光照強度、土壤濕度值并進行顯示。
1.前面板設計
Labview前面板顯示溫濕度、光照強度、土壤濕度值。前面板如圖2所示。
2.程序框圖設計
采用條件結構+移位寄存器的狀態機來實現Labview上位機主程序,將主程序劃分為5個狀態。0狀態為初始化網絡服務,1狀態為溫度測量,2狀態為濕度測量,3狀態為光照測量,4狀態為水分測量。
在0狀態中,初始化網絡服務,配置網絡地址,如圖3所示:
在1狀態中,讀取溫度數據并顯示,如圖4所示:
在2狀態中,讀取濕度數據并顯示,如圖5所示:
在3狀態中,讀取光照數據并顯示,如圖6所示:
在4狀態中,讀取水分數據并顯示,如圖7所示:
1.3.2?Arduino程序設計
Arduino Uno控制器完成接收和判斷命令、讀取和傳輸溫濕度、光照、土壤濕度數據,并處理成字節數據,通過網絡模塊W5100上傳給上位機。
#include 引入網絡模塊
#include 引入溫度模塊
定義溫度對象;
#define 定義溫度讀取輸出引腳 2
#define 溫度命令字0x10
#define 濕度命令字0x20
#define 水分命令字0x40
#define ?光照命令字0x30
#include 引入以太網網絡模塊
定義網卡的MAC地址;
定義IP地址 ip(192,168,1,177);
定義網絡服務的端口;
定義數據處理函數;
程序初始化(){
網絡接口初始化,設置MAC地址和網絡地址
啟動服務器,開始進行端口偵聽。
}
void 循環檢測()
{
if (有客戶端連接) {
當有客戶端連接進來時 {
if (客戶端連接是否有效) {
一次接收兩個字節數組,第一位命令識別代碼,第二個位命令字
{
讀取命令識別代碼和命令字。
}
對接收到的名字字進行處理。
}
}
處理完成,關閉客戶端連接;
}
}
Void ?讀取溫度(){
讀取溫度,將其存放在變量中
switch (根據讀取的數字進行判斷){
case 溫度讀取正常: break;
case 溫度讀取失敗;
case ?溫度讀取超時:
default:
溫度讀取錯誤。}}
void 處理接收的數據信息(void){
if(命令識別代碼如果為 0x55)
{
switch(命令字){
case 溫度命令字:
讀取溫度;
break;
case 濕度命令字: 讀取濕度
break;
case 水分命令字: 讀取水分數值
break;
case 光照命令字: ?讀取光照數值
break; }}}
2?測試過程
為了驗證系統的實時性, 啟動電路,可以看到Arduino UNO的TXD、RXD指示燈不斷閃爍, 連續采集溫濕度、光照、土壤濕度數據,通過網絡模塊W5100將采集到的數據傳輸給Labview,2秒后在Labview的前面板(圖2所示)顯示測試結果。
繼續對DHT11數字溫濕度傳感器增加溫度和濕度、對光照傳感器增加照度、對土壤增加水分,從前面板可以看到:前面板顯示數值持續增大滿足實時顯示要求。如圖8所示。
3?總結
在本系統中,Arduino Uno微處理器便捷靈活,具有豐富的接口,編程簡單;虛擬儀器Labview設有常規儀器的控制面板,采用可視化的圖形編程語言和平臺,在計算機屏幕上建立圖形化的軟面板來替代常規的傳統儀器面板,實時顯示測量數據,不需要設計專門的顯示電路;網絡模塊實現Labview 軟件與Arduino微處理器遠程交互式通信。
簡單的電路可完成復雜的功能,不需要專門設計顯示電路,使設計成本降低,該系統還具有遠距離測量、反應快、測量精度高、分辨力高的優點。
參考文獻
[1]?彭智洪,趙東堯,蔣益瑩,李帆,楊炎,陸小飛.基于藍牙的溫濕度采集系統設計[J].科技資訊,2017,15(6):7.
[2]?左義海,石振東,王博等.創客從0到1--基于Arduino設計[M]. 北京:北京航空航天大學出版社,2016.
[3]?吳城龍,陳文斌.低功耗無線溫濕度測量系統的設計開發研究[J].資源節約與環保,2016(12):7.
[4]?陳呂洲.Arduino程序設計基礎[M]. 北京:北京航空航天大學出版社,2015.
[5]?王鷂芝,屈薔,趙陽.基于LabVIEW的庫房監測系統設計[J].電子測量技術,2015,38(9):78-81.
[6]?張銀鴻,閔建,莊建,胡磊,李嘉杰.基于以太網的多協議溫濕度采集系統研制[J].核電子學與探測技術,2015,35(5):478-482.
[7]?于崇梓.Arduino開發實戰指南(Labview卷)[M]. 北京: 機械工業出版社,2014.
[8]?修金鵬.Arduino與LabVIEW互動設計[M].北京:清華大學出版社,2014.
[9]?金婕.淺談便攜式溫濕度測量儀的設計[J].科技與企業,2014(19):195.
[10]?畢莉婭.一種高集成溫濕度測量系統的研制[J].化學分析計量,2013,22(4):76-78.
[11]?胡仁喜,高海賓.LABVIEW2010虛擬儀器從入門到精通[M].北京: 機械工業出版社,2013.
(收稿日期: 2018.05.31)