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