孫天嬌 周霞 王英翔
【摘要】 通過比較幾種常用的無線傳輸技術,本文設計并實現了一種使用ZigBee技術無線通信,采用單片機進行數據采集處理的遠程監測系統,制定了環境數據識別、獲取的系統方案。系統由現場數據采集終端和遠程監測中心兩級網絡構成,文章介紹了其結構、功能及實現方法,對數據采集終端進行了軟硬件設計,實現了環境數據的采集處理,并采用Visual C++面向對象的編程思想,完成了系統的上位機軟件設計。
【關鍵詞】 ZigBee 單片機 無線監測
日常生活中,諸多環境對環境參數有嚴格的要求,如溫室花房、儲物倉庫、儀器設備檢測室等。這類環境監測系統一般需要設有一個或者多個控制中心,配備大量的現場數據采集點,分散的采集點需要通過一定的通信手段來實現與中心控制單元間的數據交互,進而實現對環境參數的監測。本文基于ZigBee技術實現了一種環境參數無線監測系統,可以實現對溫濕度、光照強度等數據的無線采集及監測。
一、ZigBee與其他短距離通信技術的對比
1.1 藍牙(BlueTooth)
藍牙的工作頻率為2.4GHz,有效范圍約10m。它對語音和特定網絡提供支持,需要協議棧提供250kB系統開銷,增加了系統成本和集成復雜性。藍牙的局限性在于只能配置7個節點,制約了其在大型傳感器網絡開發中的應用。
1.2 WiFi(Wireless Fidelity,IEEE 802.11)
WiFi的工作頻率為2.4GHz。IEEE802.11的常用版本包括a(5.8GHz,帶寬為54Mbps)、b(2.4GHz,帶寬為11Mbps)、g(2.4GHz,帶寬為22Mbps)。它的局限性在于功耗較大,不間斷使用需要配備充電設備。
1.3 IrDA(Infrared Data Association)
IrDA利用紅外線進行點對點通信,其標準的無線傳輸速率已逐步發展到4Mbps、16Mbps。支持它的軟硬件技術目前都很成熟,在小型移動設備上被廣泛使用。它具有體積小、功耗低、連接方便、簡單易用、成本低廉的特點。IrDA的局限性在于只能連接兩臺設備,且存在有視距角度等問題。
1.4 ZigBee
ZigBee(IEEE802.15.4)使用2.4GHz波段,采用跳頻技術和擴頻技術。一個ZigBee星型網絡中最多可以有254個子節點。節點可以包括儀器和家庭自動化應用設備,使得其在工業監控、傳感器網絡、家庭監控、安全系統等領域有很大的發展空間。同時,它的技術功耗低,被業界認為是最適合應用在工控場合的無線方式。與以上幾種短距離無線通信技術相比,ZigBee具有如下特點:(1)功耗更低;(2)成本低;(3)網絡容量大;(4)工作頻段靈活;(5)可靠。
二、系統總體設計
系統通過各節點處的溫度傳感器、濕度傳感器、光照強度傳感器等采集環境數據,并轉換成相應范圍的模擬電壓信號,然后利用單片機的模數轉換功能將模擬信號轉換為數字信號進行相應處理,最后通過ZigBee通信模塊將數據由天線發出,由遠程數據中心的ZigBee通信模塊接收,計算機完成監測并存儲數據至PC機內。
系統的整體框圖如圖1所示,本監測系統由三部分構成。
遠程數據中心:由計算機和相關的ZigBee模塊組成,ZigBee模塊通過串口與計算機相連。ZigBee模塊作為協調器節點,負責網絡的啟動和給其它終端節點分配網絡地址,并作為無線接收端讀取傳感器的測量值。
前端數據采集:每個終端采集點由傳感器、單片機、ZigBee等模塊構成,負責采集并上傳數據。根據用戶的需要,可靈活配置數據采集點的個數。
網絡中繼:根據實際環境的需要,設置相應個數的路由節點,實現數據的轉發,完成遠距離通信。
基于ZigBee的監測系統支持三種網絡拓撲結構:星狀拓撲結構(一個節點作為網絡協調器,其他所有節點之間與協調器相連)、樹狀拓撲結構(一些節點一次經過另外一些節點才能到達網絡協調器)和網狀拓撲結構(無須主協調點,各個節點之間分享路由職責,三種拓撲結構如圖2所示。一個星型結構的Zigbee網絡最多可以容納254個從設備和一個主設備,一個區域內可以同時存在最多100個ZigBee網絡,網絡組成靈活。
普通的溫室、倉庫、實驗室等環境結構較為簡單,模塊的數據傳輸能力強、距離近、無障礙物,可使用星狀結構,如圖2(a)所示;若采集節點距離協調器較遠,其數據傳輸可通過添加中繼路由節點實現,即使用樹狀結構,如圖2(b)所示;若采集節點多且分布廣、模塊的傳輸能力不足、現場障礙物過多,使用網狀結構較為可靠,如圖2(c)所示。
三、前端數據采集節點的硬件設計及實現
數據采集節點由傳感器模塊、單片機處理模塊、ZigBee通信模塊、雙公頭適配器等硬件構成。傳感器模塊采用LT系統傳感器,可測量溫度、濕度、光照強度等;單片機處理模塊使用STC系列單片機;ZigBee通信模塊使用XBee/XBee Pro系列套件;由于單片機與XBee/XBee Pro模塊的I/O口均為母口,使用雙公頭適配器連接二者實現數據傳輸。
以單個節點為例,節點的硬件連接示意圖及數據流圖如上圖3所示,圖中LT傳感器的三個輸出引腳與單片機的ADC0、ADC1、ADC2輸入相連接,分別對應溫度、濕度、光照強度,傳感器輸出0~5V標準電壓,通過單片機進行數據的A/D轉換,輸出電壓值轉化為數字量。單片機的輸出通過串口連接到ZigBee終端節點的UART接口上,將轉換完成的數字量通過天線發出,通過ZigBee無線網絡送至與上位機PC相連接的協調器模塊,并進行數據處理。系統中采用的主要硬件模塊如下:
3.1 ZigBee無線通信模塊
XBee/XBee Pro為2.4GHz無線通信接口,支持ZigBee協議棧,模塊功耗僅為3.1mW(+5dBm)。如下圖4所示是XBee Pro模塊的引腳排列圖,該模塊有20個引腳。RS232接口電路板的引腳可連接到VCC、GND、DOUT和DIN引腳。其中DIN是信號輸入引腳,可作為UART數據輸入,通常與處理器的UART接收端TX相連;DOUT為信號輸出引腳,可作為UART數據輸出,通常與處理器的UART接收端RX相連。
圖5 XBee/XBee Pro模塊的UART內部數據控制流程
當串行數據通過DIN引腳進入XBee/XBee Pro模塊后,數據會存儲在DI緩沖器中,直到被發送器通過天線發送出去;當RF數據由天線接收后,接收數據進入DO緩沖器,并通過串口發送到主機,直到被處理。在一定條件下,模塊可能無法立即處理在串位接收緩沖中的數據。如果大量的串行數據發送到模塊,可能需要使用CTS流控以避免串行接收緩沖溢出。
3.2 傳感器
本系統所使用的LT系統傳感器,是專門針對環境數據測量的傳感器。傳感器輸出3路0~5V的模擬電壓信號,信號分別與溫度、濕度和光照強度成線性對應關系。
3.3 單片機
采用STC12C5A60S2系列單片機實現對傳感器測量值的轉換處理,該單片機指令代碼完全兼容傳統8051,內部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉換。因而每個數據采集節點均可接入8路測量值,用戶可根據需要進行傳感器的增減。
3.4 雙公頭適配器
由于單片機模塊和XBee/XBee Pro模塊上的RS232接口均為母口,主要接口Pin2(RXD)、Pin3(TXD)、Pin5(CND)。其間用一塊兩端都是公口(公對公)的適配器相連,示意圖及內部接線圖如下圖6所示:
圖6 雙公口適配器及其內部引腳圖
如上圖6所示,將P1端與P2段的發送與接收引腳交叉相連;P1端的5腳(地)與P2端的5腳(地)直連。
四、系統的網絡配置及軟件設計
4.1 ZigBee模塊的配置
ZigBee網絡設備分為三種:協調器,主要負責網絡的啟動和給其它終端節點分配網絡地址;中繼路由器,實現數據的轉發;終端節點,數據的采集及上傳。
首先使用與XBee/XBee Pro模塊配套的X-CTU軟件對模塊進行相應節點的參數設置:協調器,配置為ZIGBEE COORDINATOR API/AT模式;路由器配置為ZIGBEE ROUTER API/AT模式,終端節點配置為ZIGBEE END DEVICE API/AT模式。AT模式即透傳模式,模塊的串口一直工作在傳輸模式下,將接收數據連續發送至目標地址。API模式,是以包含地址和數據的命令幀的形式發送。AT方式易于查詢,可以在X-CTU軟件中方便的查詢到所有節點,方便管理,而API方式有返回碼,有利于數據的可靠性傳輸。無論是AT方式還是API方式都可以在所構建的同一個網絡中進行通信。
再將配置好的協調器和終端節點分別與PC機和數據采集模塊通過串口相連。各模塊工作時,須使用統一的串口參數,一般設置為XBee/XBee Pro模塊默認的串口參數9600-8-n-1。以終端節點為例,設置界面如圖7所示,終端節點及路由節點數據傳輸的目標地址設置為協調器節點的源地址。(圖7)
4.2 前端數據采集的程序
前端數據采集的程序用KeilC51編寫主要用于采集現場環境數據,并實現數據的定時無線發送。軟件采用模塊化設計,包括串口初始化程序、定時器初始化程序等,其流程如圖8所示。首先進行單片機的初始化,然后進行定時器的初始化,定時時間由用戶選擇性設置,定時中斷發生時由單片機通過串口向通信模塊發送傳送數據請求,發送完畢,等待收到數據,收到后則送往PC顯示,以實現實時更新。模塊軟件設計流程見圖8。
4.3 遠程數據中心上位機程序
遠程數據中心上位機上的接收器的程序用面向對象的可視化語言VC++編寫,主要用于接收現場終端采集節點發送過來的無線數據,并判斷數據的準確性,最后將接收到的數據寫入數據庫中。其接收程序的流程圖如圖9所示。
實際應用中,用戶可根據需要,創建數據庫,設置數據入庫存儲,可便于用戶查看或調用歷史測量數據;或設定預警處理,若溫度超過用戶設定的上限值,發送自動報警等,可及時發現問題并糾正。
五、系統測試及分析
系統組建完成后,進行了系統測試。測試中,系統配置了兩個溫度數據采集節點,節點1放置在自然室溫環境下,節點2放置在恒溫15℃的環境下。在時間段8:30-17:00每隔半小時采集一組數據,得溫度變化曲線圖。節點1處放置了比對溫度計,每隔半小時進行一次手動記錄,得到溫度變化曲線與節點1的測量記錄進行對比。
圖10(a) 節點1溫度變化圖10(b) 溫度計測量值 圖10(c)節點1溫度變化
由圖(a)(b)可見,節點1的溫度記錄與溫度計測量值相近,溫度變化符合秋季實際溫度情況,溫度隨時間變化穩定;由圖(c)可見,節點2的溫度變化基本在15℃附近,符合恒溫條件。說明無線通信暢通,網絡結構穩定。
六、結論
本文實現了一種基于ZigBee的環境無線監測系統,本系統的優點是:模塊化設計、系統結構簡單、網絡組態靈活、功耗低、可靠性高、安裝方便等。用戶可以根據需要自行增減采集節點;ZigBee終端節點支持多種數據傳輸端口(RS232、RS485、USB等),使得多種傳感器、控制器可與之直接相連接。系統控制界面友好,易于操作。因此本監測系統具有較高的實用性和推廣價值,可在溫室花房、儲物倉庫、儀器設備存儲室及其他眾多領域得到良好的運用。
參考文獻
[1] 高超. 基于ZigBee的智能用能管理系統設計和實現.電腦知識與技術,2011(10):7489-7491
[2] 方水良,王加興. 基于XBee的無線數據采集系統開發和應用.機電工程,2010(3):53-56
[3] 王靜霞. 一種與zigBe協議兼容的RF模塊.電子工程師,2007(3):24-27
[4] 朱曉明,趙曉麗. 基于UART接口的ZigBee傳感器網絡的設計.機床與液壓,2008(10):271