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