《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于開(kāi)源硬件與虛擬儀器的智能農(nóng)業(yè)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
基于開(kāi)源硬件與虛擬儀器的智能農(nóng)業(yè)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第4期
王 凡1,楊 亮2
1.電子科技大學(xué)中山學(xué)院 機(jī)電工程學(xué)院,,廣東 中山528402,; 2.電子科技大學(xué)中山學(xué)院 計(jì)算機(jī)學(xué)院,,廣東 中山528402
摘要: 為了智能化采集農(nóng)作信息,,高效利用農(nóng)業(yè)資源及實(shí)現(xiàn)智能農(nóng)業(yè),,設(shè)計(jì)了基于開(kāi)源硬件的智能農(nóng)業(yè)監(jiān)測(cè)系統(tǒng),。系統(tǒng)以開(kāi)源硬件Arduino為核心控制器,,配合光照傳感器,、土壤水分傳感器、溫濕度傳感器,、二氧化碳傳感器采集農(nóng)作環(huán)境參數(shù),,利用ZigBee技術(shù)上傳數(shù)據(jù)至虛擬儀器LabVIEW,實(shí)現(xiàn)數(shù)據(jù)在線監(jiān)測(cè),。該系統(tǒng)具有性價(jià)比高,、擴(kuò)展性強(qiáng)、可更換組網(wǎng)方式等優(yōu)點(diǎn),,有著較強(qiáng)的實(shí)踐性和可操作性,。
中圖分類號(hào): TP23
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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 引言

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

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

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

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

  1.1 Arduino控制器

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

  1.2 光照傳感器

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

001.jpg

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

  1.3 土壤水分傳感器

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

002.jpg

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

  1.4 溫濕度傳感器

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

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

  1.5 CO2濃度傳感器

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

003.jpg

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

  負(fù)極:2Li++CO2+1/2O2+2e-=Li2CO3

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

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

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

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

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

  1.6 ZigBee通信模塊

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

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

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

  1.7 RS-485串口通信模塊

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

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

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

2 虛擬儀器與LabVIEW

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

  2.1 LabVIEW

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

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

  2.2 LabVIEW與Arduino的連接

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

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

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

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

  3.1 傳感器設(shè)置

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

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

  對(duì)于光照傳感器由于采用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; }

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

  3.2 LabVIEW配置

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

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

004.jpg

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

005.jpg

4 總結(jié)

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

  參考文獻(xiàn)

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

  [2] 張佐經(jīng),,張海輝,翟長(zhǎng)遠(yuǎn),,等.設(shè)施農(nóng)業(yè)環(huán)境因子無(wú)線監(jiān)測(cè)及預(yù)警系統(tǒng)設(shè)計(jì)[J].農(nóng)機(jī)化研究,,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ǔ)到實(shí)踐[M].北京:電子工業(yè)出版社,2013.

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

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

  [7] 李江全.LabVIEW虛擬儀器數(shù)據(jù)采集與串口通信測(cè)控應(yīng)用實(shí)戰(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)載,。