《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于開源硬件與虛擬儀器的智能農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計
基于開源硬件與虛擬儀器的智能農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計
2015年電子技術(shù)應(yīng)用第4期
王 凡1,楊 亮2
1.電子科技大學(xué)中山學(xué)院 機電工程學(xué)院,廣東 中山528402; 2.電子科技大學(xué)中山學(xué)院 計算機學(xué)院,廣東 中山528402
摘要: 為了智能化采集農(nóng)作信息,高效利用農(nóng)業(yè)資源及實現(xiàn)智能農(nóng)業(yè),設(shè)計了基于開源硬件的智能農(nóng)業(yè)監(jiān)測系統(tǒng)。系統(tǒng)以開源硬件Arduino為核心控制器,配合光照傳感器、土壤水分傳感器、溫濕度傳感器、二氧化碳傳感器采集農(nóng)作環(huán)境參數(shù),利用ZigBee技術(shù)上傳數(shù)據(jù)至虛擬儀器LabVIEW,實現(xiàn)數(shù)據(jù)在線監(jiān)測。該系統(tǒng)具有性價比高、擴展性強、可更換組網(wǎng)方式等優(yōu)點,有著較強的實踐性和可操作性。
中圖分類號: TP23
文獻標識碼: A
文章編號: 0258-7998(2015)04-0073-04
Design of the intelligent agriculture monitoring system based on open source hardware and virtual instrument
Wang Fan1,Yang Liang2
1.School of Electromechanical Engineering, University of Electronic Science and Technology of China, Zhongshan institute, Zhongshan 528400,China; 2.School of Computer Science, University of Electronic Science and Technology of China, Zhongshan institute, Zhongshan 528400,China
Abstract: The design of intelligent agriculture monitoring system is based on open source hardware. This system collects the environmental information of agriculture intelligently, and uses agricultural resources efficiently. The system use Arduino as the main control board. It got the environmental information from light intensity sensor, soil moisture sensor, temperature and humidity sensors, carbon dioxide sensor. The system realizes the online monitoring by uploading data to the LabVIEW using ZigBee. The system has the advantages of high coat, strong expansion, replaceable networking. The system is easy to implement and operate.
Key words : intelligent agriculture;open source hardware;sensor;virtual instrument;LabVIEW

  

0 引言

  我國是一個農(nóng)業(yè)大國,傳統(tǒng)農(nóng)業(yè)模式多采用粗放式管理,主要依靠個人感知來管理農(nóng)作物周圍的環(huán)境參數(shù),無法做到對影響農(nóng)業(yè)環(huán)境參數(shù)的精確控制,從而很難做到投入產(chǎn)出比的最優(yōu)化[1]。智能農(nóng)業(yè)作為農(nóng)業(yè)科技的最新發(fā)展方向,通過對農(nóng)作信息的智能化采集,并對采集后的信息通過科學(xué)地分析,從而制定出高效集約的可持續(xù)性發(fā)展方式,高效利用農(nóng)業(yè)資源,實現(xiàn)可觀的經(jīng)濟效益。

  信息采集作為智能農(nóng)業(yè)的起點,主要通過對農(nóng)作物生長環(huán)境系統(tǒng)中大氣溫濕度、光照強度、土壤濕度、二氧化碳濃度、土壤pH值等參數(shù)進行測量與匯總,為技術(shù)人員提供分析與決策的依據(jù)。雖然目前的研究主要都是基于無線傳感器網(wǎng)絡(luò)的農(nóng)業(yè)檢測系統(tǒng)[2],但是在應(yīng)用中由于專業(yè)傳感器模塊價格昂貴,導(dǎo)致節(jié)點成本偏高。本文提出一種基于開源硬件的智能農(nóng)業(yè)監(jiān)測系統(tǒng),以高性價比的開源硬件Arduino為核心控制器,采用ZigBee技術(shù)無線連接上位機LabVIEW,實現(xiàn)數(shù)據(jù)的可視化。同時由于Arduino的強擴展性,可以根據(jù)使用需求增加傳感器模塊,以及采用有線串口連接Arduino控制板與上位機。

1 系統(tǒng)硬件組成

  監(jiān)測系統(tǒng)的數(shù)據(jù)采集部分主要使用Arduino作為核心控制器,配合BH1750光照傳感器、YL-69土壤水分傳感器、DHT22溫濕度傳感器以及CO2濃度傳感器采集農(nóng)作物生長環(huán)境參數(shù)后,采用接口擴展板連接Xbee,通過無線(也可采用RS-485總線)與上位機的虛擬儀器Lab-VIEW軟件通信。

  1.1 Arduino控制器

  Arduino作為一個開源的電子平臺,其不僅是一種基于Atmel AVR單片機的控制器,也是包含Arduino IDE以及開源社區(qū)的一個開源系統(tǒng)。Arduino控制器采用了多樣的硬件配置,其中應(yīng)用最為廣泛的Arduino Uno采用ATmega 328作為核心處理器,包括14通道數(shù)字輸入/輸出,其中包括6通道PWM輸出、6通道10 bit ADC模擬輸入/輸出通道,電源電壓主要有5 V和3.3 V[3]。在核心控制板的外圍,有開關(guān)量輸入輸出模塊、各種模擬量傳感器輸入模塊、總線類傳感器的輸入模塊,還有網(wǎng)絡(luò)通信模塊[4]。使用者通過編程與輸入和輸出信號做出各種交互。由于Arduino采用開源協(xié)議,任何人和公司都可以利用開源公布的文檔生產(chǎn)兼容的Arduino控制器。Arduino兼容控制器的低廉價格,受到廣大極客的熱捧。

  1.2 光照傳感器

  BH1750FVI是一種用于兩線式串行總線接口的數(shù)字型光強度傳感器集成電路。其內(nèi)部結(jié)構(gòu)如圖1所示。

001.jpg

  光敏二極管PD的信號通過集成運算放大器將電流轉(zhuǎn)化為電壓,之后通過ADC進行數(shù)模轉(zhuǎn)換為16 bit數(shù)字信號,轉(zhuǎn)換后的數(shù)字信號通過邏輯芯片輸出為I2C信號。BH1750FVI的地址模式分為高位和低位兩種,當ADD接VCC時為高地址模式,當ADD接GND時為低地址模式。

  1.3 土壤水分傳感器

  在監(jiān)測系統(tǒng)中,采用了價格低廉的電阻式水分傳感器。可以根據(jù)使用需要更換為抗電離腐蝕的專用數(shù)字土壤水分傳感器。

002.jpg

  如圖2所示,當傳感器探頭插入土壤中時,由于土壤水分含量影響土壤電阻值的大小,從而影響三極管基極的導(dǎo)通電流的大小?;鶚O電流放大為發(fā)射極電流后經(jīng)下拉電阻轉(zhuǎn)化為電壓形式輸入Arduino控制板。

  1.4 溫濕度傳感器

  本監(jiān)測系統(tǒng)采用DHT22作為溫濕度傳感器,它采用了電容式感濕元件與NTC測溫元件,并集成了一個微型8位單片機。DHT22將在濕度實驗室中校準的系數(shù)存儲在OTP內(nèi)存中,檢測信號需要通過校準系數(shù)進行處理。

  DHT22采用單總線數(shù)據(jù)結(jié)構(gòu)進行通信和同步。每次通信發(fā)送數(shù)據(jù)量為40 bit,其中濕度數(shù)據(jù)為16 bit,溫度數(shù)據(jù)為16 bit,校驗和為8 bit。一般采用高速模式通信,每次通信發(fā)送時間約為5 ms。DHT22在收到Arduino所發(fā)出開始信號后才開始一次溫濕度的測量,平時不會主動收集數(shù)據(jù)。

  1.5 CO2濃度傳感器

  CO2濃度傳感器主要采用了MG-811 CO2探頭,對CO2極為敏感,同時還能排除酒精和CO的干擾。其內(nèi)部結(jié)構(gòu)如圖3所示。

003.jpg

  當傳感器在CO2的環(huán)境中,電極將會發(fā)生如下反應(yīng):

  負極:2Li++CO2+1/2O2+2e-=Li2CO3

  正極:2Na++1/2O2+2e-=Na2O

  總電極反應(yīng):Li2CO3+2Na+=Na2O+2Li++CO2

  傳感器敏感電極與參考電極間的電勢差(EMF)符合能斯特方程:

  EMF=Ec-(RxT)/(2F)ln(P(CO2))

  當探頭內(nèi)部通過外電路提供的電壓加熱時,探頭就相當于一個固體電解質(zhì)電池,其兩端對應(yīng)輸出電壓信號,其值符合能斯特方程。故可將空氣中的CO2以電壓的形式輸出。

  1.6 ZigBee通信模塊

  ZigBee是基于IEEE 802.15.4標準的低功耗個域網(wǎng)協(xié)議。其特點是近距離、自組織、低功耗、相對成本低。ZigBee工作在2.4 GHz、868 MHz和915 MHz頻段上,可靠傳輸距離為75 m以內(nèi),一般室內(nèi)為30 m。ZigBee的網(wǎng)絡(luò)層采用了星型、樹型和網(wǎng)狀網(wǎng)3種網(wǎng)絡(luò)拓撲結(jié)構(gòu),每個ZigBee網(wǎng)絡(luò)最多可以支持65 000個節(jié)點[5],廣泛地使用于自動控制和遠程控制領(lǐng)域。

  在Arduino系統(tǒng)中主要采用的是美國MaxStream公司生產(chǎn)的Xbee模塊。該模塊使用方便,只需將數(shù)據(jù)輸入一個XBee模塊,它就能自動地將數(shù)據(jù)發(fā)送到另一個匹配好的XBee模塊。

  采用XBee擴展板可以將XBee模塊連接至Arduino,USB 適配器則可將XBee模塊通過USB口與計算機連接,從而實現(xiàn)Arduino與計算機的數(shù)據(jù)通信。并可采用串口指令或X-CTU軟件對XBee參數(shù)進行配置。

  1.7 RS-485串口通信模塊

  雖然Arduino與上位機可以采用ZigBee技術(shù)進行無線連接,但是XBee相對其他傳感器模塊來說成本比較高,不適合大規(guī)模使用。Arduino作為開源硬件有著豐富的擴展性,可以根據(jù)使用需求與LabVIEW采用有線串口通信。并且只需要使用LabVIEW Interface for Arduino的庫函數(shù),并不需要了解具體的底層實現(xiàn)。

  RS-485作為串口通信的標準之一,采用平衡傳輸方式。當采用二線制時,可以實現(xiàn)多點雙向通信,總線上最多可接32個設(shè)備,最大傳輸距離約為1 200 m。

  在使用RS-485時,Arduino端主要采用MAX485接口芯片模塊完成RS-485與TTL電平的轉(zhuǎn)換。由于上位機通常只帶有USB接口,可以通過USB/RS-485轉(zhuǎn)換電路,先將USB信號轉(zhuǎn)化為TTL信號,再由TTL信號轉(zhuǎn)化為RS-485信號。

2 虛擬儀器與LabVIEW

  虛擬儀器是采用計算機為控制器,以軟件方式實現(xiàn)數(shù)據(jù)測量的技術(shù)。虛擬儀器將采集的數(shù)據(jù)通過計算機傳輸、分析、處理、存儲后,在虛擬面板顯示測量結(jié)果。即通過編程實現(xiàn)真實儀器的功能,而通過虛擬面板顯示。

  2.1 LabVIEW

  LabVIEW是由美國NI公司開發(fā)的圖形化程序開發(fā)平臺,早期用于自動控制設(shè)計,現(xiàn)已成為成熟的高級編程語言,廣泛被工業(yè)界以及學(xué)術(shù)界所使用,作為標準的數(shù)據(jù)采集與設(shè)備控制軟件[6]。

  LabVIEW作為可視化的圖形編程軟件編寫儀器軟面板,界面友好,操作方便,具有以下特點[7]:(1)函數(shù)封裝于可視化的模塊之中,采用連線表示功能模塊間的數(shù)據(jù)傳遞;(2)可采用高亮執(zhí)行調(diào)試,直觀顯示運行中的問題;(3)多操作系統(tǒng)平臺支持;(4)通信接口建立方便,可采用多種形式與下位機連接;(5)提供豐富的庫函數(shù)供用戶使用。

  2.2 LabVIEW與Arduino的連接

  LabVIEW與Arduino的連接方式包括了LabVIEW Interface for Arduino,有線串口、無線串口以及網(wǎng)絡(luò)接口。LabVIEW Interface for Arduino由于實際上并不涉及Arduino編程,只能采用官方的Arduino函數(shù)庫在LabVIEW端完全控制,所以可用傳感器非常有限,擴展性差。網(wǎng)絡(luò)接口的方式雖然是只需要Arduino與LabVIEW聯(lián)入互聯(lián)網(wǎng)就能實現(xiàn)方便地通信,但是對于農(nóng)用耕地要實現(xiàn)互聯(lián)網(wǎng)的覆蓋和接入,在現(xiàn)階段很難做到。所以,在農(nóng)業(yè)監(jiān)測系統(tǒng)中采用串口連接Arduino與LabVIEW。

  在使用串口連接Arduino與LabVIEW之前,LabVIEW需要先安裝VISA。VISA是虛擬儀器軟件體系結(jié)構(gòu)的縮寫,主要應(yīng)用于儀器編程的標準I/O應(yīng)用程序接口。在LabVIEW采用VISA節(jié)點進行串口通信,配置好VISA是實現(xiàn)串口通信的首要步驟。

  當采用無線串口,即設(shè)計方案中的ZigBee方式連接Arduino與上位機時,由于需要實現(xiàn)2個或者以上的XBee模塊來實現(xiàn)通信,所以需要使用X-CTU軟件每個XBee模塊的參數(shù)進行配置[8]。XBee模塊具有64 bit的長地址與16 bit的短地址,其中64 bit長地址為出廠時寫入,不能修改,16 bit短地址需要進行人工配置。當采用長地址作為尋址方式時就需要將接收模塊的64 bit地址設(shè)置為發(fā)送模塊的目標地址高位(Destination Address High,DH)+目標地址低位(Destination Address Low,DL)。若采用短地址作為尋址方式則需將接收模塊的16 bit地址設(shè)置為發(fā)送模塊的目標地址低32 bit(DL),并將發(fā)送模塊的DH置零。

3 Arduino與LabVIEW系統(tǒng)整合設(shè)計

  3.1 傳感器設(shè)置

  Arduino語言建立在C/C++基礎(chǔ)上,其基本程序框架由setup()和loop()兩部分組成。Arduino程序首先執(zhí)行setup()函數(shù),并且只運行一次。因此,setup()函數(shù)一般用于初始化,例如設(shè)置引腳類型、配置串口、引入類庫文件、外圍器件的初始化等。初始化之后執(zhí)行l(wèi)oop()函數(shù),而且loop()函數(shù)將會不斷循環(huán)執(zhí)行,故所有的執(zhí)行語句都放在loop()函數(shù)中,完成指定的輸入/輸出。

  在本設(shè)計中,采用光照傳感器、土壤水分傳感器、溫濕度傳感器以及CO2濃度傳感器采集農(nóng)作物生長環(huán)境參數(shù)。其中土壤水分傳感器與溫濕度傳感器的數(shù)據(jù)可以通過模擬輸入口直接被Arduino讀取。

  對于光照傳感器由于采用I2C總線傳輸,在配置完總線參數(shù)后,自定義讀取數(shù)據(jù)函數(shù)如下:

  int BH1750_Read(int address)

  { int i=0;

  Wire.beginTransmission(address);

  Wire.requestFrom(address, 2);

  while(Wire.available())

  {buff[i] = Wire.receive();  // receive one byte

  i++;}

  Wire.endTransmission();

  return i; }

  對于CO2濃度傳感器,雖然輸出電壓可以通過模擬輸入端直接讀取,但是為了防止?jié)舛鹊牟痪鶆蛞鸬耐话l(fā)誤差,還需要對采樣數(shù)據(jù)做平滑處理并轉(zhuǎn)化為ppm濃度。

  3.2 LabVIEW配置

  LabVIEW的主要功能為:向Arduino控制板發(fā)送采集光照、溫度、濕度、水分、二氧化碳的命令,Arduino在接收到LabVIEW的命令后,通過傳感器模塊接收相應(yīng)的數(shù)據(jù)(并將二氧化碳傳感器采集的電壓數(shù)據(jù)轉(zhuǎn)化的二氧化碳濃度)傳送回LabVIEW,LabVIEW將收到的數(shù)據(jù)顯示在前面板。

  LabVIEW的前面板如圖4所示,主要通過儀表盤表示了光照、溫度、濕度、水分以及二氧化碳濃度的狀態(tài)。

004.jpg

  LabVIEW的主程序采用狀態(tài)機實現(xiàn)。主程序分為6個狀態(tài):0狀態(tài)初始化串口,1狀態(tài)光照測量,2狀態(tài)溫度測量,3狀態(tài)濕度測量,4狀態(tài)水分測量,5狀態(tài)二氧化碳測量。初始為0狀態(tài)。程序框圖如圖5所示(以二氧化碳濃度采集環(huán)節(jié)為例)。

005.jpg

4 總結(jié)

  基于開源硬件的智能農(nóng)業(yè)監(jiān)測系統(tǒng),充分利用了開源硬件價格低廉、擴展性強的特點,并結(jié)合ZigBee低功耗、自組網(wǎng)的優(yōu)勢,使得整個系統(tǒng)可以基于虛擬儀器方便地對農(nóng)業(yè)環(huán)境中的各個參數(shù)進行可視化監(jiān)控,從而做到對環(huán)境的智能監(jiān)測,以實現(xiàn)農(nóng)作物的優(yōu)質(zhì)高產(chǎn)。而且本系統(tǒng)可以根據(jù)環(huán)境監(jiān)測需要擴展新的傳感器,并可在有線與無線組網(wǎng)間進行切換,在智能農(nóng)業(yè)領(lǐng)域有著較強的實踐性和可操作性。

  參考文獻

  [1] 李圣華,肖傳輝.基于物聯(lián)網(wǎng)技術(shù)的智能農(nóng)業(yè)系統(tǒng)設(shè)計[J].科技廣場,2011(7):73-75.

  [2] 張佐經(jīng),張海輝,翟長遠,等.設(shè)施農(nóng)業(yè)環(huán)境因子無線監(jiān)測及預(yù)警系統(tǒng)設(shè)計[J].農(nóng)機化研究,2010,32(11):78-82.

  [3] Jonathan Oxer,Hugh Blemings.Practical Arduino:Cool Pro-jects for Open Source Hardware[M].New York:Springer-Verlag,2009:1-10.

  [4] 米歇爾·麥克羅伯茨.Arduino從基礎(chǔ)到實踐[M].北京:電子工業(yè)出版社,2013.

  [5] 韓廷閣,李書琴.基于ZigBee的土壤濕度無線采集系統(tǒng)節(jié)點設(shè)計[J].農(nóng)機化研究,2010,32(12):154-159.

  [6] 劉君華.基于LabVIEW的虛擬儀器設(shè)計[M].北京:電子工業(yè)出版社,2003.

  [7] 李江全.LabVIEW虛擬儀器數(shù)據(jù)采集與串口通信測控應(yīng)用實戰(zhàn)[M].北京:人民郵電出版社,2010.

  [8] 王靜霞.一種與ZigBee/802.15.4協(xié)議兼容的RF模塊XBee/XBee Pro及其應(yīng)用[J].電子工程師,2007,33(3):24-27.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。