張曉朋
(平頂山學(xué)院 信息工程學(xué)院,河南 平頂山 467000)
基于485總線和虛擬儀器的智能農(nóng)業(yè)監(jiān)控系統(tǒng)設(shè)計(jì)
張曉朋
(平頂山學(xué)院 信息工程學(xué)院,河南 平頂山 467000)
針對(duì)傳統(tǒng)農(nóng)業(yè)監(jiān)控系統(tǒng)的不足,為了高效利用農(nóng)業(yè)資源及實(shí)現(xiàn)智能農(nóng)業(yè),設(shè)計(jì)了一種基于485總線與LabVIEW的智能農(nóng)業(yè)監(jiān)控系統(tǒng)。選用Arduino控制器作為下位機(jī),以PC機(jī)為上位機(jī),兩者通過(guò)RS-485總線實(shí)現(xiàn)通信;系統(tǒng)能夠?qū)r(nóng)作物生長(zhǎng)環(huán)境系統(tǒng)中的溫濕度、光照強(qiáng)度、土壤水分、CO2濃度等參數(shù)進(jìn)行監(jiān)控;當(dāng)監(jiān)控參數(shù)超限時(shí),能夠自動(dòng)控制相關(guān)設(shè)備進(jìn)行自動(dòng)調(diào)節(jié),從而確保農(nóng)作物處于適宜的生長(zhǎng)環(huán)境;系統(tǒng)具有性價(jià)比高、擴(kuò)展性強(qiáng)等優(yōu)點(diǎn),具有一定的推廣應(yīng)用價(jià)值。
虛擬儀器;智能農(nóng)業(yè);485總線
智能農(nóng)業(yè)是目前農(nóng)業(yè)發(fā)展的新方向,它根據(jù)農(nóng)作物的生長(zhǎng)習(xí)性及時(shí)調(diào)整土壤狀況和環(huán)境參數(shù),以最少的投入獲得最高的收益,改變了傳統(tǒng)農(nóng)業(yè)中必須依靠環(huán)境種植的弊端及粗放的生產(chǎn)經(jīng)營(yíng)管理模式,改善了農(nóng)產(chǎn)品的質(zhì)量與品質(zhì),調(diào)整了農(nóng)業(yè)的產(chǎn)業(yè)結(jié)構(gòu),確保了農(nóng)產(chǎn)品的總產(chǎn)量。隨著通信、計(jì)算機(jī)、傳感器等技術(shù)的迅猛發(fā)展,將物聯(lián)網(wǎng)應(yīng)用到智能農(nóng)業(yè)監(jiān)控系統(tǒng)中已經(jīng)是目前的發(fā)展趨勢(shì),它將采集到的溫度、濕度、光照強(qiáng)度、土壤水分、二氧化碳濃度等農(nóng)業(yè)信息進(jìn)行加工、傳輸和利用,為農(nóng)業(yè)生產(chǎn)在各個(gè)時(shí)期的精確管理和控制提供信息支持,從而制定出高效集約的可持續(xù)性發(fā)展方式,高效利用農(nóng)業(yè)資源,實(shí)現(xiàn)可觀的經(jīng)濟(jì)效益[1]。
基于上述原因,融合物聯(lián)網(wǎng)技術(shù)和分布式系統(tǒng)的思想,設(shè)計(jì)了一款基于485總線和虛擬儀器技術(shù)的智能農(nóng)業(yè)監(jiān)控系統(tǒng)。系統(tǒng)中,數(shù)據(jù)采集和控制終端采用Arduino作為核心,上位機(jī)軟件采用LabVIEW,兩者通過(guò)RS-485總線實(shí)現(xiàn)通信。系統(tǒng)結(jié)構(gòu)模塊化,易于維護(hù),可根據(jù)需求熱插拔擴(kuò)展總線網(wǎng)的傳感器節(jié)點(diǎn),是一種成本經(jīng)濟(jì)、穩(wěn)定可靠的行業(yè)解決方案[2]。
系統(tǒng)的總體結(jié)構(gòu)如圖1所示。各個(gè)節(jié)點(diǎn)(編號(hào)1、2、3、…區(qū)分)代表不同的農(nóng)業(yè)監(jiān)控區(qū)域,各節(jié)點(diǎn)采用相同的結(jié)構(gòu);各監(jiān)控區(qū)域中,Arduino控制器通過(guò)485總線接收上位機(jī)的數(shù)據(jù)采集命令,分別采集該區(qū)域的氣候數(shù)據(jù)(溫濕度、光照強(qiáng)度、土壤水分、CO2濃度等),然后將監(jiān)測(cè)數(shù)據(jù)通過(guò)485總線總線傳遞給上位機(jī),使上位機(jī)能及時(shí)獲取監(jiān)控節(jié)點(diǎn)的現(xiàn)場(chǎng)環(huán)境參數(shù);同時(shí),上位機(jī)根據(jù)設(shè)定的環(huán)境參數(shù)范圍,通過(guò)485總線發(fā)送控制命令給各監(jiān)控區(qū)域的Arduino控制器,進(jìn)而控制光藕繼電器陣列啟動(dòng)對(duì)應(yīng)監(jiān)控區(qū)域的執(zhí)行機(jī)構(gòu)來(lái)調(diào)節(jié)目標(biāo)區(qū)域的氣候,使各種農(nóng)作物均處于適宜生長(zhǎng)的環(huán)境。
圖1 系統(tǒng)的總體結(jié)構(gòu)框圖
2.1 Arduion部分設(shè)計(jì)
Arduino Mega2560是采用USB接口的核心電路板,它的處理器核心是ATmega2560,同時(shí)具有54路數(shù)字輸入/輸出口(其中16路可作為PWM輸出),16路模擬輸入,4路UART接口,輸出電源電壓主要有5V和3.3 V[3]。在基于485總線的智能農(nóng)業(yè)監(jiān)控系統(tǒng)中,每個(gè)節(jié)點(diǎn)配置一個(gè)Arduino Mega2560控制器,通過(guò)MAX485模塊掛在RS-485總線上。
2.2 溫濕度傳感器
溫濕度傳感器采用DHT11溫濕度傳感模塊,是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器[4]。將DHT11溫濕度傳感器的VCC、GND、DQ分別連接至Arduino Mega2560控制器的+5V、GND、數(shù)字端口D2,并在數(shù)字端口D2接一個(gè)上拉電阻。
2.3 光照強(qiáng)度傳感器
光照強(qiáng)度傳感器采用BH1750FVI,是一種兩線式串行總線接口的數(shù)字型光強(qiáng)度傳感器,可以探測(cè)較大范圍的光照度變化[5]。將BH1750FVI傳感器的VCC、GND、SCL、SDA和ADD分別連接至Arduino Mega2560控制器的+5V、GND、SCL、SDA和GND,使BH1750FVI工作在低地址模式。
2.4 土壤水分傳感器
土壤水分傳感器采用價(jià)格低廉的電阻式水分傳感器,可以根據(jù)使用需要更換為抗電離腐蝕的專用數(shù)字土壤水分傳感器。將水分傳感器的VCC、GND、VOUT分別連接至Arduino Mega2560控制器的+5V、GND、模擬端口A0[6]。
2.5 CO2濃度傳感器
CO2濃度傳感器采用MG-811 CO2探頭,對(duì)CO2極為敏感,同時(shí)還能排除酒精和CO的干擾。將MG-811氣體傳感器的兩個(gè)H引腳通過(guò)加熱電源接口接至加熱電源的正負(fù)極;將A端連接至Arduino Mega2560控制器的+5V,將B端接至Arduino Mega2560控制器的模擬輸入端A1,并在A1與GND直接串接負(fù)載電阻[7]。
2.6 執(zhí)行機(jī)構(gòu)的驅(qū)動(dòng)電路設(shè)計(jì)
執(zhí)行機(jī)構(gòu)(包括加溫器、水泵、補(bǔ)光燈、風(fēng)機(jī))的供電電壓為交流220V,而Arduino Mega2560控制器的輸出電壓范圍為直流0~5 V,故不能直接用于驅(qū)動(dòng)執(zhí)行機(jī)構(gòu),需要通過(guò)繼電器來(lái)實(shí)現(xiàn)[8]。本設(shè)計(jì)中采用Easy-Y公司的型號(hào)為Relay-4-H-5V的繼電器組,它是一種4路帶光耦繼電器模塊,輸入直流5V,輸出250VAC/10A。
將Relay-4-H-5V固態(tài)繼電器模組的輸入控制端分別接至Arduino Mega2560控制器的數(shù)字引腳D3、D4、D5、D6、GND;將Relay-4-H-5V固態(tài)繼電器模組的輸出控制端分別接至加溫器、水泵、補(bǔ)光燈、風(fēng)機(jī)等執(zhí)行機(jī)構(gòu)。
2.7 RS-485串行通信模塊
RS-485作為串口通信的標(biāo)準(zhǔn)之一,采用平衡傳輸方式。當(dāng)采用二線制時(shí),可以實(shí)現(xiàn)多點(diǎn)雙向通信,總線上最多可接32個(gè)設(shè)備,最大傳輸距離約為1 200 m[9]。
在使用RS -485總線時(shí),Arduino端主要采用MAX485接口模塊完成RS-485與TTL電平的轉(zhuǎn)換,將MAX485接口模塊的RO、DI分別連接至Arduino Mega2560控制器的RX0、TX0,RE、DI分別接數(shù)字端口D7、D8。上位機(jī)端通過(guò)USB/RS-485轉(zhuǎn)換電路,先將USB信號(hào)轉(zhuǎn)化為T(mén)TL信號(hào),再由TTL信號(hào)轉(zhuǎn)化為RS-485信號(hào)。
3.1 Arduion程序設(shè)計(jì)
Arduino控制器的工作流程如圖2所示。首先,控制器完成串口、傳感器以及執(zhí)行機(jī)構(gòu)的初始化;接著,控制器檢測(cè)串口是否收到上位機(jī)的有效命令,并判斷該命令是否是本節(jié)點(diǎn)的命令;然后,控制器根據(jù)接收到的采集命令執(zhí)行溫濕度、光照強(qiáng)度、土壤水分、CO2濃度等參數(shù)的采集,并通過(guò)串口發(fā)送給上位機(jī);最后,控制器根據(jù)接收到的控制命令打開(kāi)或者關(guān)閉加溫器、水泵、補(bǔ)光燈、風(fēng)機(jī)等執(zhí)行機(jī)構(gòu),完成監(jiān)控區(qū)域的氣候調(diào)節(jié)。
圖2 Arduino程序流程圖
3.2 LabVIEW程序設(shè)計(jì)
LabVIEW上位機(jī)的工作過(guò)程為:1)根據(jù)所選擇的節(jié)點(diǎn),依次通過(guò)RS -485總線發(fā)送不同節(jié)點(diǎn)的溫濕度、光照強(qiáng)度、土壤水分、CO2濃度的數(shù)據(jù)采集命令;2)不同節(jié)點(diǎn)的Arduino控制器通過(guò)串口和MAX485模塊從RS -485總線上接收上位機(jī)的命令,然后判斷接收的命令中節(jié)點(diǎn)號(hào)是否與自己的節(jié)點(diǎn)號(hào)匹配,如果匹配則實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)采集之后并把數(shù)據(jù)回傳;3)如果不匹配,則舍棄當(dāng)前接收的命令,重新等待下次命令的到來(lái);4)上位機(jī)對(duì)相關(guān)回傳數(shù)據(jù)進(jìn)行顯示,如果相關(guān)數(shù)據(jù)超限,立即向?qū)?yīng)節(jié)點(diǎn)的下位機(jī)Arduino控制器發(fā)送命令以控制相關(guān)執(zhí)行機(jī)構(gòu)的打開(kāi)或關(guān)閉,完成該節(jié)點(diǎn)監(jiān)控區(qū)域的氣候調(diào)節(jié)。
3.2.1 前面板設(shè)計(jì)
前面板如圖3所示。分為串口選擇、節(jié)點(diǎn)選擇、工作指示燈、電源開(kāi)關(guān)、數(shù)據(jù)顯示和超限指示燈模塊。串口選擇用于選擇進(jìn)行通信的串口;節(jié)點(diǎn)選擇用于選擇當(dāng)前檢測(cè)的節(jié)點(diǎn);工作指示燈用于指示系統(tǒng)是否正常工作;電源開(kāi)關(guān)用于打開(kāi)或關(guān)閉監(jiān)控系統(tǒng);數(shù)據(jù)顯示模塊用于顯示各節(jié)點(diǎn)的監(jiān)控?cái)?shù)據(jù),這里只給出了3個(gè)節(jié)點(diǎn)的監(jiān)控顯示;超限指示燈部分用于各節(jié)點(diǎn)監(jiān)控?cái)?shù)據(jù)的超限報(bào)警。
圖3 LabVIEW上位機(jī)界面
3.2.2 程序框圖設(shè)計(jì)
采用事件結(jié)構(gòu)+超時(shí)結(jié)構(gòu)來(lái)實(shí)現(xiàn)LabVIEW上位機(jī)主程序,主程序分為數(shù)據(jù)測(cè)量和執(zhí)行機(jī)構(gòu)控制兩部分。在0號(hào)超時(shí)事件中實(shí)現(xiàn)數(shù)據(jù)測(cè)量,使用條件結(jié)構(gòu)+移位寄存器的狀態(tài)機(jī)來(lái)實(shí)現(xiàn),將主程序劃分為5個(gè)狀態(tài):0狀態(tài)為串口初始化,1狀態(tài)為溫濕度檢測(cè),2狀態(tài)為光照強(qiáng)度檢測(cè),3狀態(tài)為土壤水分檢測(cè),4狀態(tài)為CO2濃度檢測(cè)[10]。
通信部分采用如下的通信協(xié)議:幀頭+節(jié)點(diǎn)代號(hào)+操作碼。0x66為幀頭;節(jié)點(diǎn)代號(hào)有0xD1位1號(hào)節(jié)點(diǎn)的代號(hào),0xD2位2號(hào)節(jié)點(diǎn)的代號(hào),0xD3位3號(hào)節(jié)點(diǎn)的代號(hào),依次類推;操作碼有0x10為溫濕度檢測(cè),0x20為光照強(qiáng)度檢測(cè),0x30為土壤水分檢測(cè),0x40為CO2濃度檢測(cè),0x50為打開(kāi)加溫器,0x51為關(guān)閉加溫器,0x60為打開(kāi)補(bǔ)光燈,0x61為關(guān)閉補(bǔ)光燈,0x70為打開(kāi)水泵,0x71為關(guān)閉水泵,0x80為打開(kāi)風(fēng)機(jī),0x81為關(guān)閉風(fēng)機(jī)。
0號(hào)超時(shí)事件分支中,CO2濃度檢測(cè)分支的程序框圖如圖4所示(以1號(hào)節(jié)點(diǎn)為例),上位機(jī)通過(guò)485總線發(fā)送數(shù)據(jù)采集命令0x66D140給下位機(jī)Arduino控制器,接著延時(shí)一秒,然后通過(guò)485總線讀取CO2濃度數(shù)據(jù)并進(jìn)行顯示,同時(shí)對(duì)濃度數(shù)據(jù)進(jìn)行判斷,若濃度超限,則濃度超限指示燈由綠燈變?yōu)榧t燈,從而觸發(fā)相應(yīng)的事件進(jìn)而打開(kāi)風(fēng)機(jī)進(jìn)行CO2濃度調(diào)節(jié)。溫濕度檢測(cè)、光照強(qiáng)度檢測(cè)和土壤水分檢測(cè)分支的程序框圖和工作過(guò)程與此類似。
圖4 超時(shí)事件的部分程序框圖
1~15號(hào)事件分支分別對(duì)應(yīng)三個(gè)節(jié)點(diǎn)的溫度、濕度、光照強(qiáng)度、土壤水分和CO2濃度超限事件的處理。1號(hào)節(jié)點(diǎn)CO2濃度超限事件的程序框圖如圖5所示,當(dāng)觸發(fā)該事件時(shí),通過(guò)判斷CO2濃度超限指示燈的狀態(tài),給下位機(jī)Arduino控制器發(fā)送不同的控制命令,打開(kāi)或關(guān)閉風(fēng)機(jī),從而自動(dòng)調(diào)節(jié)CO2的濃度。若CO2濃度超限指示燈為紅燈,則通過(guò)485總線發(fā)送控制命令0x66D180給下位機(jī)Arduino控制器,通過(guò)下位機(jī)驅(qū)動(dòng)相應(yīng)的繼電器進(jìn)而打開(kāi)風(fēng)機(jī)進(jìn)行通風(fēng);若CO2濃度超限指示燈為綠燈,則通過(guò)485總線發(fā)送控制命令0x66D181給下位機(jī)Arduino控制器,通過(guò)下位機(jī)驅(qū)動(dòng)相應(yīng)的繼電器進(jìn)而關(guān)閉風(fēng)機(jī)。溫度、濕度、光照強(qiáng)度、土壤水分超限事件的程序框圖和工作過(guò)程與此類似。
圖5 CO2濃度超限事件的程序框圖
系統(tǒng)啟動(dòng)后,各采集節(jié)點(diǎn)每隔一段時(shí)間采集一次溫度、濕度、光照強(qiáng)度、土壤水分、二氧化碳濃度等數(shù)據(jù),并發(fā)送給LabVIEW上位機(jī);上位機(jī)根據(jù)設(shè)定的環(huán)境參數(shù)范圍,發(fā)送控制命令給各監(jiān)控區(qū)域的Arduino控制器,進(jìn)而控制光藕繼電器陣列啟動(dòng)對(duì)應(yīng)監(jiān)控區(qū)域的執(zhí)行機(jī)構(gòu)來(lái)調(diào)節(jié)目標(biāo)區(qū)域的氣候。圖6為1號(hào)和2號(hào)節(jié)點(diǎn)的監(jiān)控?cái)?shù)據(jù)及各機(jī)構(gòu)動(dòng)作情況對(duì)比圖。測(cè)試結(jié)果表明該監(jiān)控系統(tǒng)數(shù)據(jù)傳輸可靠高,穩(wěn)定性好。
圖6 1號(hào)和2號(hào)節(jié)點(diǎn)監(jiān)控?cái)?shù)據(jù)對(duì)比
基于485總線和虛擬儀器技術(shù)的智能農(nóng)業(yè)監(jiān)控系統(tǒng),采用RS-485總線作為每個(gè)子節(jié)點(diǎn)與上位機(jī)總站的通信方式,巧妙地利用了485總線的抗干擾能力強(qiáng)的優(yōu)點(diǎn)實(shí)現(xiàn)了上位機(jī)遠(yuǎn)程的實(shí)時(shí)監(jiān)控。數(shù)據(jù)采集和控制終端采用Arduino作為核心,完成各節(jié)點(diǎn)區(qū)域農(nóng)業(yè)氣候參數(shù)的測(cè)量和調(diào)節(jié)。系統(tǒng)采用模塊化設(shè)計(jì),可以增加節(jié)點(diǎn)的數(shù)量從而擴(kuò)大監(jiān)控區(qū)域;每個(gè)節(jié)點(diǎn)也可以增加傳感器和執(zhí)行機(jī)構(gòu),實(shí)現(xiàn)對(duì)更多農(nóng)業(yè)參數(shù)的監(jiān)控和自動(dòng)調(diào)節(jié)[11]。系統(tǒng)具有性能穩(wěn)定、使用靈活、結(jié)構(gòu)模塊化的特點(diǎn),是智能化監(jiān)控儀器系統(tǒng)在農(nóng)業(yè)領(lǐng)域的典型應(yīng)用,具有良好的市場(chǎng)前景和應(yīng)用價(jià)值[12]。
[1] 王 凡,楊 亮. 基于開(kāi)源硬件與虛擬儀器的智能農(nóng)業(yè)監(jiān)測(cè)系統(tǒng)設(shè)討[J]. 電子技術(shù)應(yīng)用,2015,41(4):73-76.
[2] 可曉海,張文超,唐開(kāi)輝,等. 基于GSM網(wǎng)絡(luò)和485總線的農(nóng)業(yè)監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 中國(guó)農(nóng)機(jī)化學(xué)報(bào),2016,37(5):213-217.
[3] 廖建尚.基于物聯(lián)網(wǎng)的溫室大棚環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)方法[J]. 農(nóng)業(yè)工程學(xué)報(bào),2016,24(11):32-35.
[4] 郭陽(yáng)明.基于虛擬儀器的溫濕度測(cè)量系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真, 2008,25(5):302-305.
[5] 張 新,陳蘭生,趙 俊. 基于物聯(lián)網(wǎng)技術(shù)的智慧農(nóng)業(yè)大棚設(shè)計(jì)與應(yīng)用[J].中國(guó)農(nóng)機(jī)化學(xué)報(bào),2015(5):124-127.
[6] 吳 舟.基于移動(dòng)互聯(lián)網(wǎng)的農(nóng)業(yè)大棚智能監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2013.
[7] 丁文飛,孫會(huì)楠,邢彥辰. 基于Wi-Fi的農(nóng)業(yè)大棚監(jiān)控系統(tǒng)的設(shè)計(jì)[J]. 安徽農(nóng)業(yè)科學(xué),2015,5(33):154-157.
[8] 李圣華,肖傳輝.基于物聯(lián)網(wǎng)技術(shù)的智能農(nóng)業(yè)系統(tǒng)設(shè)計(jì)[J].科技廣場(chǎng),2011(7):73-75.
[9] 周金芝,楊 明. 基于RS-485總線的土壤濕度監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 湖北文理學(xué)院學(xué)報(bào),2016(5):66-69.
[10] 聶 影,馮向軍,廖 瑛.基于LabVIEW的狀態(tài)機(jī)模型研究[J].計(jì)算機(jī)測(cè)量與控制,2007,15(9):1166-1168.
[11] 張小偉.基于物聯(lián)網(wǎng)技術(shù)的農(nóng)業(yè)大棚監(jiān)控系統(tǒng)研究[D]. 陜西:陜西科技大學(xué),2014.
[12] 黃 杰. 基于Web的農(nóng)業(yè)溫室遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 自動(dòng)化與信息工程,2015(4):85-88.
Design of Intelligent Agriculture Monitoring System Based on 485 Bus and Virtual Instrument
Zhang Xiaopeng
(College of Electrical Information Engineering, Pingdingshan University, Pingdingshan 467000, China)
In view of the deficiency of the traditional agricultural monitoring system, a kind of intelligent agriculture monitoring system based on 485 bus and LabVIEW is designed in order to utilize the agricultural resources and realize intelligent agriculture efficiently. Arduino controller as the next bit machine, PC machine as the host computer, both through the RS-485 bus to achieve communication. System can monitor crops growth environment about temperature and humidity, light intensity and soil humidity, CO2 concentration parameter; when the monitoring parameters overrun to automatic control equipment of automatic adjustment, so as to ensure that the crop is in a suitable environment for the growth. The system has the advantages of high cost performance, strong expansibility, and so on. It has certain value of popularization and application.
LabVIEW; intelligent agriculture; 485 bus
2016-09-06;
2016-12-19。
河南省教育廳科學(xué)技術(shù)研究重點(diǎn)項(xiàng)目(12B510025)。
張曉朋(1978-),男,河南省許昌市人,碩士研究生,講師,主要從事微電子技術(shù)及其應(yīng)用方向的研究。
1671-4598(2017)02-0085-03
10.16526/j.cnki.11-4762/tp.2017.02.023
TH86;TP277
A