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