胡偉偉 趙文龍 程若發 陳園



摘 要: 為了提高大棚種植效率,設計一種大棚環境監測系統。設計基于ZigBee協議,以TI公司Z?Stack協議棧及CC2530為核心芯片,結合溫濕度傳感器DHT11,LabVIEW軟件編寫的上位機程序。分別組成協調器和多個終端節點。協調器是整個ZigBee網絡核心,負責組建整個系統網絡,能解析當前ZigBee網絡中終端節點數據包,通過RS 232協議發送給上位機。終端節點采集環境溫濕度信息,通過ZigBee網絡發送給協調器,若有新的節點或者舊節點加入、離開網絡,協調器能立刻反映當前網絡狀態。經實驗測試驗證,系統設計簡潔、運行穩定、網絡安全性可靠,有很好的應用前景。
關鍵詞: ZigBee; 協調器; 傳感器; CC2530; LabVIEW; 大棚種植; 環境監測
中圖分類號: TN99?34 文獻標識碼: A 文章編號: 1004?373X(2018)16?0035?04
Abstract: An environment monitoring system for greenhouse is designed to improve the efficiency of greenhouse planting, which is designed on the basis of the ZigBee protocol, taking the Z?Stack protocol stack and CC2530 of TI as the core, and combining with the temperature?humidity sensor DHT11 and host computer program compiled by using the LabVIEW software. The system is composed of a coordinator and multiple terminal nodes. The coordinator, as the core of the entire ZigBee network, is responsible for the formation of the entire system network, can parse data packets for terminal nodes of the current ZigBee network, and send them to the host computer by means of the RS 232 protocol. The terminal nodes collect the environment temperature?humidity information, and send it to the coordinator via the ZigBee network. If any new node or old node joins or leaves the network, the coordinator can immediately present the status of the current network. The results of the experimental test show that the system is simple in design, runs stably, has reliable network security and a good application prospect.
Keywords: ZigBee; coordinator; sensor; CC2530; LabVIEW; greenhouse planting; environment monitoring
我國是世界上人口最多的國家之一,如何提高糧食產量和種植水平是非常關鍵的問題。近些年來,大面積大棚種植技術得到廣泛應用,然而提高大棚管理技術,提高大棚產量需要科學的方法來實現。其中,及時檢測大棚內空氣溫度和濕度,合理控制溫濕度是提高農作物生長的重要方法。針對這樣的問題,本文提出一種基于ZigBee技術的無線溫濕度監測系統設計方案。利用ZigBee協議的特點,以TI公司的CC2530低功耗無線專用芯片為核心。結合DHT11溫濕度傳感器以及外圍電路,編寫監控上位機軟件,設計了一套能夠實時監測大棚溫濕度的軟硬件系統。
1.1 ZigBee及CC2530
ZigBee技術是近年來新興的一種低速率、低功耗、短距離的無線網絡技術,是IEEE無線個人區域網工作組的一個簡稱。國際標準協議IEEE 802.15.4,工作頻段在2.4 GHz,屬于免費公用頻段[1?2]。目前主要應用于智能家居、物聯網、安全監視、環境監視中。ZigBee有三種網絡拓撲結構:星形網絡結構、樹形網絡結構和Mesh網絡結構[3?5]。
CC2530是TI公司為ZigBee技術量身打造的一款MCU[6],具有低功耗的特點,另外還加入強大的無線前端,集成RF無線收發機,射頻調制模式為直接序列擴頻模式(DSSS),發射功率可以程控,CC2530有專用寄存器配置其發射功率;可編程輸出功率可達4.5 dB;在Z?Stack協議棧中接收數據包中就包含接收信號強度指示器(RSSI),接收可以通過讀取數據包中RSSI值判斷出當前信號連接質量[7?9]。僅需要很少的外圍電路就可構成ZigBee協調器和節點。
1.2 系統結構設計
系統采用星形網絡拓撲結構,即以一個協調器為網絡核心,多個終端節點連接網絡且網絡節點之間互不通信。采用星形結構的好處是省去路由節點的中繼,簡化系統設計。在網狀網絡拓撲和樹狀網絡拓撲中,都需要路由節點作為中繼,會增加系統開銷,增加了系統能耗,使整個系統變得復雜化。系統結構如圖1所示。

系統由上位機、協調器和多個終端節點組成。理論上ZigBee網絡節點最大支持數為65 000個,系統只設計兩個終端節點和一個協調器。可在大棚管理中心的PC機上運行上位機軟件,操作人員坐在辦公室內就可以實時觀測大棚內溫濕度狀況。協調器是基于CC2530芯片,與PC機通過RS 232通信線連接,可將ZigBee網絡中終端節點發送的數據包信息解析出來,然后通過RS 232傳送給上位機。終端節點同樣也是采用CC2530芯片為核心,通過芯片I/O口與DHT11傳感器進行單總線數據通信,將采集的數據根據總線協議讀取出來,處理加入ZigBee協議報文中,節點加入網絡成功后進行報文傳送。
2.1 電路結構
為節省系統能耗,硬件設計盡量精簡。如圖2所示,協調器硬件結構包含電源模塊、通信模塊、天線模塊;CC2530標準輸入電壓3.3 V,需要外圍電源轉換電路,采用AMS1117?3.3 穩壓芯片將USB接口5 V電壓轉換為3.3 V;通信模塊為MAX232電平轉換電路,將CC2530輸出的TTL電平轉換為RS 232電平與PC機串口通信;天線模塊為阻抗匹配網絡,采用π型電路設計。終端節點外設電路包含DHT11傳感器采集模塊、天線和電池供電電路。
2.2 核心電路
協調器和終端節點電路核心模塊采用相同設計,都采用主核心板PA和地板分離的方式,圖3為PA板上主要是芯片和射頻電路部分。
3.1 協調器程序設計
協調器即無線自組織網絡的網關,負責網絡中節點數據搜集、數據包解析和數據處理轉發。程序流程圖如圖4所示。利用IAR集成開發工具,移植TI官方Z?Stack協議棧。在協議棧的硬件層初始化系統需要使用到硬件設備。硬件初始化主要是對CC2530芯片外設時鐘、串口、RF射頻的初始化;初始化完成,程序就進入協議棧任務函數,首先建立ZigBee網絡。有節點加入到網絡,在協議棧內部注冊SYS_EVENT_MSG系統消息事件,通過注冊的事件類型來調用應用層事件處理函數Coordinator_ProcessEvent(),在處理函數中調用Osal_msg_receive()消息處理函數來判斷具體觸發的事件類型,若為AF_INCOMING_MSG_CMD數據接收事件類型,則為ZigBee節點發來數據包[10]。在afIncomingMSGPacket_t包中解析出數據內容,并調用Uart_send()函數,將數據按照自定義數據幀格式(在一幀數據前加上本次節點的幀頭數據,上位機根據幀頭數據可以解析判斷出是哪個終端節點的數據)發送到上位機。除了解析出需要的有效信息外,還需要關注的就是當前網絡連接質量。此時就需要在Z?Stack協議棧程序中找到接收報文的位置,提取在數據包函數afIncomingMSGPacket_t結構體中的LinkQuality成員。計算出LinkQuality能夠反映當前網絡中此數據包節點的連接質量。根據公式(1)可在程序中計算出RSSI值[10?13]。
3.2 終端節點程序設計
終端節點主要功能是加入協調器自組織的ZigBee網絡中,將實時采集到的數據發送給網絡中的協調器。程序流程圖如圖5所示。
硬件初始化后程序就進入協議棧的任務輪詢[13],判斷是否存在相應的ZigBee網絡,加入網絡成功后,協議棧的ZDO層會向應用層發送SYS_EVENT_MSG的消息事件;協議棧會根據相應的事件ID類型來調用事件處理函數,并根據當前網絡狀態通知應用層。應用層接收到狀態改變后開始調用時間管理函數Osal_start_timerEx( )來周期性地調用DHT11_data_event()讀取DHT11數據轉換結果,并調用Send_data_event()發送數據。在網絡沒有加入成功之前,ZDO設備對象層向應用層傳遞的狀態是未連接狀態,應用層就調用LED_ulink_task()函數,節點的網絡狀態指示燈會一直處于閃爍狀態,加入網絡成功后,LED_link_task()函數就會被調用。指示燈為常亮狀態,表示此時網絡連接正常。
3.3 上位機程序設計
上位機采用NI公司的LabVIEW軟件,需安裝NI公司的VISA驅動使用串口通信[9]。設計包括兩部分,前面板的界面設計和后面板的程序設計。前面板主要是界面布局和控件擺放。前面板界面如圖6所示。
后面板主要實現邏輯代碼功能。代碼包含初始化串口資源配置,循環查詢串口緩沖區字節數。滿足條件讀取串口緩沖區數據,按照協調器發送的數據幀格式進行數據解包,如圖7所示。協調器發送數據協議幀格式第一個字節為0X0A,0X0B,…,后兩個字節為實際數據。上位機在串口緩沖區提取到數據幀后,規定幀格式解析出相對應的節點信息。將相應節點數據進行ASCII碼和數值轉換,送到顯示控件顯示數值,將數值綁定到波形圖表控件顯示相應的溫濕度波形。
為了測試數據的準確性,分別對某一天不同時間點的測試數據與實際標準數據對比分析,如表1所示。溫度測量值和實際值平均誤差為4.2%;濕度測量值與實際平均誤差為2.9%。在實際大棚管理中,能滿足實際要求。此外需要測試可靠性問題:距離和數據丟包率之間的關系。為了測試設備是否能滿足實際環境的要求,在空曠無任何障礙物阻擋的情況下,進行不同距離傳輸對丟包率[10]和RSSI值的影響,實驗采用2.4 GHz高增益、阻抗匹配50 Ω的RF射頻天線,每個數據進行50次測量取平均值。數據分析如表2所示。
通過實驗數據可以分析得出:在一般正常情況下,協調器和終端節點距離500 m左右,數據丟包率在1.5%左右,實際中小規模的大棚距大棚管理中心半徑距離也是500 m左右。若要用在大規模大棚種植中,可以在程序里修改發射功率寄存器的值,提高終端節點的發射功率至3 dB;有效距離就會相應增加,但增加功率的同時也會增加終端節點的功耗,這樣終端節點的電池壽命就會隨之減少。所以根據實際情況可以做出適中的選擇。
本系統采用ZigBee星形拓撲網絡結構,以CC2530芯片為核心,設計協調器和多個終端節點。經實驗測試,協調器能夠自組織網絡;終端節點能夠穩定地加入網絡中并進行數據采集和數據發送;上位機能夠實時監測到各個網絡節點溫濕度信息,能夠準確地判斷出各節點數據鏈路連接情況。與傳統人工監測相比,可大大減少人工作業時間,減少看管人員,很好地提高了大棚管理的效率。
[1] 胡慶新,程陣.基于ZigBee的無線傳感器網絡定位系統的設計[J].電子技術應用,2009,35(11):26?29.
HU Qingxin, CHENG Zhen. The design of wireless sensor network platform positioning system based on ZigBee [J]. Application of electronic technique, 2009, 35(11): 26?29.
[2] 王鑫,潘賀,楊簡.基于CC2530的ZigBee無線溫濕度監測系統設計[J].中國農機化學報,2014,35(3):217?220.
WANG Xin, PAN He, YANG Jian. Design of ZigBee wireless temperature and humidity monitoring system based on CC2530 [J]. Journal of Chinese agricultural mechanization, 2014, 35(3): 217?220.
[3] 任志健,莫偉健,萬智萍.基于CC2530的ZigBee2007/PRO協議的無線溫濕度系統設計[J].電子設計工程,2012,20(10):40?43.
REN Zhijian, MO Weijian, WAN Zhiping. A wireless temperature and humidity monitoring system based on CC2530 ZigBee2007/PRO protocol stack [J]. Electronic design engineering, 2012, 20(10): 40?43.
[4] ZHANG Qian, YANG Xianglong, ZHOU Yiming, et al. A wireless solution for greenhouse monitoring and control system based on ZigBee technology [J]. Journal of Zhejiang University?Science A (Applied physics & engineering), 2007, 8(10): 1584?1587.
[5] 章偉聰,俞新武,李忠成.基于CC2530及ZigBee協議棧設計無線網絡傳感器節點[J].計算機系統應用,2011,20(7):184?187.
ZHANG Weicong, YU Xinwu, LI Zhongcheng. Wireless network sensor node design based on CC2530 and ZigBee protocol stack [J]. Computer systems & applications, 2011, 20(7): 184?187.
[6] 衣翠平,柏逢明.基于ZigBee技術的CC2530糧庫溫濕度檢測系統研究[J].長春理工大學學報(自然科學版),2011,34(4):53?57.
YI Cuiping, BAI Fengming. ZigBee?based CC2530 granary temperature and humidity monitoring System [J]. Journal of Changchun University of Science and Technology (Natural science edition), 2011, 34(4): 53?57.
[7] 倪敬飛.ZigBee?2006協議棧的實現及其應用[D].蘇州:蘇州大學,2009.
NI Jingfei. Implementation and application of ZigBee?2006 protocol stack [D]. Suzhou: Soochow University, 2009.
[8] 焦尚彬,宋丹,張青,等.基于ZigBee無線傳感器網絡的煤礦監測系統[J].電子測量與儀器學報,2013,27(5):436?442.
JIAO Shangbin, SONG Dan, ZHANG Qing, et al. Coal mine monitoring system based on ZigBee wireless sensor networks [J]. Journal of electronic measurement and instrument, 2013, 27(5): 436?442.
[9] 朱斌,譚勇,黃江波.基于ZigBee無線定位技術的安全監測系統設計[J].計算機測量與控制,2010,18(6):1247?1249.
ZHU Bin, TAN Yong, HUANG Jiangbo. Design of safety monitoring system based on ZigBee wireless position technology [J]. Computer measurement & control, 2010, 18(6): 1247?1249.
[10] 周賢偉,覃伯平,徐福華.無線傳感器網絡與安全[M].北京:國防工業出版社,2007.
ZHOU Xianwei, QIN Boping, XU Fuhua. Wireless sensor network and safety [M]. Beijing: National Defense Industry Press, 2007.
[11] 張堃,欒卉,蔣明杰,等.具有環境監測功能的智能路燈控制系統設計[J].實驗室研究與探索,2015,34(12):61?64.
ZHANG Kun, LUAN Hui, JIANG Mingjie, et al. The design of intelligent street lamp control system with the function of environment monitoring [J]. Research and exploration in laboratory, 2015, 34(12): 61?64.
[12] 周嶺松,余春暄.基于ZigBee技術的溫濕度控制系統[J].電子測量技術,2011,34(6):47?50.
ZHOU Lingsong, YU Chunxuan. Temperature and humidity controlling system based on ZigBee [J]. Electronic measurement technology, 2011, 34(6): 47?50.
[13] 葉楊婷.基于ZigBee和GPRS的地鐵環境監控系統設計[J].實驗室研究與探索,2015,34(12):65?68.
YE Yangting. Design of subway environment monitoring system based on ZigBee and GPRS [J]. Research and exploration in laboratory, 2015, 34(12): 65?68.