專利名稱:一種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)自身健康狀態(tài)的監(jiān)視與分析方法,尤其涉及一種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)(WSN,Wireless Sensor Network)是由一組部署在觀測環(huán)境區(qū)域 的大量的微型廉價(jià)低功耗的節(jié)點(diǎn)傳感器以無線多跳(AdHoc)方式構(gòu)成的無線網(wǎng)絡(luò)系統(tǒng)。但 觀測區(qū)域一般是環(huán)境相對惡劣區(qū)域、人煙稀少的地方,其氣候條件、信號干擾、能量、自身穩(wěn) 定性等諸多因素都會引起節(jié)點(diǎn)無法正常工作及死亡或失效的情況出現(xiàn),致使網(wǎng)絡(luò)狀態(tài)發(fā)生 改變,造成網(wǎng)絡(luò)覆蓋面積縮小,服務(wù)質(zhì)量下降,甚至網(wǎng)絡(luò)癱瘓。因此,為了能夠更好的了解觀測區(qū)域內(nèi)無線傳感器網(wǎng)絡(luò)的狀態(tài),我們提出了一種 監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法。該方法在保證性能和安全性的前提下, 通過綜合分析節(jié)點(diǎn)上報(bào)的數(shù)據(jù),采用可視化方法顯示當(dāng)前網(wǎng)絡(luò)自身健康狀態(tài),主要包括網(wǎng) 絡(luò)拓?fù)湫畔?、網(wǎng)絡(luò)鏈路信息、網(wǎng)絡(luò)原始消息、節(jié)點(diǎn)狀態(tài)信息和節(jié)點(diǎn)感知曲線信息,并在網(wǎng)絡(luò) 出現(xiàn)問題時(shí)能夠通過下發(fā)命令方式及時(shí)對其進(jìn)行調(diào)整。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,該 方法使多個(gè)用戶能夠同時(shí)遠(yuǎn)程監(jiān)視無線傳感器網(wǎng)絡(luò),包括獲知經(jīng)可視化分析處理后的網(wǎng)絡(luò) 拓?fù)湫畔ⅰ⒕W(wǎng)絡(luò)鏈路信息、網(wǎng)絡(luò)消息、節(jié)點(diǎn)狀態(tài)信息和節(jié)點(diǎn)感知曲線信息,并能夠利用多種 方式對目標(biāo)網(wǎng)絡(luò)進(jìn)行控制。本發(fā)明是這樣來實(shí)現(xiàn)的,其特征是方法步驟為A、將50個(gè)傳感器節(jié)點(diǎn)與1個(gè)匯聚節(jié)點(diǎn)部署于監(jiān)測區(qū)域內(nèi),3個(gè)中繼節(jié)點(diǎn)部署于 監(jiān)控區(qū)域和監(jiān)控中心之間,監(jiān)控中心的服務(wù)端通過串口與網(wǎng)關(guān)節(jié)點(diǎn)相連,客戶端通過互聯(lián) 網(wǎng)與服務(wù)端相連;B、啟動服務(wù)端控制程序,收集并解析經(jīng)匯聚節(jié)點(diǎn)、中繼節(jié)點(diǎn)或移動通信網(wǎng) 絡(luò)、網(wǎng)關(guān)節(jié)點(diǎn)傳輸?shù)膫鞲衅鞴?jié)點(diǎn)監(jiān)視數(shù)據(jù),存儲后采用多播方式通過互聯(lián)網(wǎng)轉(zhuǎn)發(fā)至客戶端; C、啟動客戶端控制程序,接收服務(wù)端數(shù)據(jù),經(jīng)可視化處理后,提供網(wǎng)絡(luò)拓?fù)湫畔?、網(wǎng)絡(luò)鏈路 信息、網(wǎng)絡(luò)原始消息、節(jié)點(diǎn)狀態(tài)信息、節(jié)點(diǎn)感知曲線信息的顯示,用于分析無線傳感器網(wǎng)絡(luò) 自身健康狀態(tài);除此之外,還可利用客戶端或手機(jī)將命令通過服務(wù)端分發(fā)至各節(jié)點(diǎn),調(diào)整網(wǎng) 絡(luò)狀態(tài)。所述的服務(wù)端監(jiān)控程序采用Visual C++2005編寫,包括以下兩個(gè)部分(1)串口監(jiān)控及其數(shù)據(jù)處理采用多線程技術(shù),一個(gè)專門用于串口數(shù)據(jù)讀寫的串 口通信線程;另一個(gè)專門用于串口數(shù)據(jù)的解包和封包的串口數(shù)據(jù)處理線程;兩個(gè)線程使用 隊(duì)列作為消息傳遞的載體并通過信號量進(jìn)行協(xié)調(diào)工作;(2)客戶端監(jiān)控及其數(shù)據(jù)處理利用一個(gè)專門用于監(jiān)聽用戶連接的客戶端連接監(jiān) 聽線程;當(dāng)用戶連接成功后,系統(tǒng)將為其創(chuàng)建一個(gè)專門處理用戶請求的客戶端請求處理線程,并利用線程池進(jìn)行統(tǒng)一調(diào)配。所述的串口監(jiān)控及其數(shù)據(jù)處理流程具體如下串口通信線程(1)串口通信線程循環(huán)讀取串口數(shù)據(jù),若讀取數(shù)據(jù)的長度大于零,則進(jìn)入步驟(2) 處理,否則進(jìn)入步驟(3);(2)對該串口數(shù)據(jù)包進(jìn)行解析處理,在獲得串口數(shù)據(jù)的有效載荷后,將有效載荷長 度及有效載荷內(nèi)容放入隊(duì)列,并設(shè)置信號量為通知狀態(tài),進(jìn)入步驟(3);(3)判斷是否有待寫入串口的數(shù)據(jù),如果有,則將數(shù)據(jù)寫入串口,繼續(xù)步驟(1),否 則繼續(xù)步驟(1);串口數(shù)據(jù)處理線程(1)串口數(shù)據(jù)處理線程一直處于阻塞狀態(tài),直到信號量設(shè)置為通知狀態(tài)后從隊(duì)列 中提取串口數(shù)據(jù)長度和數(shù)據(jù)內(nèi)容,進(jìn)入步驟(2)繼續(xù)處理;(2)根據(jù)自定義的消息格式,從串口有效載荷中分離出消息主類型、消息子類型、 消息體、節(jié)點(diǎn)號、節(jié)點(diǎn)剩余能量值、節(jié)點(diǎn)發(fā)射功率值、路由信息及時(shí)間戳信息,并將其存入數(shù) 據(jù)庫后進(jìn)入步驟(3)繼續(xù)處理;(3)根據(jù)自定義的消息類型及步驟(2)獲得的消息類型信息,進(jìn)一步對消息進(jìn)行 解析,從而獲得節(jié)點(diǎn)感知信息、節(jié)點(diǎn)定位信息、節(jié)點(diǎn)鄰居信息、節(jié)點(diǎn)拓?fù)湫畔⒒蚓W(wǎng)絡(luò)鏈路信 息,并將其存入數(shù)據(jù)庫后發(fā)送至客戶端,回到步驟(1)繼續(xù)處理。所述的串口數(shù)據(jù)有效載荷為串口數(shù)據(jù)的第10個(gè)字節(jié)開始到倒數(shù)第3個(gè)字節(jié)為止 的部分。所述的自定義的消息格式由1個(gè)字節(jié)消息主類型、1個(gè)字節(jié)消息子類型、若干字節(jié) 的消息體、1個(gè)字節(jié)節(jié)點(diǎn)號、2個(gè)字節(jié)節(jié)點(diǎn)剩余能量值、1個(gè)字節(jié)節(jié)點(diǎn)發(fā)射功率值、11個(gè)字節(jié) 的路由信息及4個(gè)字節(jié)的時(shí)間戳信息構(gòu)成。所述的自定義的消息類型包括上行消息和下行消息兩類,上行消息包括節(jié)點(diǎn)定 位數(shù)據(jù)消息(0x0002),節(jié)點(diǎn)定位完成消息(0x0008),節(jié)點(diǎn)時(shí)間同步數(shù)據(jù)消息(0x0005),節(jié) 點(diǎn)時(shí)間同步完成消息(OxOOOB),按CTP路由協(xié)議傳輸?shù)墓?jié)點(diǎn)感知數(shù)據(jù)消息(0x0000),按 洪泛路由協(xié)議傳輸?shù)墓?jié)點(diǎn)感知數(shù)據(jù)消息(0x0001),節(jié)點(diǎn)鄰居測試數(shù)據(jù)消息(0x0004),節(jié) 點(diǎn)鄰居測試完成消息(OxOOOA),網(wǎng)絡(luò)鏈路測試數(shù)據(jù)消息(0x0006),網(wǎng)絡(luò)鏈路測試數(shù)據(jù)消 息(0x0003),網(wǎng)絡(luò)鏈路測試完成消息(0x0009),節(jié)點(diǎn)關(guān)閉完成消息(0x0007);下行消息包 括節(jié)點(diǎn)定位命令消息(0x0100),節(jié)點(diǎn)時(shí)間同步命令消息(0x0101),節(jié)點(diǎn)采集感知數(shù)據(jù)命 令消息(0x0102),節(jié)點(diǎn)鄰居測試命令消息(0x0103),網(wǎng)絡(luò)鏈路測試命令消息(0x0104),節(jié) 點(diǎn)休眠命令消息(0x0105),節(jié)點(diǎn)關(guān)閉命令消息子類型(0x0106),命令已被接受消息子類型 (0x0107)。所述的客戶端監(jiān)控及其數(shù)據(jù)處理流程具體如下客戶端連接監(jiān)聽線程(1)客戶端連接監(jiān)聽線程一直處于阻塞狀態(tài),直到有新的連接請求時(shí)才轉(zhuǎn)到步驟 (2);(2)為該用戶建立客戶端請求處理線程,并將其加入到線程池中由操作系統(tǒng)統(tǒng)一 調(diào)配,最后轉(zhuǎn)向步驟(1)繼續(xù)監(jiān)聽;
客戶端請求處理線程(1)客戶端請求處理線程循環(huán)等待客戶端發(fā)送的請求消息,直到有數(shù)據(jù)到達(dá)才轉(zhuǎn) 到步驟(2)處理;(2)根據(jù)密文格式,在分離出密鑰及加密體后,經(jīng)過基本數(shù)據(jù)加密解密規(guī)則將密文 數(shù)據(jù)還原為明文數(shù)據(jù),并轉(zhuǎn)到步驟(3)繼續(xù)處理;(3)根據(jù)自定義消息格式,從明文數(shù)據(jù)中分離出消息主類型、消息子類型和消息體 信息,進(jìn)入步驟(4)處理;(4)根據(jù)自定義消息類型及步驟(3)得到的消息類型信息,對消息進(jìn)行進(jìn)一步解 析,包括身份認(rèn)證、任務(wù)管理、命令發(fā)送、基本信息修改、用戶管理、角色管理、感知數(shù)據(jù)類型 管理、啟動或停止接收實(shí)時(shí)數(shù)據(jù)及定時(shí)查詢歷史數(shù)據(jù),完成之后轉(zhuǎn)向步驟(1)繼續(xù)處理。所述的密文格式由4個(gè)字節(jié)密文長度、1個(gè)字節(jié)的密鑰及若干字節(jié)的加密體構(gòu)成。所述的自定義消息格式由2個(gè)字節(jié)消息主類型、2個(gè)消息子類型及若干字節(jié)的消 息體構(gòu)成。所述的自定義消息類型包括身份認(rèn)證消息(0x00000000-0x00000004)、任務(wù) 管理消息(0x00010000-0x00010019)、命令發(fā)送(0x00030000-0x00030007)、基本信 息管理(0x00040000-0x00040004)、用戶管理(0x00050000-0x0005000B)、角色管理 (0x00060000-0x0006000B)、感知數(shù)據(jù)類型管理(0x00070000-0x00070009)、啟動或停止接 收實(shí)時(shí)數(shù)據(jù)(0x00080000)及定時(shí)查詢歷史數(shù)據(jù)(0x00080001)。所述的身份認(rèn)證具體流程如下客戶端處理流程(1)利用MD5加密方法對用戶輸入的用戶名與口令進(jìn)行加密;(2)取本地時(shí)間作為密鑰對步驟(1)處理后的密文作進(jìn)一步的加密處理;(3)將步驟⑵處理后的密文連同時(shí)間密鑰傳輸至服務(wù)端;服務(wù)端處理流程(1)根據(jù)密文格式分離得到時(shí)間密鑰和密文信息;(2)將時(shí)間密鑰與服務(wù)器時(shí)間比較,如果其差值大于1分鐘,則視為非法消息予以 丟棄,結(jié)束處理。否則利用時(shí)間密鑰對密文信息進(jìn)行解密處理獲得經(jīng)MD5加密后的用戶名 與口令,進(jìn)入步驟(3)繼續(xù)處理;(3)查詢數(shù)據(jù)庫驗(yàn)證用戶的合法性,如果為非法用戶,則結(jié)束處理。否則查詢用戶 編號和權(quán)限信息,并以時(shí)間為種子隨機(jī)生成臨時(shí)登陸密碼后,一并發(fā)送至客戶端。所述的客戶端監(jiān)控程序采用VisualC++2005編寫,包括以下六個(gè)部分(1)服務(wù)端通信及數(shù)據(jù)處理利用獨(dú)立的線程完成客戶端與服務(wù)端的通信及其數(shù) 據(jù)處理工作,使得數(shù)據(jù)處理與界面顯示分離,提高系統(tǒng)響應(yīng)速度,其處理過程是接收來自 服務(wù)端的數(shù)據(jù),經(jīng)解析處理后獲得消息主類型、消息子類型、及消息體信息,并根據(jù)消息主 類型和消息子類型信息進(jìn)行進(jìn)一步解析處理,如果該消息類型為無線傳感器數(shù)據(jù)消息,則 分離出服務(wù)器當(dāng)前時(shí)間、無線傳感器節(jié)點(diǎn)信息和無線傳感器網(wǎng)絡(luò)信息,并存入數(shù)據(jù)緩存隊(duì) 列中;(2)節(jié)點(diǎn)信息列表包含節(jié)點(diǎn)編號、名稱、用途描述、部署時(shí)經(jīng)緯度值、當(dāng)前剩余能 量值、當(dāng)前發(fā)射功率值、是否攜帶傳感器、鄰居列表信息、自身定位的相對坐標(biāo)、父節(jié)點(diǎn)編號、睡眠與工作時(shí)間,這些信息以表格形式展現(xiàn)給用戶,并由主窗體設(shè)定的定時(shí)器每隔Is 中從數(shù)據(jù)緩存隊(duì)列獲取數(shù)據(jù),若緩存隊(duì)列中不空,則提取并刷新列表,否則不進(jìn)行處理;(3)網(wǎng)絡(luò)拓?fù)湫畔@示包括⑴節(jié)點(diǎn)信息繪制節(jié)點(diǎn)用不同顏色的小圓餅標(biāo)識, 并在小圓餅周圍顯示節(jié)點(diǎn)附加信息,包括在小圓餅右上角以能量方格表示的節(jié)點(diǎn)剩余能量 值、在小圓餅中心顯示的節(jié)點(diǎn)編號、在小圓餅下 方顯示的節(jié)點(diǎn)名稱以及在小圓餅上方顯示 的當(dāng)前感知數(shù)據(jù)值,其感知數(shù)據(jù)類型(包括溫度、濕度和光照)可由用戶自行設(shè)定,而且這 些附加信息顯示與否也由用戶自行設(shè)定;⑵節(jié)點(diǎn)鄰居繪制若節(jié)點(diǎn)擁有鄰居節(jié)點(diǎn)信息,則 用戶只需單擊該節(jié)點(diǎn),其鄰居節(jié)點(diǎn)將以高亮顯示;(3)拓?fù)浣Y(jié)構(gòu)繪制使用藍(lán)色實(shí)心直線將 節(jié)點(diǎn)及其父節(jié)點(diǎn)相連,該信息的顯示與否由用戶自行設(shè)定;(4)鏈路信息繪制采用不同顏 色的虛線表示節(jié)點(diǎn)間的通信鏈路質(zhì)量,該信息的顯示與否由用戶自行設(shè)定;(4)節(jié)點(diǎn)感知數(shù)據(jù)曲線將多個(gè)同一節(jié)點(diǎn)不同時(shí)刻的溫度、濕度和光照值分別使用 帶有不同標(biāo)記符號和顏色的直線相連接的圖形,用戶可選擇性的查看單個(gè)或多個(gè)節(jié)點(diǎn)的曲 線變化圖;(5)網(wǎng)絡(luò)原始消息顯示是將某一時(shí)間內(nèi)段到達(dá)網(wǎng)關(guān)節(jié)點(diǎn)的消息以表格的形式進(jìn)行 顯示,并可通過修改配置文件的方式對原始消息進(jìn)行進(jìn)一步的解析和篩選;(6)命令發(fā)送包括啟動或停止節(jié)點(diǎn)感知數(shù)據(jù)獲取、節(jié)點(diǎn)時(shí)間同步、節(jié)點(diǎn)鄰居列表獲 取、節(jié)點(diǎn)自身定位、節(jié)點(diǎn)休眠、網(wǎng)絡(luò)鏈路測試及節(jié)點(diǎn)關(guān)閉命令。所述的節(jié)點(diǎn)顏色的繪制由節(jié)點(diǎn)剩余能量值和是否攜帶傳感器決定,包括四種顏色 的節(jié)點(diǎn)(1)未攜帶傳感器的黑色節(jié)點(diǎn)(2)剩余能量值大于60%的藍(lán)色正常節(jié)點(diǎn)(3)剩余 能量值低于60%而高于30%的紅色警報(bào)節(jié)點(diǎn)(4)剩余能量值低于30%灰色死亡節(jié)點(diǎn)。所述的鏈路虛線的顏色由節(jié)點(diǎn)間通信收包率決定,包括兩種顏色的虛線(1)收 包率大于等于88%的藍(lán)色虛線;(2)收包率小于88%的灰色虛線。所述的節(jié)點(diǎn)繪制位置由節(jié)點(diǎn)部署時(shí)的經(jīng)緯度值或節(jié)點(diǎn)自身定位的相對坐標(biāo)決定, 用戶可選擇其中一種方式。發(fā)明的優(yōu)點(diǎn)是1、利用本發(fā)明,服務(wù)端可通過移動通信網(wǎng)絡(luò)或中繼節(jié)點(diǎn)兩種傳輸 途徑獲得遠(yuǎn)程監(jiān)測區(qū)域網(wǎng)絡(luò)的各種狀態(tài)信息,經(jīng)解析存儲處理后采用多播方式經(jīng)互聯(lián)網(wǎng)同 時(shí)傳輸至多個(gè)客戶端,再經(jīng)過客戶端可視化處理后,用戶可觀察到當(dāng)前無線傳感器網(wǎng)絡(luò)自 身健康狀態(tài)信息,同時(shí),當(dāng)需要對網(wǎng)絡(luò)進(jìn)行調(diào)整時(shí),可利用客戶端或手機(jī)將命令通過服務(wù)端 分發(fā)至各節(jié)點(diǎn)。2、本發(fā)明提供的這種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,在安全方 面,提供了身份認(rèn)證和訪問控制機(jī)制,能夠有效降低攻擊者利用網(wǎng)絡(luò)數(shù)據(jù)流嗅探方式獲取 用戶名和口令的威脅程度,抵御攻擊者的重放攻擊?;诮巧脑L問控制機(jī)制,能夠有效的 約束用戶的行為,確保安全性。3、本發(fā)明提供的這種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,在性能方 面,由于采用多線程與線程池技術(shù),將數(shù)據(jù)顯示與數(shù)據(jù)處理分別放在不同線程中,相比單線 程方式,系統(tǒng)在響應(yīng)速度上有較大提高,數(shù)據(jù)處理也更高效。經(jīng)過測試,當(dāng)網(wǎng)關(guān)節(jié)點(diǎn)以每秒 8個(gè)數(shù)據(jù)包速度的接收數(shù)據(jù),且20個(gè)客戶端同時(shí)向服務(wù)端請求數(shù)據(jù)時(shí),服務(wù)端控制程序CPU 占用率為5%至10%之間,內(nèi)存占用為15MB ;而每個(gè)客戶端控制程序CPU占用率為5%以 內(nèi),內(nèi)存占用為10MB。
4、本發(fā)明提供的這種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,在監(jiān)視和 分析方面,用戶能夠通過客戶端的拓?fù)滹@示觀察整個(gè)網(wǎng)絡(luò)自身健康狀態(tài),包括節(jié)點(diǎn)基本信 息,節(jié)點(diǎn)擁有哪些鄰居,節(jié)點(diǎn)是否死亡或出現(xiàn)低電警告,節(jié)點(diǎn)當(dāng)前感知數(shù)據(jù)信息,鏈路質(zhì)量 是否良好,拓?fù)浣Y(jié)構(gòu)是否發(fā)生變化。5、本發(fā)明提供的這種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,在監(jiān)視和 分析方面,用戶能夠通過客戶端的感知數(shù)據(jù)曲線選擇性觀察某些節(jié)點(diǎn)一段時(shí)間內(nèi)感知數(shù)據(jù) 值波動情況,為分析監(jiān)測區(qū)域環(huán)境提供一定數(shù)據(jù)資料。6、本發(fā)明提供的這種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,在監(jiān)視和 分析方面,用戶能夠通過客戶端的節(jié)點(diǎn)列表更詳細(xì)的觀察節(jié)點(diǎn)當(dāng)前各屬性的參數(shù),包括節(jié) 點(diǎn)編號、名稱、用途描述、部署時(shí)經(jīng)緯度值、當(dāng)前剩余能量值、當(dāng)前發(fā)射功率值、是否攜帶傳 感器、鄰居列表信息、自身定位的相對坐標(biāo)、父節(jié)點(diǎn)編號、睡眠與工作時(shí)間。7、本發(fā)明提供的這種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,在監(jiān)視和 分析方面,用戶能夠通過客戶端的網(wǎng)絡(luò)消息觀察當(dāng)前到達(dá)服務(wù)端的各種原始消息,并可根 據(jù)用戶的需要進(jìn)行分類顯示和進(jìn)一步解析處理以表格的方式展現(xiàn)給用戶,方便用戶對每條 消息進(jìn)行綜合分析比較。
圖1為本發(fā)明的組成結(jié)構(gòu)圖。圖2為發(fā)明的服務(wù)端控制程序啟動流程圖。圖3為本發(fā)明的服務(wù)端控制程序串口通信線程流程圖。圖4為本發(fā)明的服務(wù)端控制程序串口數(shù)據(jù)處理線程流程圖。圖5為本發(fā)明的服務(wù)端控制程序客戶端連接監(jiān)聽線程流程圖。圖6為本發(fā)明的服務(wù)端控制程序客戶端請求處理線程流程圖。圖7為本發(fā)明的服務(wù)端控制程序流程圖。圖8為本發(fā)明的客戶端控制程序進(jìn)行身份認(rèn)證流程圖。圖9為本發(fā)明的客戶端控制程序啟動流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明確,結(jié)合附圖對本發(fā)明進(jìn)一步詳 細(xì)說明。如圖1所示,圖1為本發(fā)明的系統(tǒng)組成圖,包括部署于監(jiān)測區(qū)域的50個(gè)傳感器節(jié) 點(diǎn)、1個(gè)匯聚節(jié)點(diǎn)、3個(gè)中繼節(jié)點(diǎn)、移動通信網(wǎng)絡(luò)、1個(gè)網(wǎng)關(guān)節(jié)點(diǎn)、服務(wù)端、互聯(lián)網(wǎng)和客戶端。首先,將相應(yīng)的節(jié)點(diǎn)程序通過串口燒至傳感器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)、中繼節(jié)點(diǎn)和網(wǎng)關(guān)節(jié) 點(diǎn)中,并將50個(gè)傳感器節(jié)點(diǎn)連同1個(gè)匯聚節(jié)點(diǎn)部署于監(jiān)測區(qū)域,確保所有傳感器節(jié)點(diǎn)的數(shù) 據(jù)都能夠到達(dá)匯聚節(jié)點(diǎn),且匯聚節(jié)點(diǎn)下發(fā)的命令也能夠順利到達(dá)每個(gè)傳感器節(jié)點(diǎn)。然后,將3個(gè)中繼節(jié)點(diǎn)部署于監(jiān)控區(qū)域和監(jiān)控中心之間,使得匯聚節(jié)點(diǎn)數(shù)據(jù)都能 夠經(jīng)過中繼節(jié)點(diǎn)到達(dá)網(wǎng)關(guān)節(jié)點(diǎn),且網(wǎng)關(guān)節(jié)點(diǎn)下發(fā)的命令也能夠順利到達(dá)匯聚節(jié)點(diǎn)。再者,將網(wǎng)關(guān)節(jié)點(diǎn)通過串口線連接到服務(wù)器,確保服務(wù)端監(jiān)控程序能夠接收到來 自串口的數(shù)據(jù),且從服務(wù)端發(fā)送的命令也能夠通過串口到達(dá)網(wǎng)關(guān)節(jié)點(diǎn)。
最后,啟動服務(wù)端監(jiān)控程序和客戶端監(jiān)控程序。如圖2所示,圖2為本發(fā)明的服務(wù)端控制程序啟動流程圖,該流程包括以下步驟步驟201 從XML格式的配置文件讀取配置參數(shù),包括連接網(wǎng)關(guān)節(jié)點(diǎn)的串口號、串 口通信波特率、數(shù)據(jù)庫IP、數(shù)據(jù)庫名、數(shù)據(jù)庫用戶名、數(shù)據(jù)庫用戶密碼、短信服務(wù)中心號碼和 匯聚節(jié)點(diǎn)短信號碼。步驟202 啟動串口通信線程。步驟203 啟動串口數(shù)據(jù)處理線程。步驟204 啟動客戶端連接監(jiān)聽線程。如圖3所示,圖3為本發(fā)明的服務(wù)端控制程序串口通信線程流程圖,該流程包括以 下步驟步驟301 從連接網(wǎng)關(guān)節(jié)點(diǎn)的串口中讀取數(shù)據(jù)。步驟302 判斷串口數(shù)據(jù)長度是否大于零,如果是,則進(jìn)入步驟303進(jìn)行處理;否則 進(jìn)入步驟307處理。步驟303 依據(jù)串口數(shù)據(jù)格式,獲得有效載荷部分,并進(jìn)入步驟304處理。步驟304 將有效載荷部分內(nèi)容及其長度放入隊(duì)列,并設(shè)置信號量為通知狀態(tài),進(jìn) 入步驟305處理。步驟305 判斷是否有數(shù)據(jù)需要寫入串口,如果有,則進(jìn)入步驟306處理,否則進(jìn)入 步驟307處理。步驟306 將待寫入的數(shù)據(jù)寫進(jìn)串口中。步驟307 線程是否需要停止,如果是,則結(jié)束該線程,否則返回步驟301處理。如圖4所示,圖4為本發(fā)明的服務(wù)端控制程序串口數(shù)據(jù)處理線程流程圖,該流程包 括以下步驟步驟401 等待信號量被設(shè)置為通知狀態(tài),如果為通知狀態(tài)則轉(zhuǎn)向步驟402,否則 轉(zhuǎn)向步驟406。步驟402 從隊(duì)列中取出串口數(shù)據(jù)有效載荷長度和內(nèi)容。步驟403 依次解析出1個(gè)字節(jié)消息主類型、1個(gè)字節(jié)消息子類型、若干字節(jié)的消息 體、1個(gè)字節(jié)節(jié)點(diǎn)號、2個(gè)字節(jié)節(jié)點(diǎn)剩余能量值、1個(gè)字節(jié)節(jié)點(diǎn)發(fā)射功率值、11個(gè)字節(jié)的路由 信息及4個(gè)字節(jié)的時(shí)間戳信息。步驟404 依據(jù)消息類型的規(guī)定和步驟403解析得到的消息主類型和消息子類型, 進(jìn)一步解析出節(jié)點(diǎn)感知信息、節(jié)點(diǎn)定位信息、節(jié)點(diǎn)鄰居信息、節(jié)點(diǎn)拓?fù)湫畔⒒蚓W(wǎng)絡(luò)鏈路信 肩、o步驟405 將步驟404解析出的上報(bào)信息存入數(shù)據(jù)庫后,采用多播方式通過互聯(lián)網(wǎng) 轉(zhuǎn)發(fā)至各個(gè)客戶端。步驟406 線程是否需要停止,如果是,則結(jié)束線程,否則返回步驟401處理。如圖5所示,圖5為本發(fā)明的服務(wù)端控制程序客戶端連接監(jiān)聽線程流程圖,該流程 包括以下步驟步驟501 等待客戶端建立連接請求,如果有則轉(zhuǎn)向步驟502,否則轉(zhuǎn)向步驟504。步驟502 為該客戶端單獨(dú)創(chuàng)建一個(gè)線程,專門用于處理該客戶端的數(shù)據(jù)請求。步驟503 將步驟502創(chuàng)建的線程加入到線程池中由系統(tǒng)統(tǒng)一調(diào)配。
8
步驟504 線程是否需要停止,如果是,則結(jié)束該線程,否則返回步驟501處理。如圖6所示,圖6為本發(fā)明的服務(wù)端控制程序客戶端請求處理線程流程圖,該流程 包括以下步驟步驟601 等待來自客戶端的數(shù)據(jù),若接收到數(shù)據(jù)則進(jìn)入步驟601,否則轉(zhuǎn)向步驟 605。步驟602 按照由4個(gè)字節(jié)密文長度、1個(gè)字節(jié)的密鑰及若干字節(jié)的加密體組成的 密文格式,在分離出密鑰及加密體后,經(jīng)過基本數(shù)據(jù)加密解密規(guī)則將密文數(shù)據(jù)還原為明文 數(shù)據(jù)數(shù)據(jù)加密格式。步驟603:依據(jù)自定義消息格式,依次解析出2個(gè)字節(jié)消息主類型、2個(gè)字節(jié)消息子 類型和若干字節(jié)消息體信息。步驟604 依據(jù)消息類型的規(guī)定和步驟603解析得到的消息主類型和消息子類型, 處理包括身份認(rèn)證、任務(wù)管理、命令發(fā)送、基本信息修改、用戶管理、角色管理、感知數(shù)據(jù)類 型管理、啟動或停止接收實(shí)時(shí)數(shù)據(jù)及定時(shí)查詢歷史數(shù)據(jù)的各種請求,處理完畢后,向客戶端 發(fā)送反饋消息。步驟605 線程是否需要停止,如果是,則結(jié)束該線程,否則返回步驟601處理。如圖7、圖8所示,本發(fā)明的服務(wù)端控制程序與客戶端控制程序進(jìn)行身份認(rèn)證流程 圖,該流程包括以下步驟客戶端步驟701 采用MD5加密算法對用戶輸入的用戶名與口令進(jìn)行加密。步驟702 獲得客戶端本地時(shí)間,并使用本地時(shí)間作為密鑰對經(jīng)步驟701加密后的 用戶名與口令再次加密。步驟703 根據(jù)自定消息格式將步驟702得到的時(shí)間密鑰與加密體再次封裝后,發(fā) 送至服務(wù)端進(jìn)行處理。服務(wù)端步驟704 根據(jù)自定消息格式,解析得到時(shí)間密鑰與加密體。步驟705 獲得服務(wù)器本地時(shí)間,與步驟704解析得到的時(shí)間密鑰比較,若時(shí)間差 大于1分鐘,則結(jié)束處理,否則進(jìn)入步驟706。步驟706 依據(jù)加密解密規(guī)則,利用時(shí)間密鑰對加密體進(jìn)行解密,獲得經(jīng)MD5加密 后的用戶名與口令。步驟707 查詢數(shù)據(jù)庫判斷該用戶是否合法,若不合法,則結(jié)束處理,否則進(jìn)入步 驟708繼續(xù)處理。步驟708 查詢數(shù)據(jù)庫獲得用戶編號及權(quán)限信息。步驟709 以服務(wù)器本地時(shí)間作為種子隨機(jī)生成對應(yīng)該用戶的臨時(shí)登陸密碼。步驟710 將步驟708獲得的用戶編號和權(quán)限信息,及步驟709獲得的該用戶臨時(shí) 登陸密碼封裝后發(fā)送至客戶端。如圖9所示,圖9本發(fā)明的客戶端控制程序啟動流程圖,該流程包括以下步驟步驟801 從XML格式的配置文件讀取配置參數(shù),包括服務(wù)器IP,監(jiān)聽端口號,歷史 數(shù)據(jù)播放間隔和歷史數(shù)據(jù)查詢間隔信息。步驟802 啟動服務(wù)端通信及數(shù)據(jù)處理線程,建立與服務(wù)端之間的通信鏈路,該線程專門用于接收、發(fā)送和解析與服務(wù)端通信的數(shù)據(jù)。步驟803 用戶需輸入用戶名和口令,經(jīng)過封裝處理后,發(fā)送至服務(wù)端進(jìn)行身份驗(yàn) 證。步驟804:接收服務(wù)端的反饋數(shù)據(jù),若登陸失敗則結(jié)束程序,否則進(jìn)入步驟805處理。步驟805 根據(jù)該用戶的權(quán)限信息初始化界面菜單。步驟806 創(chuàng)建節(jié)點(diǎn)列表窗口,以表格形式顯示節(jié)點(diǎn)編號、名稱、用途描述、部署時(shí) 經(jīng)緯度值、當(dāng)前剩余能量值、當(dāng)前發(fā)射功率值、是否攜帶傳感器、鄰居列表信息、自身定位的 相對坐標(biāo)、父節(jié)點(diǎn)編號、睡眠與工作時(shí)間,并由主窗體設(shè)置的定時(shí)器統(tǒng)一刷新。步驟807 創(chuàng)建拓?fù)滹@示視圖,包括⑴節(jié)點(diǎn)信息繪制⑵節(jié)點(diǎn)鄰居繪制(3)拓?fù)?結(jié)構(gòu)繪制(4)鏈路信息繪制,并由主窗體設(shè)置的定時(shí)器統(tǒng)一刷新。步驟808 創(chuàng)建節(jié)點(diǎn)感知曲線視圖,將多個(gè)同一節(jié)點(diǎn)不同時(shí)刻的溫度、濕度和光照 值分別使用帶有不同標(biāo)記符號和顏色的直線連接,并由主窗體設(shè)置的定時(shí)器統(tǒng)一刷新,形 成動態(tài)變化的感知曲線。步驟809 創(chuàng)建網(wǎng)絡(luò)消息視圖,包括所有消息,節(jié)點(diǎn)定位數(shù)據(jù)消息、節(jié)點(diǎn)時(shí)間同步 數(shù)據(jù)消息、按CTP路由協(xié)改傳輸?shù)墓?jié)點(diǎn)感知數(shù)據(jù)消息、按洪泛路由協(xié)議傳輸?shù)墓?jié)點(diǎn)感知數(shù) 據(jù)消息、節(jié)點(diǎn)鄰居測試數(shù)據(jù)消息、網(wǎng)絡(luò)鏈路測試數(shù)據(jù)消息和節(jié)點(diǎn)休眠數(shù)據(jù)消息,各視圖都由 主窗體設(shè)置的定時(shí)器統(tǒng)一刷新。
權(quán)利要求
一種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,其特征是方法步驟為A、將50個(gè)傳感器節(jié)點(diǎn)與1個(gè)匯聚節(jié)點(diǎn)部署于監(jiān)測區(qū)域內(nèi),3個(gè)中繼節(jié)點(diǎn)部署于監(jiān)控區(qū)域和監(jiān)控中心之間,監(jiān)控中心的服務(wù)端通過串口與網(wǎng)關(guān)節(jié)點(diǎn)相連,客戶端通過互聯(lián)網(wǎng)與服務(wù)端相連;B、啟動服務(wù)端控制程序,收集并解析經(jīng)匯聚節(jié)點(diǎn)、中繼節(jié)點(diǎn)或移動通信網(wǎng)絡(luò)、網(wǎng)關(guān)節(jié)點(diǎn)傳輸?shù)膫鞲衅鞴?jié)點(diǎn)監(jiān)視數(shù)據(jù),存儲后采用多播方式通過互聯(lián)網(wǎng)轉(zhuǎn)發(fā)至客戶端;C、啟動客戶端控制程序,接收服務(wù)端數(shù)據(jù),經(jīng)可視化處理后,提供網(wǎng)絡(luò)拓?fù)湫畔?、網(wǎng)絡(luò)鏈路信息、網(wǎng)絡(luò)原始消息、節(jié)點(diǎn)狀態(tài)信息、節(jié)點(diǎn)感知曲線信息的顯示,用于分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài);除此之外,還可利用客戶端或手機(jī)將命令通過服務(wù)端分發(fā)至各節(jié)點(diǎn),調(diào)整網(wǎng)絡(luò)狀態(tài)。
全文摘要
一種監(jiān)視與分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)的方法,方法步驟為A、將50個(gè)傳感器節(jié)點(diǎn)與1個(gè)匯聚節(jié)點(diǎn)部署于監(jiān)測區(qū)域內(nèi);B、存儲后采用多播方式通過互聯(lián)網(wǎng)轉(zhuǎn)發(fā)至客戶端;C、用于分析無線傳感器網(wǎng)絡(luò)自身健康狀態(tài);除此之外,還可利用客戶端或手機(jī)將命令通過服務(wù)端分發(fā)至各節(jié)點(diǎn),調(diào)整網(wǎng)絡(luò)狀態(tài)。本發(fā)明的優(yōu)點(diǎn)是服務(wù)端可通過移動通信網(wǎng)絡(luò)或中繼節(jié)點(diǎn)兩種傳輸途徑獲得遠(yuǎn)程監(jiān)測區(qū)域網(wǎng)絡(luò)的各種狀態(tài)信息,經(jīng)解析存儲處理后采用多播方式經(jīng)互聯(lián)網(wǎng)同時(shí)傳輸至多個(gè)客戶端,再經(jīng)過客戶端可視化處理后,用戶可觀察到當(dāng)前無線傳感器網(wǎng)絡(luò)自身健康狀態(tài)信息。
文檔編號H04W84/18GK101808353SQ201010119750
公開日2010年8月18日 申請日期2010年3月8日 優(yōu)先權(quán)日2010年3月8日
發(fā)明者劉琳嵐, 舒堅(jiān) 申請人:南昌航空大學(xué)