鄒 宇,聶明新,王 承
ZOU Yu, NIE Ming-xin, WANG Cheng
(武漢理工大學(xué) 信息工程學(xué)院,武漢 430070)
基于無線傳感網(wǎng)絡(luò)的測溫系統(tǒng)能部署于無人維護、條件惡劣的環(huán)境中,具有很強的適應(yīng)性。無線傳感器網(wǎng)絡(luò)(WSN)是信息科學(xué)領(lǐng)域中一個全新的發(fā)展方向,同時也是新興學(xué)科與傳統(tǒng)學(xué)科進行領(lǐng)域間交叉的結(jié)果。它是信息感知技術(shù)和采集技術(shù)的一場革命,是21世紀(jì)最重要的技術(shù)之一?,F(xiàn)在使用的遠(yuǎn)程控制和調(diào)節(jié)設(shè)備往往存在信號干擾大或建設(shè)難度大的問題。并且溫度控制器多局限于下位機的操作,在不適合人去的地方,有很強的局限性,更不便于統(tǒng)籌管理和數(shù)據(jù)分析。而我們的系統(tǒng)具有良好的電腦操作界面,全局的溫度顯示,能夠幫助管理人員了解更多的信息,實時的溫度數(shù)據(jù)更能為工業(yè)的生產(chǎn)提供依據(jù),彌補了下位機人機對話的不足以及操作的局限性。與此同時,該系統(tǒng)能將各個分立測溫點的數(shù)據(jù)通過無線數(shù)據(jù)傳輸匯總于一臺PC機,然后由上位機軟件進行分析處理,方便用戶控制且架設(shè)簡單。在數(shù)據(jù)的傳輸中我們使用無線傳感網(wǎng)絡(luò)傳輸替代有線傳輸方便架設(shè)同時增大了系統(tǒng)的應(yīng)用范圍。特別是在一些普通無線網(wǎng)絡(luò)干擾大、有線傳輸網(wǎng)絡(luò)架設(shè)難的領(lǐng)域無線傳感網(wǎng)絡(luò)的應(yīng)用將給生廠生活帶來極大地便利。采用上位機軟件進行數(shù)據(jù)處理,為用戶提供可視化的簡易操作界面,用戶只需要動動鼠標(biāo)就能了解、處理溫度數(shù)據(jù),同時軟件提供實時顯示溫度數(shù)據(jù)和顯示歷史溫度數(shù)據(jù)的功能方便用戶根據(jù)溫度數(shù)據(jù)進行分析。無線傳感器網(wǎng)絡(luò)的研究對如日中天的物聯(lián)網(wǎng)有較深的研究意義。對于物聯(lián)網(wǎng)中涉及組網(wǎng)、自組網(wǎng)、網(wǎng)絡(luò)的穩(wěn)定高效都有很好的幫助。
整個系統(tǒng)由傳感節(jié)點、終端節(jié)點及上位機組成。無線傳感器網(wǎng)絡(luò)是由許許多多功能相同或不同的無線傳感器節(jié)點組成,每一個傳感器節(jié)點由數(shù)據(jù)采集模塊(傳感器、A/D轉(zhuǎn)換器)、數(shù)據(jù)處理和控制模塊(微處理器、存儲器)、通信模塊(無線收發(fā)器)和供電模塊(電池、DC/AC能量轉(zhuǎn)換器)等組成。下面詳細(xì)分析系統(tǒng)的硬件和軟件組成。系統(tǒng)整體的結(jié)構(gòu)框圖如圖1所示。
圖1 無線傳感網(wǎng)絡(luò)的多點溫度測控系統(tǒng)框圖
本系統(tǒng)由測溫模塊、調(diào)溫模塊、單片機模塊、無線收發(fā)模塊、上位機控制模塊組成。利用溫度傳感器進行溫度采集,由單片機獲取溫度數(shù)據(jù),然后由無線發(fā)射模塊發(fā)送數(shù)據(jù)發(fā)送請求。無線接收模塊收到數(shù)據(jù)發(fā)送請求后發(fā)出應(yīng)答信號,然后無線發(fā)射模塊發(fā)送數(shù)據(jù)無線接收模塊接收數(shù)據(jù),完成數(shù)據(jù)遠(yuǎn)程傳輸。若在數(shù)據(jù)傳輸過程中有其它的發(fā)送模塊發(fā)送數(shù)據(jù)發(fā)送請求,接收模塊不對其應(yīng)答。但單片機記錄下發(fā)送請求的測溫點,當(dāng)數(shù)據(jù)傳輸結(jié)束,無線接收模塊對該測溫點應(yīng)答后開始數(shù)據(jù)傳輸。
數(shù)據(jù)傳輸完成后由單片機對收到的數(shù)據(jù)進行解碼,確定是由哪個測溫點發(fā)出的,再將測溫點信息通過串口發(fā)送給PC機由上位機軟件進行數(shù)據(jù)處理。上位機軟件實時顯示溫度并記錄溫度數(shù)據(jù)。當(dāng)溫度超過用戶所設(shè)上下限溫度時,上位機軟件自動通過串口發(fā)送指令給單片機,在測溫點與數(shù)據(jù)匯集點間進行數(shù)據(jù)傳輸,終端根據(jù)接收到的指令控制調(diào)溫模塊實現(xiàn)溫度調(diào)節(jié)。每一個節(jié)點都具有無線收發(fā)功能,起傳遞信息的作用。接收終端將數(shù)據(jù)傳輸給電腦。
圖2 系統(tǒng)的軟件流程圖
溫度數(shù)據(jù)采集模塊采集數(shù)據(jù)后,由數(shù)據(jù)編碼模塊將數(shù)據(jù)變?yōu)榘y溫點代號及溫度數(shù)據(jù)信息的格式,數(shù)據(jù)發(fā)送模塊發(fā)送數(shù)據(jù)。數(shù)據(jù)接收模塊收到數(shù)據(jù)后由數(shù)據(jù)解碼模塊解碼數(shù)據(jù),由串口通信模塊將數(shù)據(jù)發(fā)給電腦,上位機軟件對數(shù)據(jù)進行處理。當(dāng)采集到的信息溫度不在設(shè)定范圍內(nèi)時,上位機發(fā)出溫度調(diào)控指令給CC2430后再經(jīng)過一次數(shù)據(jù)傳輸,由調(diào)溫函數(shù)控制模塊控制調(diào)溫設(shè)備實現(xiàn)溫度調(diào)節(jié),操作過程可通過智能完成,也可由手工完成。
ZigBee是以每個獨立的工作節(jié)點為依托,通過無線通信組成星狀、片狀或網(wǎng)狀網(wǎng)絡(luò)。每個ZigBee網(wǎng)絡(luò)節(jié)點不僅本身可以作為監(jiān)控對象,還可以自動中轉(zhuǎn)別的網(wǎng)絡(luò)節(jié)點傳過來的數(shù)據(jù)資料。除此之外,每一個ZigBee網(wǎng)絡(luò)節(jié)點(FFD)還可在自己信號覆蓋的范圍內(nèi),和多個不承擔(dān)網(wǎng)絡(luò)信息中轉(zhuǎn)任務(wù)的孤立的子節(jié)點(RFD)無線連接。ZigBee擁有很多自身的技術(shù)優(yōu)勢,其中突出的優(yōu)勢為低成本和低功耗,在組網(wǎng)和路由性方面,因為ZigBee底層采用了直擴技術(shù),如果采用非信標(biāo)模式,網(wǎng)絡(luò)可以擴展得很大,因為不需同步而且節(jié)點加入網(wǎng)絡(luò)和重新加入網(wǎng)絡(luò)的過程很快,一般可以做到1秒以內(nèi),甚至更快,達到了路由的高效性。
圖3 主從節(jié)點的流程圖
本系統(tǒng)采用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、TDMA通信機制。在星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)中有一個稱為網(wǎng)絡(luò)協(xié)調(diào)器的中央控制器和若干個從備。協(xié)調(diào)器負(fù)責(zé)網(wǎng)絡(luò)的建立和維護,它必須是FFD節(jié)點,而且一般有穩(wěn)的電能供給,不需考慮耗能問題。從設(shè)備是FFD節(jié)點,系統(tǒng)中采用電池供電RFD節(jié)點,它只能直接與網(wǎng)絡(luò)協(xié)調(diào)器進行數(shù)據(jù)通信,而與其他從設(shè)之間通信必須通過網(wǎng)絡(luò)協(xié)調(diào)器轉(zhuǎn)發(fā)。在一個網(wǎng)絡(luò)中哪個設(shè)備作為網(wǎng)絡(luò)協(xié)調(diào)器一般說是由上層規(guī)定,不在ZigBee協(xié)議規(guī)定的范圍內(nèi)。系統(tǒng)采用簡單的方法是讓最初啟動的FFD成為網(wǎng)絡(luò)協(xié)調(diào)器。在這種情況下,當(dāng)一個FFD節(jié)點上電開始工作,它就會檢測周圍環(huán)境,選擇合適的信道,把自己設(shè)為協(xié)調(diào)器,并選擇一個網(wǎng)絡(luò)標(biāo)識符,然后建立起自己的網(wǎng)絡(luò)。網(wǎng)絡(luò)標(biāo)識符用來唯一的確定本網(wǎng)絡(luò),以和其他網(wǎng)絡(luò)相區(qū)分,網(wǎng)絡(luò)內(nèi)的從設(shè)備也是根據(jù)這個網(wǎng)絡(luò)標(biāo)識符來確定自己和網(wǎng)絡(luò)協(xié)調(diào)器從屬關(guān)系。網(wǎng)絡(luò)建立后,協(xié)調(diào)器就可允許其他設(shè)備與自己相連,加入到該網(wǎng)絡(luò)。
傳感節(jié)點與終端節(jié)點采用星型的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進行組網(wǎng)連接,組網(wǎng)成功連接后,由終端節(jié)點按照時分多址機制輪詢每個傳感節(jié)點完成溫度數(shù)據(jù)的傳輸。網(wǎng)絡(luò)組建后終端節(jié)點定時輪流詢問各個傳感節(jié)點是否有數(shù)據(jù)要發(fā)送,傳感節(jié)點收到詢問后發(fā)送應(yīng)答信號,終端節(jié)點和傳感節(jié)點建立通信,開始數(shù)據(jù)傳輸。本系統(tǒng)中由傳感節(jié)點將采集得到的數(shù)據(jù)發(fā)送給終端節(jié)點。系統(tǒng)中存在著多個從機,從機對相應(yīng)的傳感節(jié)點,主機需要通過編碼號來識別從機。系統(tǒng)開始工作時,終端節(jié)點即主機不斷地循環(huán)訪問從機N,只有當(dāng)從機接收到的編碼號與主機發(fā)送的編碼號一致時才通過DIR輸出高電平,表示從機接收到正確的命令。向從機N發(fā)送采溫命令,從機N處于等待狀態(tài),直至主機將信息取走才進行下一次的數(shù)據(jù)采集。
圖4 上位機軟件流程圖
系統(tǒng)中的上位機軟件的編寫采用的是VC++。串口通信上位機軟件編程通過串口通信編程CserialPort類完成,和常規(guī)的MSComm控件相比,這個類打包時,不需要加入其他的文件,而且函數(shù)都是開放透明的,允許我們進行改造。具體的流程圖如圖4所示。
這個函數(shù)是用來初始化串口的,即設(shè)置串口的通信參數(shù):需要打開的串口號、波特率、奇偶校驗方式、數(shù)據(jù)位,這里還可以用來進行事件的設(shè)定。
串口初始化成功后,就可以調(diào)用BOOL StartMonitoring來啟動串口監(jiān)測線程,各種串口狀態(tài)和事件就可以被監(jiān)測到。
該函數(shù)暫?;蛲V勾诒O(jiān)測,調(diào)用該函數(shù)后,串口資源仍然被占用。
該函數(shù)完成寫串口功能,即向串口發(fā)送字符。
為打開串口添加單擊響應(yīng)函數(shù)OnButtonOpen,完成對串口的初始化和關(guān)閉操作,串口的參數(shù)設(shè)置:波特率19200,8個數(shù)據(jù)位,1個停止位,無奇偶校驗位。
CC2430無線模塊工作的頻率較高,為保證模塊的穩(wěn)定性,CC2430核心部分采用PCB制板。開啟節(jié)點電源,打開上位機軟件可以看到監(jiān)測節(jié)點實時的溫度數(shù)據(jù),通過對溫控數(shù)據(jù)的設(shè)置,可以保證終端的溫度在設(shè)置的范圍之內(nèi),實驗過程中實現(xiàn)了保證系統(tǒng)控制溫度下線在15度、上線溫度為20度。其中數(shù)據(jù)的更新可以采取手動更新,也可以采取智能控制。圖5是上位機工作時的界面圖。圖5的節(jié)點溫度超過了上下限,智能控制已自動啟動。實驗結(jié)果表明,在開闊地,主從節(jié)點通信的最遠(yuǎn)距離可以達到150米。要想實現(xiàn)更遠(yuǎn)程通信可以通過GPRS(通用分組無線業(yè)務(wù))模塊來完成。
圖5 上位機軟件運行界面
本測控系統(tǒng)采取了ZigBee協(xié)議,提高了節(jié)點的容量,增加了系統(tǒng)的可靠性和安全性。系統(tǒng)通過無線的方式實現(xiàn)多點的溫度監(jiān)測和控制,通信質(zhì)量穩(wěn)定。對系統(tǒng)稍作改善,就能夠廣泛應(yīng)用于一些相對惡劣的環(huán)境的工業(yè)測控系統(tǒng)中。對系統(tǒng)進一步的深入研究也可以實現(xiàn)以太網(wǎng)數(shù)據(jù)的共享,對于研究如日中天的物聯(lián)網(wǎng)有很大現(xiàn)實意義。
[1]呂治安.ZigBee網(wǎng)絡(luò)原理與應(yīng)用開發(fā)[M].北京:北京航空航天大學(xué)出版社,2008.
[2]龔建偉,熊光明,等.Visual C++/Turbo C串口通信編程實踐[M].北京:電子工業(yè)出版社,2004.
[3]雷純,何小陽,蘇生輝.基于Zig Bee的多點溫度采集系統(tǒng)設(shè)計與實現(xiàn)[J].通信與信息處理,2010,29(2).
[4]李輝.等.基于ZigBee無線熱能檢測系統(tǒng)設(shè)計[J].測控技術(shù),2010,1(312).