文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.183033
中文引用格式: 崔麗珍,徐錦濤,,丁福星,,等. 基于物聯(lián)網(wǎng)的農(nóng)業(yè)大棚氣象數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,,44(12):73-76,,80.
英文引用格式: Cui Lizhen,Xu Jintao,,Ding Fuxing,,et al. Design of meteorological data monitoring system for agricultural greenhouse based on Internet of Things[J]. Application of Electronic Technique,2018,,44(12):73-76,,80.
0 引言
近年來,,內(nèi)蒙古自治區(qū)農(nóng)業(yè)和農(nóng)村經(jīng)濟(jì)取得了快速的發(fā)展。然而,,水資源匱乏,、土地鹽堿重、氣候條件惡劣易變等自然條件下,,對自治區(qū)大棚農(nóng)業(yè)及反季節(jié)產(chǎn)品的種植提出了更高的要求,。大棚內(nèi)空氣溫濕度、土壤濕度及光照強(qiáng)度都會對農(nóng)作物生長和生產(chǎn)產(chǎn)生很大影響,,需要在適宜的綜合環(huán)境因素下,,才能實(shí)現(xiàn)最大化的農(nóng)作物產(chǎn)值。因此,,大棚內(nèi)環(huán)境數(shù)據(jù)變化的實(shí)時(shí)采集監(jiān)視尤為重要,,以便及時(shí)地做出相應(yīng)的應(yīng)變措施,讓農(nóng)作物在適宜的環(huán)境中生長和生產(chǎn),。傳統(tǒng)農(nóng)業(yè)氣象環(huán)境監(jiān)測方式主要是人工依據(jù)生產(chǎn)經(jīng)驗(yàn)使用測量工具實(shí)地獲取數(shù)據(jù),,或使用傳統(tǒng)的有線通信傳輸方式進(jìn)行相關(guān)測量。人工經(jīng)驗(yàn)性監(jiān)測方式存在時(shí)效性低,、工作量大,、生產(chǎn)成本高、隨機(jī)取點(diǎn)誤差大等問題,;而有線傳輸方式有很多的不足之處,,如功耗較高、布線成本大,、適應(yīng)性差,、可擴(kuò)展性不強(qiáng),且增加新的種植面積需要再次布線施工,。因此,,為滿足溫室大棚氣象環(huán)境數(shù)據(jù)采集要求,設(shè)計(jì)了基于物聯(lián)網(wǎng)的溫室大棚環(huán)境實(shí)時(shí)監(jiān)測系統(tǒng),,主要監(jiān)測大棚內(nèi)空氣溫濕度,、土壤濕度及光照強(qiáng)度等氣象環(huán)境信息,。本系統(tǒng)氣象數(shù)據(jù)的傳輸是利用開發(fā)成本低、組網(wǎng)性能優(yōu)良的ZigBee通信協(xié)議,,其通信技術(shù)特點(diǎn)主要是:高可靠性,、低成本、時(shí)延短,、高安全性,、低傳輸速率等。然后通過MQTT協(xié)議將網(wǎng)關(guān)上接收到的數(shù)據(jù)與手機(jī)客戶端,、PC端鏈接起來,,實(shí)現(xiàn)數(shù)據(jù)到上位機(jī)的傳輸。將ZigBee技術(shù),、MQTT技術(shù)及傳感技術(shù)相結(jié)合,,構(gòu)成了系統(tǒng)的整體技術(shù)框架,能夠低成本,、高可靠性地實(shí)現(xiàn)對大棚氣象環(huán)境數(shù)據(jù)的采集和傳輸,。
1 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)的實(shí)現(xiàn)主要由CC2530采集終端、網(wǎng)關(guān)(ZigBee協(xié)調(diào)器),、NodeMCU平臺開發(fā)等部分組成[1],。其中,基于CC2530的環(huán)境采集終端通過空氣溫濕度,、土壤濕度,、數(shù)字光照等采集模塊獲取大棚的溫度、濕度,、光照等數(shù)據(jù),,通過ZigBee網(wǎng)絡(luò)發(fā)送給物聯(lián)網(wǎng)(Internet of Things,IoT)網(wǎng)關(guān),,網(wǎng)關(guān)將接收到的數(shù)據(jù)根據(jù)地址封包,,通過串口發(fā)送給網(wǎng)關(guān)的NodeMCU模塊。氣象環(huán)境數(shù)據(jù)通過MQTT進(jìn)行數(shù)據(jù)幀的發(fā)送(發(fā)布)和接收(訂閱),保存在數(shù)據(jù)庫中并基于Web開發(fā)在PC,、智能手機(jī)等設(shè)備中進(jìn)行顯示,。系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)如圖1所示。
1.1 基于CC2530的環(huán)境采集終端設(shè)計(jì)
終端采集部分主要實(shí)現(xiàn)對大棚氣象環(huán)境數(shù)據(jù)采集,,以及通過ZigBee協(xié)議將數(shù)據(jù)上傳到IoT網(wǎng)關(guān),。在本設(shè)計(jì)中采用CC2530射頻模塊做采集終端硬件的核心芯片,該芯片是TI公司推出的支持ZigBee協(xié)議的單片機(jī),;在軟件方面相對應(yīng)的協(xié)議棧為Z-Stack,。CC2530微控制器內(nèi)部使用業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051內(nèi)核,采用QFN40封裝,有40個(gè)引腳,。其中,,有21個(gè)數(shù)字I/O端口,均可通過編程進(jìn)行配置,,同時(shí)集成了UART和A/D等外設(shè),。采用內(nèi)置增強(qiáng)型PCB天線,通信距離可以滿足大棚環(huán)境采集終端節(jié)點(diǎn)布置坐標(biāo)[2],。
采集設(shè)備核心芯片CC2530的外圍電路設(shè)計(jì)主要分為射頻板模塊,、電源模塊、外設(shè)I/O口模塊以及程序下載模塊等,。射頻板模塊采用支持IEEE802.15.4 2.4 GHz物理層協(xié)議,,可搭載ZigBee協(xié)議棧(Z-Stack),支持用戶二次開發(fā),;發(fā)送功率在可編程范圍內(nèi)輸出功率最高達(dá)4.5 dBm;射頻工作頻率在2.4 GHz~2.405 GHz,。電源模塊設(shè)計(jì)了兩種供電方式,,一種采用兩節(jié)五號電池進(jìn)行供電2.7~3.3 V,另一種采用USB供電即外接電源供電,,可根據(jù)大棚內(nèi)不同的電力設(shè)施選擇合適的供電方式,。外接I/O口模塊為保證硬件安全性及使用壽命,在確定各個(gè)傳感器功能引腳配置端口后,,對外設(shè)I/O口進(jìn)行封裝處理,。程序下載模塊采用專用仿真器用于下載程序和在線仿真調(diào)試,硬件部分設(shè)計(jì)有CC Debugger仿真器接口,。
設(shè)計(jì)中光照強(qiáng)度測量采用BH1750FVI傳感器,,是一種用于兩線式串行總線接口的16位數(shù)字輸出型環(huán)境光強(qiáng)度傳感器集成電路,利用它的高分辨率可以在1 lx~65 535 lx范圍內(nèi)測量光強(qiáng)度變化,,并且能夠滿足直接輸出精度較高的數(shù)字信號,。空氣溫濕度值測量采用DHT11,,是一種具有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器,,專用的數(shù)字模塊技術(shù)和溫濕度傳感技術(shù)保證了其具備很好的可靠性與長期穩(wěn)定性;其內(nèi)部包含一個(gè)電阻時(shí)式感濕元件和一個(gè)NTC測溫元件,,并和一個(gè)高性能8位單片機(jī)相連接,,使得DHT11具備成本低、長期穩(wěn)定,、相對濕度和溫度測量及響應(yīng)迅速,、抗干擾能力強(qiáng)、較長的信號傳輸距離,、數(shù)字信號輸出,、校準(zhǔn)精確等顯著特點(diǎn),。土壤濕度值測量采用4線制土壤濕度傳感器模塊,其表面采用鍍鎳處理,,具有加寬的感應(yīng)面積,可以提高導(dǎo)電性能,,防止發(fā)生接觸土壤容易生銹的問題,,進(jìn)而延長使用壽命;并且可以主動調(diào)整測量土壤濕度的范圍,,通過電位器調(diào)節(jié)控制相應(yīng)閾值,,即濕度低于預(yù)設(shè)值時(shí)D0輸出高電平,高于預(yù)設(shè)值時(shí)D0輸出低電平,,比較器采用LM393芯片,,工作穩(wěn)定[3]。
1.2 網(wǎng)關(guān)硬件設(shè)計(jì)
網(wǎng)關(guān)(ZigBee協(xié)調(diào)器)屬于接入設(shè)備,,橋接了無線傳感器網(wǎng)絡(luò)和公共通信網(wǎng)絡(luò),,并提供了多種通信途徑,確保終端節(jié)點(diǎn)采集的數(shù)據(jù)傳輸?shù)接脩羝脚_上,。它主要功能是通過構(gòu)建的ZigBee網(wǎng)絡(luò)接收來自終端設(shè)備采集的氣象環(huán)境數(shù)據(jù),,并根據(jù)設(shè)備類型分配地址進(jìn)行封包處理,然后通過串口通信發(fā)送給IoT網(wǎng)關(guān)的NodeMCU模塊,。
網(wǎng)關(guān)設(shè)備的設(shè)計(jì)是基于CC2530和NodeMCU之間的串口通信以及WiFi傳輸數(shù)據(jù)功能,。硬件部分主要包括CC2530射頻板模塊、電源模塊,、程序下載模塊,、NodeMCU模塊。CC2530芯片與NodeMCU芯片在電路設(shè)計(jì)中通過排針連接,,如圖2所示,。利用UART與CC2530通信引腳連接,接收終端環(huán)境數(shù)據(jù)采集設(shè)備上傳的數(shù)據(jù),。然后通過對基于ESP8266芯片的NodeMCU的開發(fā),,利用MQTT將數(shù)據(jù)發(fā)布到服務(wù)器上。網(wǎng)關(guān)設(shè)計(jì)是ZigBee技術(shù)與NodeMCU技術(shù)的結(jié)合,,在保證數(shù)據(jù)傳輸效率和安全的情況下,,降低了開發(fā)成本,非常適合在農(nóng)業(yè)大棚等經(jīng)濟(jì)產(chǎn)業(yè)中使用,。
2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要包括終端環(huán)境數(shù)據(jù)采集設(shè)備驅(qū)動程序,、網(wǎng)關(guān)驅(qū)動程序、Arduino開發(fā)、MQTT應(yīng)用開發(fā)和大棚環(huán)境監(jiān)測物聯(lián)網(wǎng)平臺等部分,。
2.1 終端環(huán)境數(shù)據(jù)采集設(shè)備軟件設(shè)計(jì)
終端環(huán)境數(shù)據(jù)采集設(shè)備主要任務(wù)是加入網(wǎng)關(guān)建立ZigBee網(wǎng)絡(luò)實(shí)現(xiàn)組網(wǎng)通信,,并周期性輪詢訪問傳感器讀取函數(shù),對空氣溫濕度,、土壤濕度,、光照強(qiáng)度的數(shù)據(jù)進(jìn)行采集和上傳?;赯-Stack協(xié)議棧的軟件設(shè)計(jì)流程如下:
(1)根據(jù)系統(tǒng)設(shè)計(jì)需求設(shè)定傳感器采集特定的初始化設(shè)備ID號,、消息發(fā)送ID號、任務(wù)ID號和串口分配等,;
(2)協(xié)議棧中選擇數(shù)據(jù)發(fā)送模式為afAdder 16 bit,,即16位短地址的點(diǎn)對點(diǎn)發(fā)送模式;
(3)在協(xié)議棧應(yīng)用層目錄樹下添加傳感器驅(qū)動程序的C文件,;
(4)在協(xié)議棧消息發(fā)送函數(shù)中寫入傳感器數(shù)據(jù)采集讀取函數(shù),。
終端設(shè)備通電后首先對協(xié)議棧配置進(jìn)行初始化處理,包括初始化設(shè)備ID號,、消息發(fā)送ID號,、任務(wù)ID號和串口分配等,然后選擇通信區(qū)域內(nèi)的網(wǎng)關(guān)節(jié)點(diǎn)完成組網(wǎng),。終端節(jié)點(diǎn)會向網(wǎng)關(guān)發(fā)送“心跳包”檢驗(yàn)是否通信成功以及傳感器是否處于在線狀態(tài),定時(shí)發(fā)送結(jié)束后終端節(jié)點(diǎn)會進(jìn)入休眠狀態(tài)采用“TIMER sleep”模式(即系統(tǒng)需要一個(gè)預(yù)定的延時(shí)后被喚醒執(zhí)行下一個(gè)任務(wù)),。然后就可以驅(qū)動傳感器讀取數(shù)據(jù)函數(shù)采集環(huán)境實(shí)時(shí)數(shù)據(jù),,并且對不同氣象環(huán)境數(shù)據(jù)采集時(shí)間也有所區(qū)別,其中空氣溫濕度,、土壤濕度,、光照強(qiáng)度采集節(jié)點(diǎn)分別每隔5 min、20 min,、10 min時(shí)間結(jié)束休眠完成數(shù)據(jù)采集,,封裝后上傳到網(wǎng)關(guān)。每當(dāng)數(shù)據(jù)上傳后,,傳感器會繼續(xù)維持休眠的狀態(tài)等待下一次的采集工作,,這種方式能夠很大地降低功耗,提高電池的使用壽命,。終端環(huán)境采集設(shè)備功能實(shí)現(xiàn)基本流程如圖3所示[4],。
2.2 網(wǎng)關(guān)軟件設(shè)計(jì)
網(wǎng)關(guān)在系統(tǒng)的整體實(shí)現(xiàn)中屬于中樞的位置,主要是允許終端采集設(shè)備入網(wǎng),、接收氣象環(huán)境數(shù)據(jù)以及通過串口通信將數(shù)據(jù)傳輸給NodeMCU模塊,。本系統(tǒng)網(wǎng)關(guān)采用CC2530射頻模塊和NodeMCU模塊串口通信的設(shè)計(jì)方案,利用UART和CC2530通信以及NodeMCU的WiFi功能實(shí)現(xiàn)數(shù)據(jù)上傳到以太網(wǎng)中。因此,,在軟件設(shè)計(jì)部分主要有如下幾點(diǎn):
(1)設(shè)置終端節(jié)點(diǎn)入網(wǎng)白名單,;
(2)接收到終端節(jié)點(diǎn)上傳的心跳包,用心跳次數(shù)判斷終端設(shè)備處于在線或離線狀態(tài),;
(3)在終端節(jié)點(diǎn)的數(shù)據(jù)增加幀頭幀尾,。
在網(wǎng)關(guān)建立白名單,將系統(tǒng)安全需求放在設(shè)備上,,終端設(shè)備請求入網(wǎng)前需要在白名單中先注冊設(shè)備MAC地址,,目的是出于系統(tǒng)安全性考慮,防止未知設(shè)備與網(wǎng)關(guān)建立通信,。通過上傳的心跳次數(shù),,在網(wǎng)關(guān)部分判定終端設(shè)備是否處于在線狀態(tài),離線則建立重連機(jī)制,,確保所有終端設(shè)備都已正常工作,。網(wǎng)關(guān)收到終端設(shè)備上傳的數(shù)據(jù)后首先對數(shù)據(jù)增加幀頭(0xFA 0xFA)、幀尾(0xAF 0xAF),,以便判斷網(wǎng)關(guān)接收的數(shù)據(jù)是否為真,,確保數(shù)據(jù)的準(zhǔn)確性。網(wǎng)關(guān)和終端設(shè)備間的數(shù)據(jù)格式見表1,,網(wǎng)關(guān)功能實(shí)現(xiàn)流程圖如圖4所示[5],。
2.3 NodeMCU與MQTT應(yīng)用開發(fā)
NodeMCU在Arduino開發(fā)環(huán)境下實(shí)現(xiàn)連接WiFi功能,與ZigBee技術(shù)相結(jié)合構(gòu)建IoT網(wǎng)關(guān),,接收到來自串口上傳的數(shù)據(jù),,通過MQTT進(jìn)行數(shù)據(jù)的發(fā)送(發(fā)布)和接收(訂閱)等操作[6-7]。NodeMCU功能實(shí)現(xiàn):
(1)NodeMCU與CC2530串口通信接收并緩存終端數(shù)據(jù),;
(2)NodeMCU模塊中的WiFi功能加入無線網(wǎng)絡(luò)中,,并利用MQTT協(xié)議與數(shù)據(jù)庫傳輸數(shù)據(jù);
(3)MQTT發(fā)布主題,,將數(shù)據(jù)發(fā)布到所有已訂閱該主題的智能手機(jī),、電腦的平臺,數(shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)如圖5所示,。
3 實(shí)驗(yàn)測試及結(jié)果
本研究在包頭市天佑生態(tài)科技園區(qū)(其地域面積廣,,大棚數(shù)量多,對通信信號影響小)進(jìn)行數(shù)據(jù)采集接以及組網(wǎng)試驗(yàn),,采集到土壤濕度,、空氣溫濕度、光照強(qiáng)度等信息,。目前選擇了7個(gè)獨(dú)立的農(nóng)業(yè)大棚進(jìn)行節(jié)點(diǎn)布置,,為保證測量數(shù)據(jù)傳輸效率,,終端采集節(jié)點(diǎn)的距離按照要求進(jìn)行放置,并進(jìn)行了兩個(gè)重要方面的測試:
(1)節(jié)點(diǎn)功耗測試
對于節(jié)點(diǎn)功耗的測量采用較為精確的電阻電壓方法[3],。為保證測量到CC2530射頻模塊和電源模塊接通電源后的功耗,,在射頻模塊的電源輸出接口處串接1個(gè)10 Ω的電阻,用萬用變測量實(shí)際電壓值U,,計(jì)算得實(shí)際電流I=U/10[2],。將節(jié)點(diǎn)分為休眠(休眠時(shí)工作電流在微安級,所以可以忽略不記),、接收和發(fā)射等3種狀態(tài),,分別測得接收和發(fā)射狀態(tài)下所需的瞬時(shí)電流加上傳感器所需的工作電流為112 mA和126 mA,為了減少誤差,,總電流取為130 mA,。依據(jù)本系統(tǒng)終端節(jié)點(diǎn)對氣象環(huán)境數(shù)據(jù)的采集是定時(shí)采集(測試電源功耗期間,設(shè)定3種傳感器同時(shí)采集數(shù)據(jù)),,設(shè)定系統(tǒng)每小時(shí)執(zhí)行接收命令和發(fā)送數(shù)據(jù)的動作時(shí)間為50 s,,節(jié)點(diǎn)功耗為1.80 mA·h/d,則使用總電量為3 000 mA·h,,兩節(jié)五號3.7 V電池可以滿足該系統(tǒng)的節(jié)點(diǎn)連續(xù)工作達(dá)1 667 h,,滿足了系統(tǒng)低功耗要求。
(2)網(wǎng)絡(luò)的丟包率測試
依據(jù)3種傳感器節(jié)點(diǎn)采集的環(huán)境特性以及監(jiān)測需求,,設(shè)定了土壤濕度采集周期為20 min,、空氣溫濕度采集周期為5 min、光照強(qiáng)度采集周期為10 min,。在協(xié)議棧中采用終端采集節(jié)點(diǎn)休眠喚醒機(jī)制,,連續(xù)采集環(huán)境數(shù)據(jù)。并由終端采集節(jié)點(diǎn)上傳數(shù)據(jù)到協(xié)調(diào)器節(jié)點(diǎn)(網(wǎng)關(guān)),,利用仿真下載器USB Debug Adapter和TI Packet Sniffer捕獲數(shù)據(jù)包[3],,結(jié)果如表2所示,。由表2分析并結(jié)合系統(tǒng)部署環(huán)境可知,,丟包率呈增長趨勢的主要原因是,終端采集節(jié)點(diǎn)與協(xié)調(diào)器距離以及存在的障礙物干擾,,尤其是在距離超過100 m后丟包率明顯增加[5],。但在農(nóng)業(yè)大棚實(shí)際應(yīng)用中終端采集節(jié)點(diǎn)向網(wǎng)關(guān)傳送數(shù)據(jù)的距離在100 m以下范圍,整個(gè)網(wǎng)絡(luò)平均丟包率降低在2.6%以下,,已經(jīng)可以滿足對大棚內(nèi)空氣溫濕度,、土壤濕度、光照強(qiáng)度數(shù)據(jù)監(jiān)測要求,。
4 結(jié)論
基于物聯(lián)網(wǎng)的溫室大棚環(huán)境監(jiān)測系統(tǒng)的研究,,通過ZigBee以及與NodeMCU平臺的技術(shù)融合,,搭建了氣象環(huán)境監(jiān)測系統(tǒng),實(shí)現(xiàn)了用戶遠(yuǎn)程對農(nóng)業(yè)大棚氣象環(huán)境信息的實(shí)時(shí)采集,,用戶可以十分便捷地了解信息,,做出相應(yīng)的解決措施,來減少外界環(huán)境對農(nóng)作物的不利影響,。系統(tǒng)具有良好通信效率,,運(yùn)行安全穩(wěn)定,經(jīng)濟(jì)實(shí)惠(成本平均50元每套),,非常適用于發(fā)展迅速的農(nóng)業(yè)大棚行業(yè),。本系統(tǒng)應(yīng)用詮釋了物聯(lián)網(wǎng)技術(shù)的優(yōu)越性,在一定程度上解放了生產(chǎn)力,,提高了農(nóng)業(yè)大棚農(nóng)產(chǎn)品生產(chǎn)質(zhì)量,,對其他農(nóng)業(yè)生產(chǎn)系統(tǒng)的氣象監(jiān)測具有良好的借鑒意義。
參考文獻(xiàn)
[1] 方中純,,李海榮.基于Arduino和ZigBee的物聯(lián)網(wǎng)智能網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)[J].山東工業(yè)技術(shù),,2018(2):101-102.
[2] 謝振偉,馬蓉,,趙天圖,,等.基于ZigBee無線傳感器網(wǎng)絡(luò)的棉田節(jié)水灌溉系統(tǒng)設(shè)計(jì)[J].江蘇農(nóng)業(yè)科學(xué),2017,,45(16):225-228.
[3] 朱凱.基于ZigBee無線技術(shù)的農(nóng)田數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].昆明:昆明理工大學(xué),,2017.
[4] 劉媛媛,朱路,,黃德昌.基于GPRS與無線傳感器網(wǎng)絡(luò)的農(nóng)田環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)[J].農(nóng)機(jī)化研究,,2013,35(7):229-232.
[5] 向乾.基于WSN的溫室大棚信息采集智能化監(jiān)測系統(tǒng)研究[J].農(nóng)業(yè)科技與裝備,,2017(8):27-31,,34.
[6] 徐振華.基于ZigBee與Wi-Fi融合的智能家居系統(tǒng)研究與設(shè)計(jì)[D].太原:中北大學(xué),2018.
[7] 崔陽,,張維華,,白云峰.一種基于Arduino的智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2014,,40(4):123-125.
作者信息:
崔麗珍,,徐錦濤,丁福星,,史明泉,,胡海東
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭014010)