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