無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由大量傳感器節(jié)點(diǎn)通過(guò)無(wú)線通信方式組成的一個(gè)多跳自組織網(wǎng)絡(luò)系統(tǒng)。無(wú)線傳感器節(jié)點(diǎn)可以將節(jié)點(diǎn)覆蓋區(qū)域內(nèi)的傳感信息通過(guò)無(wú)線多跳路由方式傳送到接收者,也可以通過(guò)反向路由方式傳送控制命令,使受控對(duì)象按照指令執(zhí)行相應(yīng)操作。無(wú)線傳感器網(wǎng)絡(luò)極大地提高了人類對(duì)世界的認(rèn)識(shí)能力和改造能力,在國(guó)防軍事、環(huán)境檢測(cè)、農(nóng)業(yè)生產(chǎn)、醫(yī)療衛(wèi)生、智能家居等領(lǐng)域扮演著越來(lái)越重要的角色。
本文以室內(nèi)環(huán)境檢測(cè)IPv6無(wú)線傳感器網(wǎng)絡(luò)為研究背景。系統(tǒng)由傳感器節(jié)點(diǎn)和網(wǎng)關(guān)設(shè)備組成。每個(gè)傳感器節(jié)點(diǎn)既可以發(fā)送本身的傳感信息,也可以路由轉(zhuǎn)發(fā)其他傳感器節(jié)點(diǎn)信息。監(jiān)測(cè)區(qū)域內(nèi)的傳感信息由傳感器節(jié)點(diǎn)收集,通過(guò)多跳路由方式匯聚到網(wǎng)關(guān),并由網(wǎng)關(guān)通過(guò)以太網(wǎng)或GPRS/CDMA等互聯(lián)網(wǎng)接入方式傳送到網(wǎng)絡(luò)服務(wù)器。
由于無(wú)線傳感器網(wǎng)絡(luò)中的傳感器節(jié)點(diǎn)會(huì)在短時(shí)間內(nèi)采集大量的傳感信息,直接查詢和處理這些大量的傳感信息非常不便。因此,有必要設(shè)計(jì)一個(gè)方便、友好、高效的無(wú)線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)。本文設(shè)計(jì)實(shí)現(xiàn)了一種基于Web的無(wú)線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)。通過(guò)本系統(tǒng),用戶不僅可以實(shí)時(shí)地以曲線圖或數(shù)據(jù)表的形式查看溫度、濕度等多種傳感信息,動(dòng)態(tài)拓?fù)渎酚勺兓畔?,還可以對(duì)傳感器節(jié)點(diǎn)和空調(diào)等設(shè)備實(shí)現(xiàn)遠(yuǎn)程控制。
1 主流WSN可視化技術(shù)介紹
當(dāng)前無(wú)線傳感器網(wǎng)絡(luò)的研究熱點(diǎn)主要集中在網(wǎng)絡(luò)體系架構(gòu)、網(wǎng)絡(luò)通信協(xié)議、網(wǎng)絡(luò)安全管理等方面,針對(duì)傳感信息可視化方面的研究相對(duì)較少。到目前為止,針對(duì)無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)的可視化工具主要有SpyGlass,Surge Network Viewer等。SpyGlass使用多層次的體系結(jié)構(gòu),是一個(gè)模塊化的、易于擴(kuò)展的無(wú)線傳感器網(wǎng)絡(luò)可視化工具。其體系結(jié)構(gòu)由傳感器網(wǎng)絡(luò)、網(wǎng)關(guān)、可視化軟件三部分組成。網(wǎng)關(guān)使用TCP/IP通信協(xié)議將收集到的傳感信息提供給遠(yuǎn)程計(jì)算機(jī)的可視化軟件。SurgeNetwork Viewer是Crossbow公司使用實(shí)現(xiàn)的無(wú)線傳感器網(wǎng)絡(luò)可視化工具。通過(guò)Surge Network Viewer用戶可以監(jiān)測(cè)傳感器網(wǎng)絡(luò)和分析mesh網(wǎng)絡(luò)的性能。
上述無(wú)線傳感器網(wǎng)絡(luò)可視化工具雖然在一定程度上可以完成傳感網(wǎng)絡(luò)信息的管理功能,但由于建立在特定的應(yīng)用環(huán)境基礎(chǔ)上,其通用性、可移植性比較差,不能直接應(yīng)用在其他平臺(tái)上。針對(duì)這些局限性,考慮到當(dāng)前瀏覽器/服務(wù)器(Browser/Server,B/S)模式可以隨時(shí)隨地進(jìn)行查詢、瀏覽等業(yè)務(wù)處理分布性特點(diǎn)以及業(yè)務(wù)擴(kuò)展方便、維護(hù)方便等優(yōu)點(diǎn),開發(fā)了基于Web的無(wú)線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)來(lái)實(shí)現(xiàn)傳感信息和網(wǎng)絡(luò)拓?fù)湫畔⒌目梢暬Mㄟ^(guò)本系統(tǒng)提供的傳感信息、拓?fù)湫畔ⅰ⒐?jié)點(diǎn)配置信息和節(jié)點(diǎn)狀態(tài)信息的動(dòng)態(tài)顯示和管理平臺(tái),可以較好地適應(yīng)無(wú)線傳感器網(wǎng)絡(luò)復(fù)雜多變的部署環(huán)境。
2 基于Web的WSN可視化管理系統(tǒng)體系結(jié)構(gòu)
基于Web的無(wú)線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)體系結(jié)構(gòu)包括服務(wù)器端和客戶端兩部分,如圖1所示。
考慮到傳感器節(jié)點(diǎn)處理能力及存儲(chǔ)能力等限制,需要及時(shí)將采集到的傳感信息傳送給網(wǎng)絡(luò)服務(wù)器,由網(wǎng)絡(luò)服務(wù)器來(lái)統(tǒng)一存儲(chǔ)和管理,并向用戶提供所需的可視化管理服務(wù)。在客戶端,用戶可以使用計(jì)算機(jī)、移動(dòng)終端等終端設(shè)備通過(guò)互聯(lián)網(wǎng)訪問(wèn)網(wǎng)絡(luò)服務(wù)器的方式隨時(shí)隨地進(jìn)行對(duì)無(wú)線傳感器網(wǎng)絡(luò)的管理。
2.1 服務(wù)器端
服務(wù)器端主要包括Web服務(wù)器、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)服務(wù)模塊、數(shù)據(jù)管理模塊。服務(wù)器端各模塊提供的功能如下:
Web服務(wù)器提供互聯(lián)網(wǎng)信息瀏覽服務(wù),是服務(wù)器端的核心部分;數(shù)據(jù)發(fā)送模塊將控制命令發(fā)送到網(wǎng)關(guān),由網(wǎng)關(guān)解析并轉(zhuǎn)發(fā)到相應(yīng)的傳感器節(jié)點(diǎn);數(shù)據(jù)接收模塊使用套接字通信技術(shù)接收網(wǎng)關(guān)傳送的傳感信息或控制命令的反饋信息,解析并交給數(shù)據(jù)管理模塊;數(shù)據(jù)服務(wù)模塊是基于Web服務(wù)器基礎(chǔ)上實(shí)現(xiàn)的,接受客戶端的請(qǐng)求進(jìn)行處理,再將處理結(jié)果格式化輸出給客戶端;數(shù)據(jù)管理模塊主要指一個(gè)關(guān)系型數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)的組織、存儲(chǔ)和管理。
2.2 客戶端
在B/S模式中客戶端就是瀏覽器,是用戶直接面對(duì)的可視化管理平臺(tái),包括拓?fù)渎酚尚畔⒛K、傳感信息模塊、空調(diào)控制模塊等??蛻舳烁髂K提供的功能如下:
拓?fù)渎酚尚畔⒛K動(dòng)態(tài)顯示當(dāng)前無(wú)線傳感器網(wǎng)絡(luò)的傳感器節(jié)點(diǎn)及其狀態(tài)信息和拓?fù)渎酚尚畔ⅰMㄟ^(guò)該模塊,用戶可以實(shí)時(shí)查看當(dāng)前網(wǎng)絡(luò)的拓?fù)渥兓玫毓芾砭W(wǎng)絡(luò)。傳感信息模塊以動(dòng)態(tài)數(shù)據(jù)表、動(dòng)態(tài)曲線圖等形式顯示溫度、濕度、光強(qiáng)等傳感信息。用戶可以對(duì)傳感信息進(jìn)行排序、篩選等操作,以所需方式查看傳感信息。節(jié)點(diǎn)及空調(diào)控制模塊能控制節(jié)點(diǎn)的工作模式和狀態(tài),如改變節(jié)點(diǎn)的采集信息速率、控制節(jié)點(diǎn)進(jìn)行休眠等。同時(shí),還可以通過(guò)節(jié)點(diǎn)控制空調(diào)設(shè)備,如控制空調(diào)的工作狀態(tài)、工作模式等。
3 基于Web的WSN可視化管理系統(tǒng)設(shè)計(jì)及其實(shí)現(xiàn)
3.1 系統(tǒng)層次結(jié)構(gòu)
根據(jù)功能,可以將本系統(tǒng)劃分為數(shù)據(jù)層、業(yè)務(wù)層和表現(xiàn)層三層結(jié)構(gòu),如圖2所示。
數(shù)據(jù)層包括數(shù)據(jù)庫(kù)或數(shù)據(jù)源以及數(shù)據(jù)接入部分,位于最底層;業(yè)務(wù)層是系統(tǒng)的核心業(yè)務(wù)部分,負(fù)責(zé)業(yè)務(wù)邏輯實(shí)現(xiàn),位于中間層,是數(shù)據(jù)層與表現(xiàn)層的連接橋梁;表現(xiàn)層指用戶交互界面,位于最上層。
3.2 數(shù)據(jù)收發(fā)模塊設(shè)計(jì)
作為系統(tǒng)的接人部分,本模塊屬于系統(tǒng)的數(shù)據(jù)層,是連接無(wú)線傳感器網(wǎng)絡(luò)和可視化管理系統(tǒng)的橋梁。本系統(tǒng)通過(guò)Socket套接字通信技術(shù)完成網(wǎng)關(guān)與數(shù)據(jù)收發(fā)模塊間的通信。這里采用資源消耗少,沒(méi)有擁塞控制的UDP協(xié)議保證數(shù)據(jù)的收發(fā)速率,滿足本系統(tǒng)的實(shí)時(shí)性要求。套接字通信技術(shù)明確將客戶與服務(wù)器區(qū)分開來(lái),且可以實(shí)現(xiàn)多個(gè)客戶與服務(wù)器的連接。本系統(tǒng)把數(shù)據(jù)收發(fā)模塊作為套接字通信的服務(wù)器來(lái)監(jiān)聽一個(gè)端口,可以與多個(gè)子網(wǎng)絡(luò)進(jìn)行通信。
3.3 數(shù)據(jù)管理模塊設(shè)計(jì)
本系統(tǒng)使用MySQL數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù)。為了方便數(shù)據(jù)管理、滿足不同需要,設(shè)計(jì)了如下三種信息表:
(1)傳感器節(jié)點(diǎn)信息表,包括當(dāng)前無(wú)線傳感器網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)的詳細(xì)信息,如地址信息、狀態(tài)信息等。其結(jié)構(gòu)如下:
addr_info=(I,A1,A2,A3,A4,T)
其中:I為節(jié)點(diǎn)ID;A1為節(jié)點(diǎn)類型;A2為節(jié)點(diǎn)IPv6地址;A3為父節(jié)點(diǎn)地址;A4為節(jié)點(diǎn)狀態(tài);T為入網(wǎng)時(shí)間。
(2)路由信息表,包括當(dāng)前無(wú)線傳感器網(wǎng)絡(luò)拓?fù)渎酚尚畔?,是了解網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的重要依據(jù)。為了詳細(xì)了解節(jié)點(diǎn)傳感信息的詳細(xì)傳送路徑,本信息表不僅存儲(chǔ)節(jié)點(diǎn)的下一跳,還存儲(chǔ)節(jié)點(diǎn)的下i跳,其中i=0,1,2,…,其最大值等于max_hop。其結(jié)構(gòu)如下:
route_info=(I,Bi,T)
其中:I為節(jié)點(diǎn)ID;B0為節(jié)點(diǎn)IPv6地址;Bi為節(jié)點(diǎn)的下i跳節(jié)點(diǎn)地址,i=0,1,2,…,max_hop;T為路由信息更新時(shí)間。
(3)傳感信息表,存儲(chǔ)監(jiān)測(cè)區(qū)域中的傳感信息。包括溫度信息表,濕度信息表,光強(qiáng)信息表等,還可以根據(jù)應(yīng)用需求增加相應(yīng)的信息表。其信息表結(jié)構(gòu)類似,這里以溫度信息表舉例:
temperature_info=(I,C1,C2,T)
其中:I為節(jié)點(diǎn)ID;C1為節(jié)點(diǎn)IPv6地址;C2為溫度傳感信息;T為溫度采集時(shí)間。
3.4 數(shù)據(jù)服務(wù)模塊設(shè)計(jì)
本模塊屬于系統(tǒng)的業(yè)務(wù)層,主要提供系統(tǒng)邏輯運(yùn)算和業(yè)務(wù)支持等服務(wù),是使用Java技術(shù)設(shè)計(jì)實(shí)現(xiàn)的。這里設(shè)計(jì)的核心類SystemService類,一方面可以分析客戶端的服務(wù)請(qǐng)求類型,并根據(jù)服務(wù)請(qǐng)求類型,使用JDBC技術(shù)動(dòng)態(tài)訪問(wèn)數(shù)據(jù)庫(kù)獲取信息進(jìn)行處理,并將處理后的結(jié)果以List集合或XML文件形式傳回給客戶端,來(lái)響應(yīng)客戶端的服務(wù)請(qǐng)求。另一方面還可以通過(guò)創(chuàng)建線程定時(shí)查詢的方式主動(dòng)將告警信息發(fā)送給客戶端,使用戶及時(shí)了解當(dāng)前無(wú)線傳感器網(wǎng)絡(luò)狀態(tài),使其做出相應(yīng)的處理。其工作流程如圖3所示。
3.5 數(shù)據(jù)顯示模塊設(shè)計(jì)
數(shù)據(jù)顯示模塊采用的Flex應(yīng)用技術(shù),能展現(xiàn)出獨(dú)一無(wú)二的圖像、動(dòng)畫和音像等多媒體技術(shù),向用戶提供更加美觀的、全動(dòng)態(tài)的可視化操作界面。Flex具有分布式、跨瀏覽器等優(yōu)點(diǎn),不管是Windows系統(tǒng)還是Linux系統(tǒng),只要有Flash Player插件的瀏覽器,可以通過(guò)互聯(lián)網(wǎng)隨時(shí)隨地使用本系統(tǒng)。
數(shù)據(jù)顯示模塊的工作流程如圖4所示。用戶界面請(qǐng)求可視化服務(wù),進(jìn)一步將數(shù)據(jù)對(duì)象放置到事件中廣播出去。監(jiān)聽中的前端控制器接收到廣播事件后找出相應(yīng)的業(yè)務(wù)邏輯處理模塊,并由業(yè)務(wù)邏輯處理模塊使用RemoteObject組件對(duì)數(shù)據(jù)服務(wù)模塊中的方法進(jìn)行遠(yuǎn)程調(diào)用。業(yè)務(wù)邏輯處理模塊接收到數(shù)據(jù)服務(wù)模塊返回的結(jié)果信息存儲(chǔ)到數(shù)據(jù)服務(wù)模型中的數(shù)據(jù)對(duì)象中,并共享結(jié)果信息,供不同的用戶界面顯示。
4 基于Web的WSN可視化管理系統(tǒng)性能測(cè)試
為了驗(yàn)證系統(tǒng)的有效性,搭建了如圖5所示的測(cè)試環(huán)境。
測(cè)試環(huán)境中,節(jié)點(diǎn)7919是網(wǎng)關(guān);節(jié)點(diǎn)6101,6102為路由節(jié)點(diǎn),只負(fù)責(zé)傳感信息的轉(zhuǎn)發(fā),并不收集傳感信息;節(jié)點(diǎn)7010,7030,7050,7070,7090為五個(gè)終端節(jié)點(diǎn),負(fù)責(zé)收集監(jiān)測(cè)區(qū)域內(nèi)的傳感信息,其傳感信息可以通過(guò)多個(gè)路由節(jié)點(diǎn)的轉(zhuǎn)發(fā),并通過(guò)網(wǎng)關(guān)到達(dá)網(wǎng)絡(luò)服務(wù)器。其中節(jié)點(diǎn)7090位于705房間內(nèi),可以控制此房間內(nèi)的一臺(tái)空調(diào),其控制信息的傳輸路徑如圖5中的粗線條表示。
4.1 拓?fù)湫畔⒌目梢暬?/p>
拓?fù)湫畔⒌目梢暬梢暬?dāng)前網(wǎng)絡(luò)的節(jié)點(diǎn)和節(jié)點(diǎn)之間的連接關(guān)系,是分析和了解當(dāng)前網(wǎng)絡(luò)拓?fù)渎酚汕闆r的重要方法。通過(guò)拓?fù)湫畔⒌目梢暬?,用戶可以直觀了解當(dāng)前網(wǎng)絡(luò)狀態(tài),包括節(jié)點(diǎn)之間的位置關(guān)系、節(jié)點(diǎn)傳感新信息的傳送路徑和網(wǎng)絡(luò)分簇情況,分析出潛在的規(guī)律性和網(wǎng)絡(luò)的異常性,可以迅速地做出相應(yīng)的處理。
拓?fù)湫畔⒌目梢暬秩糠謱?shí)現(xiàn)。首先從傳感器節(jié)點(diǎn)信息表addr_info中獲取當(dāng)前網(wǎng)絡(luò)中的節(jié)點(diǎn)地址信息及其信息。然后從路由信息表route_info中獲取節(jié)點(diǎn)傳感信息的傳送路徑和節(jié)點(diǎn)之間的連接關(guān)系信息,并根據(jù)節(jié)點(diǎn)信息和路由信息格式化存儲(chǔ)在可擴(kuò)展標(biāo)記語(yǔ)言XML文件中。業(yè)務(wù)層的數(shù)據(jù)服務(wù)模塊根據(jù)當(dāng)前網(wǎng)絡(luò)的拓?fù)渥兓闆r實(shí)時(shí)地更新此文件,滿足拓?fù)湫畔⒌膭?dòng)態(tài)可視化要求。最后表現(xiàn)層的數(shù)據(jù)顯示模塊根據(jù)生成的XML文件,生成拓?fù)渎酚蓤D。
根據(jù)測(cè)試環(huán)境生成的實(shí)際網(wǎng)絡(luò)拓?fù)鋱D如圖6所示。圖6中,終端節(jié)點(diǎn)7070和7090采集到的傳感信息通過(guò)路由節(jié)點(diǎn)6101,到達(dá)網(wǎng)關(guān)7919,這部分成為一個(gè)簇,且其簇內(nèi)路由用線條A1,A2,A3表示。同理,終端節(jié)點(diǎn)7010,7030,7050分別通過(guò)路由節(jié)點(diǎn)6102最后到達(dá)網(wǎng)關(guān)7919,成為另一個(gè)簇,其簇內(nèi)路由則用線條B1,B2,B3,B4表示。最后網(wǎng)關(guān)7919的數(shù)據(jù)都發(fā)送到網(wǎng)絡(luò)服務(wù)器,其通信線路用線條C表示。
4. 2 傳感信息的可視化
在拓?fù)渎酚蓤D中,雙擊方式選擇一個(gè)節(jié)點(diǎn),即可看到此節(jié)點(diǎn)監(jiān)測(cè)區(qū)域內(nèi)的溫度、濕度、光強(qiáng)等傳感信息。圖7描述了IPv6地址3ffe:3240:8007:1209:9070:6392:4700:0的傳感器節(jié)點(diǎn)(圖5中的節(jié)點(diǎn)7090)采集到的溫度信息的動(dòng)態(tài)曲線圖及動(dòng)態(tài)數(shù)據(jù)表,可以直觀地看到其監(jiān)測(cè)區(qū)域內(nèi)的溫度信息。在曲線圖中。x軸代表時(shí)間,y軸代表溫度值,其單位為℃。
4.3 對(duì)空調(diào)的控制
在拓?fù)渎酚蓤D中,選擇一個(gè)節(jié)點(diǎn),可以看到如圖7所示的節(jié)點(diǎn)信息面板,包括節(jié)點(diǎn)的節(jié)點(diǎn)類型、地址信息、狀態(tài)信息及其控制范圍內(nèi)的空調(diào)設(shè)備信息。如圖5的系統(tǒng)測(cè)試環(huán)境中,節(jié)點(diǎn)7090是一個(gè)空調(diào)控制節(jié)點(diǎn),可以控制705房間內(nèi)的一臺(tái)空調(diào)。打開如圖8所示的空調(diào)控制面板,用戶可以遠(yuǎn)程控制空調(diào),如進(jìn)行開啟和關(guān)閉、加熱或制冷等模式設(shè)置、溫度設(shè)置、門限設(shè)置等操作。
5 結(jié)語(yǔ)
本文介紹了無(wú)線傳感器網(wǎng)絡(luò)可視化方面的研究進(jìn)展,并根據(jù)實(shí)際應(yīng)用與需求,設(shè)計(jì)并實(shí)現(xiàn)了基于Web的無(wú)線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng),描述了其架構(gòu)與層次結(jié)構(gòu)。本系統(tǒng)通過(guò)引入Flex,Java等技術(shù),有效解決了可視化的實(shí)用性、動(dòng)態(tài)性等問(wèn)題。通過(guò)本文的研究,為基于
Web的無(wú)線傳感器網(wǎng)絡(luò)的可視化提供了技術(shù)基礎(chǔ)和應(yīng)用方法,具有重要的研究和應(yīng)用價(jià)值。在此系統(tǒng)的基礎(chǔ)上,后續(xù)的工作將可以在可擴(kuò)展性等方面進(jìn)行發(fā)展,并結(jié)合實(shí)際應(yīng)用,增加更多的功能,滿足不同的應(yīng)用場(chǎng)合。