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