亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android的氣象WSN監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2014-11-30 07:49:52杜景林
        關(guān)鍵詞:客戶端服務(wù)器無(wú)線

        韓 吉,周 杰,杜景林

        (南京信息工程大學(xué) 電子與信息工程學(xué)院,江蘇 南京210044)

        0 引 言

        本文引入氣象無(wú)線傳感器網(wǎng)絡(luò)的概念,將無(wú)線傳感器網(wǎng)絡(luò) (wireless sensor networks,WSN)[1]技術(shù)應(yīng)用于氣象基本要素的觀測(cè)中,輔助傳統(tǒng)自動(dòng)氣象站的氣象觀測(cè),用于局部區(qū)域氣象要素收集工作,監(jiān)測(cè)環(huán)境溫度、濕度、氣壓、風(fēng)速、風(fēng)向和雨量等狀態(tài)。由于無(wú)線傳感器網(wǎng)絡(luò)中的傳感器節(jié)點(diǎn)會(huì)在短時(shí)間內(nèi)采集大量的傳感信息,對(duì)這些信息的加工處理成為了一項(xiàng)重要任務(wù),因此本文提出了分層次的氣象無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)體系結(jié)構(gòu),并設(shè)計(jì)實(shí)現(xiàn)了原型系統(tǒng)。通過該系統(tǒng)傳感器網(wǎng)絡(luò)的采集信息被上傳保存到服務(wù)器的數(shù)據(jù)庫(kù)中,服務(wù)器端使用Web服務(wù)技術(shù)和實(shí)時(shí)通信技術(shù)等,使得用戶能夠在安卓智能手機(jī)上實(shí)時(shí)以曲線圖、表格等多種形式查看監(jiān)測(cè)區(qū)域的氣象信息,同時(shí)還能查看網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、管理傳感器節(jié)點(diǎn)、接收預(yù)警信息等。

        1 相關(guān)工作

        目前,已有一些利用無(wú)線傳感器網(wǎng)絡(luò)構(gòu)建環(huán)境監(jiān)測(cè)系統(tǒng)的研究工作。文獻(xiàn) [2]介紹了一個(gè)基于WSNs和Web技術(shù)構(gòu)建農(nóng)作物溫室環(huán)境監(jiān)測(cè)系統(tǒng)的案例。文獻(xiàn) [3]提出了一種基于Web技術(shù),設(shè)計(jì)無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)的模式。

        如上所述,雖然已有一些關(guān)于無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)的研究,但關(guān)于無(wú)線傳感器網(wǎng)絡(luò)技術(shù),更多的工作集中于對(duì)網(wǎng)絡(luò)通信協(xié)議、網(wǎng)絡(luò)安全管理等方面的研究。本文的主要工作是提出了分層次的無(wú)線傳感網(wǎng)監(jiān)測(cè)系統(tǒng)體系結(jié)構(gòu),組件了監(jiān)測(cè)原型系統(tǒng)。同時(shí),區(qū)別于一些類似工作,本系統(tǒng)中考慮到移動(dòng)用戶、移動(dòng)應(yīng)用場(chǎng)景的大量增長(zhǎng),設(shè)計(jì)了基于安卓智能手機(jī)的移動(dòng)管理客戶端,不僅實(shí)現(xiàn)了傳統(tǒng)Web客戶端中常見的數(shù)據(jù)展示、節(jié)點(diǎn)管理等功能,結(jié)合移動(dòng)設(shè)備的特色還實(shí)現(xiàn)了高效的預(yù)警推送的功能。

        2 系統(tǒng)體系結(jié)構(gòu)及設(shè)計(jì)

        本文提出分層的氣象無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng),其體系架構(gòu)如圖1所示,由下到上依次為感知層、接入層、服務(wù)平臺(tái)層和應(yīng)用層。

        基于上述體系結(jié)構(gòu),構(gòu)建的氣象無(wú)線傳感網(wǎng)監(jiān)測(cè)系統(tǒng)工作方式為:感知層中監(jiān)測(cè)區(qū)域內(nèi)大量傳感器節(jié)點(diǎn)通過自組織形成的一個(gè)感知網(wǎng)絡(luò),將采集到的數(shù)據(jù)經(jīng)過多跳方式進(jìn)行傳輸和處理,最后傳遞到匯聚節(jié)點(diǎn) (sink node),然后經(jīng)過接入層的網(wǎng)關(guān)設(shè)備上傳到服務(wù)平臺(tái)層的網(wǎng)絡(luò)服務(wù)器,最終應(yīng)用層的客戶端用戶就可以通過瀏覽器、手機(jī)等多種方式對(duì)傳感網(wǎng)進(jìn)行配置和管理,完成監(jiān)測(cè)任務(wù)。每個(gè)層次的具體說明如下。

        2.1 感知層

        感知層,即多個(gè)傳感器節(jié)點(diǎn)組成的環(huán)境監(jiān)測(cè)網(wǎng)絡(luò)。常見的傳感器節(jié)點(diǎn),如Crossbow公司的TelosB、MicaZ等。在本項(xiàng)目中,使用的是基于CC2530自制傳感器節(jié)點(diǎn),并移植了TinyOS無(wú)線傳感器網(wǎng)絡(luò)操作系統(tǒng)。傳感器節(jié)點(diǎn)可分成一般傳感器節(jié)點(diǎn) (sensor node)和匯聚節(jié)點(diǎn) (sink node),本項(xiàng)目中傳感器節(jié)點(diǎn)主要負(fù)責(zé)采集基本環(huán)境氣象數(shù)據(jù),匯聚節(jié)點(diǎn)主要負(fù)責(zé)向網(wǎng)關(guān)傳輸數(shù)據(jù)包。

        2.2 接入層

        接入層主要是指網(wǎng)關(guān)設(shè)備。網(wǎng)關(guān)既需要與匯聚節(jié)點(diǎn)進(jìn)行通信,還需要有接入互聯(lián)網(wǎng)的能力。常見的網(wǎng)關(guān)是基于ARM的嵌入式設(shè)備,其通過串口 (RS232)與匯聚節(jié)點(diǎn)保持通信,同時(shí)它可以通過3G、WIFI或其他互聯(lián)網(wǎng)接入方式與服務(wù)器通信。

        2.3 服務(wù)平臺(tái)層

        在分層的氣象無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)中,服務(wù)平臺(tái)層尤為重要,上層客戶端穩(wěn)定可靠的運(yùn)行離不開服務(wù)平臺(tái)層提供的各項(xiàng)基本服務(wù)。在本系統(tǒng)中,服務(wù)平臺(tái)層主要包括如下幾個(gè)模塊:數(shù)據(jù)收發(fā)模塊、數(shù)據(jù)服務(wù)模塊和推送服務(wù)模塊。

        2.3.1 數(shù)據(jù)收發(fā)模塊

        服務(wù)平臺(tái)層中,數(shù)據(jù)收發(fā)模塊起到了 “橋梁”的角色,它主要起到數(shù)據(jù)存儲(chǔ)和指令中轉(zhuǎn)的功能。

        數(shù)據(jù)存儲(chǔ)是指數(shù)據(jù)收發(fā)模塊負(fù)責(zé)將無(wú)線傳感器網(wǎng)絡(luò)采集到的數(shù)據(jù)包按照指定的格式解析并存入數(shù)據(jù)庫(kù)。具體的,傳感器節(jié)點(diǎn)按預(yù)定義的頻率采集到氣象要素?cái)?shù)據(jù)之后,以多跳路由的方式將數(shù)據(jù)包中轉(zhuǎn)到匯聚節(jié)點(diǎn),繼而匯聚節(jié)點(diǎn)將數(shù)據(jù)包發(fā)送到網(wǎng)關(guān)。網(wǎng)關(guān)通過3G或WIFI方式,與數(shù)據(jù)收發(fā)模塊進(jìn)行Socket通信,向其發(fā)送數(shù)據(jù)包。數(shù)據(jù)收發(fā)模塊監(jiān)聽到Socket發(fā)送請(qǐng)求之后,接收數(shù)據(jù)包并根據(jù)預(yù)定義的協(xié)議標(biāo)準(zhǔn)檢驗(yàn)數(shù)據(jù)包的完整性與合法性,判斷數(shù)據(jù)包是否有效。如果有效,按照指定的格式數(shù)據(jù)收發(fā)模塊解析數(shù)據(jù)包,獲得傳感器數(shù)據(jù) (如溫度值)、路由中轉(zhuǎn)路徑、網(wǎng)關(guān)ID編號(hào)等,然后將這些數(shù)據(jù)存入數(shù)據(jù)庫(kù)相應(yīng)的表中。如果無(wú)效,則丟棄該數(shù)據(jù)包。

        指令中轉(zhuǎn)是指數(shù)據(jù)收發(fā)模塊負(fù)責(zé)向傳感器節(jié)點(diǎn)傳達(dá)客戶端的操作請(qǐng)求??蛻舳说目刂普?qǐng)求指令,經(jīng)由數(shù)據(jù)收發(fā)模塊、網(wǎng)關(guān)、多跳路由到達(dá)指定傳感器節(jié)點(diǎn),可對(duì)節(jié)點(diǎn)的工作模式和狀態(tài)進(jìn)行控制,如改變節(jié)點(diǎn)傳感器的采樣頻率、控制節(jié)點(diǎn)使其休眠或工作等。

        2.3.2 數(shù)據(jù)服務(wù)模塊

        數(shù)據(jù)服務(wù)模塊的主要任務(wù)是為客戶端提供數(shù)據(jù)源,客戶端將得到的數(shù)據(jù)以圖表、表格等多種形式展示給用戶。基本的客戶端功能包括歷史數(shù)據(jù)查詢功能和動(dòng)態(tài)數(shù)據(jù)展示功能等。通過構(gòu)建Web服務(wù),客戶端可以通過HTTP請(qǐng)求的方式向數(shù)據(jù)服務(wù)模塊的Web服務(wù)器請(qǐng)求數(shù)據(jù),服務(wù)器根據(jù)請(qǐng)求內(nèi)容從數(shù)據(jù)庫(kù)中查找數(shù)據(jù)集并以XML或JSON格式返回給客戶端。通過這種方式可以很方便地實(shí)現(xiàn)歷史數(shù)據(jù)查詢功能。而對(duì)于客戶端的動(dòng)態(tài)數(shù)據(jù)展示功能,使用了WebSocket實(shí)時(shí)通信技術(shù)。具體如下分析:

        (1)構(gòu)建REST式的Web服務(wù)API

        為實(shí)現(xiàn)移動(dòng)客戶端和數(shù)據(jù)庫(kù)的交互,需要構(gòu)建Web服務(wù)為客戶端提供模塊化、通用的應(yīng)用程序接口 (API)。有遠(yuǎn)程過程調(diào)用 (RPC),面向服務(wù)架構(gòu) (SOA)以及表述性狀態(tài)轉(zhuǎn)移 (REST)3種常見的 Web服務(wù)架構(gòu)[4]。因?yàn)镽EST風(fēng)格的Web服務(wù)與復(fù)雜的SOA和RPC相比更加靈活簡(jiǎn)易,因此本系統(tǒng)中采用了REST架構(gòu),這里重點(diǎn)說明。REST是由Roy Fielding在其博士論文中首次提出,是一種針對(duì)網(wǎng)絡(luò)應(yīng)用的設(shè)計(jì)和開發(fā)方式,可以降低開發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性。在REST的概念中,整個(gè)Web被看作一組資源的集合,資源由URI標(biāo)識(shí),對(duì)資源進(jìn)行的操作由客戶端指定的URI和HTTP協(xié)議動(dòng)詞 (GET、POST、PUT和DELETE)的組合來(lái)實(shí)施。REST這種基于資源的設(shè)計(jì)改變了傳統(tǒng)的基于服務(wù)的設(shè)計(jì)思想[5]。

        構(gòu)建REST服務(wù)的關(guān)鍵是設(shè)計(jì)易于理解且結(jié)構(gòu)良好的URI。在本系統(tǒng)中設(shè)計(jì)資源URI時(shí),采用了如下模板:/{nameSpace}/ {resourceName}/ {resourceId}/ {resourceName}.{format}。 如,URI:http:// [serverip]/nodes/1/temperature.json,將得到節(jié)點(diǎn)編號(hào)為1的傳感器節(jié)點(diǎn)上的最新的溫度數(shù)據(jù)。另外,假設(shè)需要查詢2013-09-15到2013-09-20時(shí)間段內(nèi)節(jié)點(diǎn)1上溫度傳感器數(shù)據(jù)集時(shí),需構(gòu)建的 URI為:http:// [server-ip]/nodes/1/history/temperature/2013-09-15/2013-09-20.json。注意到,構(gòu)建REST式Web服務(wù)時(shí)選用了JSON作為返回?cái)?shù)據(jù)的格式,因?yàn)镴SON較常見的XML格式而言更加輕量級(jí),更易閱讀,且更易于解析處理。借助如此構(gòu)建的REST式Web服務(wù)API,當(dāng)Android客戶端向服務(wù)器發(fā)送HTTP GET或POST請(qǐng)求后,服務(wù)器就會(huì)返回JSON格式的結(jié)果集,形式如下所示:

        "node":[

        "id":"1",

        "tempature":"22.3",

        "time":"11:20:30"

        "date":"2013-09-20"

        },

        (2)基于WebSocket的實(shí)時(shí)通信技術(shù)

        在本系統(tǒng)中,Android客戶端用戶對(duì)于一些功能的實(shí)時(shí)性要求較高,比如需要實(shí)時(shí)刷新顯示當(dāng)前某節(jié)點(diǎn)的傳感器數(shù)值、需要?jiǎng)討B(tài)顯示傳感網(wǎng)中節(jié)點(diǎn)路由拓?fù)鋱D、客戶端操作傳感器節(jié)點(diǎn)使其休眠或啟動(dòng)等,這些功能的實(shí)現(xiàn)都依賴于可靠穩(wěn)定的客戶端-服務(wù)器實(shí)時(shí)通信技術(shù)。

        在傳統(tǒng)的Web客戶端中,存在大量實(shí)時(shí)性要求較高的信息展示需求,因此出現(xiàn)了多種客戶端-服務(wù)器實(shí)時(shí)通信解決方案。其中基于Ajax長(zhǎng)輪詢方式是最常用的技術(shù),其通過輪詢的異步請(qǐng)求方式實(shí)現(xiàn)客戶端刷新。隨著HTML5的興起,出現(xiàn)了另一種實(shí)時(shí)通信機(jī)制:WebSocket。Web-Socket是一種全雙工的雙向通信技術(shù),主要目的是在Web瀏覽器 (或其他客戶端)和Web服務(wù)器之間提供一種類似TCP socket的雙向的、持續(xù)的、有狀態(tài)的通信方式?;赪ebSocket實(shí)時(shí)通信的優(yōu)勢(shì)在于,服務(wù)器和客戶端能夠彼此相互推送消息[6]。在Android原生APP客戶端中,要實(shí)現(xiàn)與WebSocket服務(wù)器的實(shí)時(shí)通信,需借助于第三方開源庫(kù):AutobahnAndroid[7]。

        通常在無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用中,節(jié)點(diǎn)數(shù)目大,傳感器種類多,服務(wù)器端數(shù)據(jù)更新較快,因此Ajax長(zhǎng)輪詢方式的性能將大大降低,且會(huì)給服務(wù)器帶來(lái)較大的處理壓力。此外在本文所述的氣象無(wú)線傳感網(wǎng)監(jiān)測(cè)系統(tǒng)中,客戶端的形式是Android原生APP,Ajax方式顯然不適用于此應(yīng)用場(chǎng)景。綜合考慮WebSocket的性能優(yōu)勢(shì),借助于AutobahnAndroid開源項(xiàng)目,實(shí)現(xiàn)了Android客戶端與服務(wù)器的實(shí)時(shí)通信,其工作模式如圖2所示,服務(wù)器端能夠?qū)崟r(shí)地將定時(shí)更新的傳感器數(shù)值發(fā)送到Android客戶端,客戶端收到數(shù)據(jù)后立即更新顯示界面。同時(shí),Android客戶端能夠向服務(wù)器端實(shí)時(shí)發(fā)送請(qǐng)求指令,經(jīng)過數(shù)據(jù)收發(fā)服務(wù)器、網(wǎng)關(guān),用戶可實(shí)時(shí)操控傳感器節(jié)點(diǎn),使其休眠或啟動(dòng)。此外,用戶也可以查詢節(jié)點(diǎn)的實(shí)時(shí)數(shù)據(jù),使其在固定的上傳頻率之外立即上傳即時(shí)數(shù)據(jù)包,供用戶即時(shí)查詢節(jié)點(diǎn)的當(dāng)前工作狀態(tài)。

        2.3.3 推送服務(wù)模塊

        推送 (push)是一種由服務(wù)器主動(dòng)向客戶端推送消息的技術(shù),與拉取 (pull)相比,它不需要用戶不斷的刷新以檢查是否有消息更新,推送會(huì)主動(dòng)將更新信息發(fā)送給客戶端用戶[8]。目前,推送服務(wù)廣泛應(yīng)用于各種類型的智能手機(jī)應(yīng)用中,如:新聞應(yīng)用會(huì)向用戶及時(shí)推送重大新聞、天氣應(yīng)用會(huì)向用戶及時(shí)推送災(zāi)害性天氣預(yù)報(bào)信息等。通過推送服務(wù),不僅能夠增強(qiáng)用戶黏度,更重要的是能夠及時(shí)向用戶通知一些關(guān)鍵性信息。在本系統(tǒng)中,推送服務(wù)模塊的主要功能是將預(yù)警信息及時(shí)推送給Android客戶端用戶,這里說的預(yù)警信息如:某一傳感器節(jié)點(diǎn)測(cè)得的溫度超出閾值,雨量傳感器測(cè)得的每小時(shí)降水量超出閾值等。通過推送服務(wù)模塊,想要達(dá)到的效果是:只要用戶的Android智能手機(jī)處于開機(jī)且保持網(wǎng)絡(luò)連接狀態(tài),預(yù)警信息就能以Notification通知的形式即時(shí)的顯示在手機(jī)上。

        根據(jù)Google官方的建議,推送服務(wù)可采用谷歌云消息(Google cloud messaging,GCM)實(shí)現(xiàn)。但由于Android是開放源碼的操作系統(tǒng),不同手機(jī)廠商會(huì)根據(jù)源碼進(jìn)行深度定制操作系統(tǒng),所以GCM服務(wù)并不能夠有效地工作在每部手機(jī)上。如果自行實(shí)現(xiàn)高效推送服務(wù),主要存在這樣2種技術(shù)方案:

        (1)長(zhǎng)連接方案。長(zhǎng)連接是指客戶端與服務(wù)器之間維護(hù)一個(gè)TCP長(zhǎng)連接,當(dāng)服務(wù)器有數(shù)據(jù)時(shí),通過該連接實(shí)時(shí)將數(shù)據(jù)推送到客戶端,即所謂的Push。TCP連接通過發(fā)送心跳包的方式保持連接存在,心跳間隔通常設(shè)定為10到30分鐘,在Android客戶端發(fā)起心跳時(shí)耗電稍多,但在心跳間隔期間耗電極少,所以總體上看TCP長(zhǎng)連接方式實(shí)現(xiàn)的推送服務(wù)不僅耗電少而且實(shí)時(shí)性很高[9]。

        (2)開源解決方案?;赬MPP(可擴(kuò)展通訊和表示協(xié)議)的開源項(xiàng)目androidopn[10]是一種常用的開源方案。但由于XMPP的協(xié)議體是基于XML的,所以較為冗余,對(duì)于流量和電量敏感的手機(jī)客戶端而言,該方案并不是最佳選擇。

        綜合考慮上述2種方案,長(zhǎng)連接方案的性能最佳,但自行實(shí)現(xiàn)該方案需要設(shè)計(jì)一個(gè)長(zhǎng)連接服務(wù)器,該服務(wù)器需要維護(hù)與所有客戶端的連接,當(dāng)客戶端數(shù)目過大時(shí)服務(wù)器的設(shè)計(jì)是一個(gè)很大的挑戰(zhàn)。注意到目前出現(xiàn)一些第三方推送服務(wù)供應(yīng)商,如國(guó)外的Parse[11],國(guó)內(nèi)的極光推送[12]等。分析它們的技術(shù)原理,都是通過心跳包的方式使得網(wǎng)絡(luò)環(huán)境復(fù)雜的移動(dòng)客戶端和服務(wù)器保持TCP長(zhǎng)連接,從而提供穩(wěn)定可靠的推送服務(wù)。在本系統(tǒng)中,為節(jié)約成本、快速開發(fā),使用了極光推送的服務(wù)進(jìn)行氣象無(wú)線傳感網(wǎng)內(nèi)預(yù)警信息的推送。

        具體的工作流程如圖3所示。為使用極光推送服務(wù),Android客戶端需要加入極光推送的Android SDK,即1個(gè)庫(kù)文件,借助這個(gè)庫(kù)文件,客戶端可以與極光云推送服務(wù)器保持較為穩(wěn)定的長(zhǎng)連接,其內(nèi)部通過心跳包機(jī)制實(shí)現(xiàn)跳線重連。在本系統(tǒng)的自建服務(wù)器中,通過數(shù)據(jù)收發(fā)模塊過濾下層網(wǎng)絡(luò)傳來(lái)的傳感器數(shù)據(jù),第一時(shí)間檢測(cè)到預(yù)警信息并轉(zhuǎn)交給推送服務(wù)模塊。推送服務(wù)模塊收到預(yù)警消息后將消息生成統(tǒng)一的JSON格式,然后通過HTTP請(qǐng)求調(diào)用極光推送遠(yuǎn)程API將消息推送出去,數(shù)秒鐘之內(nèi)Android客戶端用戶就能收到Notification形式的預(yù)警信息。

        2.4 應(yīng)用層

        在本文提出的無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)層次結(jié)構(gòu)中,應(yīng)用層位于最上層,是指可視化的傳感網(wǎng)監(jiān)測(cè)、管理客戶端,提供用戶交互界面。區(qū)別于常見的Web管理客戶端,該項(xiàng)目中的客戶端是基于Android平臺(tái)的原生應(yīng)用,其主要功能結(jié)構(gòu)如圖4所示。

        圖4 中Android客戶端主要分成5個(gè)模塊,體現(xiàn)在用戶界面上是5個(gè)選項(xiàng)卡,每個(gè)模塊可細(xì)分出各個(gè)功能類別,詳細(xì)說明如下:

        (1)氣象預(yù)報(bào)模塊,即首頁(yè)選項(xiàng)卡。該模塊提供了氣象預(yù)報(bào)服務(wù),通過政府氣象部門的Web服務(wù)提供全國(guó)各大城市7天天氣預(yù)報(bào)查詢功能。借助于Android的基站、WIFI或GPS定位,可自動(dòng)識(shí)別當(dāng)前所在城市。該模塊還提供了查看當(dāng)前傳感網(wǎng)內(nèi)氣象數(shù)據(jù)的功能。此外,借助于各大社交網(wǎng)站提供的API,可以方便的將天氣預(yù)報(bào)或傳感網(wǎng)氣象數(shù)據(jù)分享到微博等平臺(tái)。

        (2)歷史數(shù)據(jù)模塊,即歷史選項(xiàng)卡。該模塊提供傳感器節(jié)點(diǎn)歷史數(shù)據(jù)查詢功能,用戶選擇節(jié)點(diǎn)編號(hào)、傳感器類型和時(shí)間段條件后,客戶端向Web服務(wù)器提交查詢請(qǐng)求,客戶端得到返回的JSON數(shù)據(jù)后,將其解析并以列表和圖表的形式展示給用戶。其中繪制圖表時(shí),使用了開源的Android圖表繪制庫(kù) AChartEngine[13]。

        (3)節(jié)點(diǎn)管理模塊,即管理選項(xiàng)卡。該模塊提供了節(jié)點(diǎn)狀態(tài)管理功能和動(dòng)態(tài)路由拓?fù)鋱D查看功能。其中節(jié)點(diǎn)狀態(tài)管理包括了更新節(jié)點(diǎn)的采樣頻率和工作狀態(tài),同時(shí)在節(jié)點(diǎn)現(xiàn)場(chǎng)借助于Android手機(jī)精準(zhǔn)的GPS定位可確定該節(jié)點(diǎn)的GPS坐標(biāo)并導(dǎo)入數(shù)據(jù)庫(kù)。

        (4)地圖服務(wù)模塊,即地圖選項(xiàng)卡。借助于第三方地圖服務(wù),可方便地在地圖上標(biāo)注出每個(gè)傳感器節(jié)點(diǎn)的地理位置。點(diǎn)擊地圖上的節(jié)點(diǎn)標(biāo)記,可以彈出氣泡對(duì)話框顯示出當(dāng)前節(jié)點(diǎn)所包含的傳感器類別以及最新的傳感器數(shù)據(jù)。同時(shí)借助于GPS定位追蹤功能,可方便的到達(dá)無(wú)線傳感器網(wǎng)絡(luò)部署現(xiàn)場(chǎng)找到對(duì)應(yīng)的節(jié)點(diǎn)。

        (5)應(yīng)用配置模塊,即設(shè)置選項(xiàng)卡。該模塊主要包括了對(duì)客戶端的一些配置功能,包括:管理用戶賬號(hào)、配置服務(wù)器地址、開關(guān)預(yù)警推送、客戶端更新和反饋意見等。

        如上所述,借助于服務(wù)平臺(tái)層提供的Restful Web服務(wù)和WebSocket實(shí)時(shí)通信服務(wù),該Android客戶端實(shí)現(xiàn)了路由拓?fù)湫畔⒄故?、傳感器信息查詢和?jié)點(diǎn)控制等基本功能。同時(shí),借助于第三方推送服務(wù),通過服務(wù)平臺(tái)層的推送服務(wù)模塊,實(shí)現(xiàn)了預(yù)警信息即時(shí)推送功能。

        3 系統(tǒng)實(shí)現(xiàn)與測(cè)試

        按照如圖1所示的系統(tǒng)體系結(jié)構(gòu)組件氣象無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng),整個(gè)監(jiān)測(cè)網(wǎng)絡(luò)部署在室外環(huán)境中。系統(tǒng)具體包括18個(gè)傳感器節(jié)點(diǎn)及6個(gè)附加傳感器,1個(gè)網(wǎng)關(guān),1個(gè)系統(tǒng)服務(wù)平臺(tái)和1個(gè)Android客戶端。

        其中18個(gè)傳感器節(jié)點(diǎn)為基于CC2530的自行設(shè)計(jì)節(jié)點(diǎn)(如圖5(a)所示),基于TinyOS操作系統(tǒng)組成監(jiān)測(cè)網(wǎng)絡(luò)。節(jié)點(diǎn)電路板的設(shè)計(jì)可根據(jù)需求添加貼片式的溫度、濕度和光照和氣壓傳感器,只需燒錄對(duì)應(yīng)的驅(qū)動(dòng)程序即可正常工作。這18個(gè)傳感器節(jié)點(diǎn)中的2個(gè)節(jié)點(diǎn)作為匯聚節(jié)點(diǎn),它們采用太陽(yáng)能蓄電池直流供電系統(tǒng)作為電源,搭載了功耗較高的工業(yè)級(jí)傳感器,包括了風(fēng)速、風(fēng)向、溫濕度、氣壓和雨量傳感器。

        網(wǎng)關(guān)為基于ARM 6410的嵌入式設(shè)備 (如圖5(b)所示),采用Linux操作系統(tǒng),通過串口 (RS232)接收匯聚節(jié)點(diǎn)傳來(lái)的數(shù)據(jù)包,并通過3G、WIFI上傳到服務(wù)器。

        系統(tǒng)服務(wù)平臺(tái)部署在一臺(tái)Windows Server 2008服務(wù)器上。其中數(shù)據(jù)收發(fā)模塊和推送服務(wù)模塊采用C#技術(shù)實(shí)現(xiàn),數(shù)據(jù)庫(kù)采用MySQL開源數(shù)據(jù)庫(kù)。數(shù)據(jù)服務(wù)模塊采用Java語(yǔ)言,通過MyEclipse、Jetty和Jersey技術(shù)構(gòu)建RESTful Web服務(wù)。

        Android客戶端基于Google Android SDK (system development kit),采用Java語(yǔ)言編寫實(shí)現(xiàn),已在三星i9300,Google Nexus 4等多部手機(jī)上安裝調(diào)試成功。圖6展示了Android客戶端部分功能效果。如圖6(a)所示,用戶可以給定條件,查詢傳感器節(jié)點(diǎn)的歷史氣象數(shù)值。當(dāng)用戶點(diǎn)擊右上角的查詢按鈕后,客戶端根據(jù)請(qǐng)求條件向Web服務(wù)器發(fā)起HTTP請(qǐng)求,從而得到對(duì)應(yīng)的歷史數(shù)據(jù)集,然后生成表格展示給用戶。如圖6(b)所示,借助于第三方地圖服務(wù),用戶可以隨時(shí)查看傳感器節(jié)點(diǎn) (圖中氣泡狀標(biāo)記)部署的位置以及自身 (實(shí)心圓點(diǎn)標(biāo)記)所處位置。打開該地圖選項(xiàng)卡后,客戶端后臺(tái)就與服務(wù)平臺(tái)層的數(shù)據(jù)服務(wù)模塊保持了WebSocket實(shí)時(shí)通信,點(diǎn)擊傳感器節(jié)點(diǎn)氣泡標(biāo)記,就會(huì)彈出顯示該節(jié)點(diǎn)的詳細(xì)信息。

        4 結(jié)束語(yǔ)

        本文以氣象無(wú)線傳感器網(wǎng)絡(luò)為應(yīng)用背景,提出了分層次的監(jiān)測(cè)系統(tǒng)結(jié)構(gòu),并根據(jù)應(yīng)用需求,設(shè)計(jì)和實(shí)現(xiàn)了可視化的監(jiān)測(cè)、管理系統(tǒng)。其中,感知層的物理感知設(shè)備,即傳感器節(jié)點(diǎn)負(fù)責(zé)監(jiān)測(cè)環(huán)境狀態(tài)并將采集到的數(shù)據(jù)包以多跳路由的方式通過匯聚節(jié)點(diǎn)、網(wǎng)關(guān) (接入層)上傳到服務(wù)器(服務(wù)平臺(tái)層)。服務(wù)器端通過構(gòu)建REST風(fēng)格的 Web服務(wù)、穩(wěn)定的WebSocket實(shí)時(shí)通信服務(wù)等,為Android客戶端 (應(yīng)用層)的可視化數(shù)據(jù)展示提供了穩(wěn)定可靠的數(shù)據(jù)源。同時(shí),利用服務(wù)器端的推送服務(wù)模塊和第三方推送服務(wù),Android客戶端實(shí)現(xiàn)了高效的預(yù)警信息推送功能。本監(jiān)測(cè)系統(tǒng)尚處于原型開發(fā)階段,有些功能仍需完善,如推送功能依賴于第三方服務(wù),后續(xù)工作將考慮自行開發(fā)推送服務(wù)器。此外,考慮提高系統(tǒng)的可擴(kuò)展性,以滿足不同的應(yīng)用場(chǎng)景。

        [1]Jennifer Yick,Biswanath Mukherjee,Dipak Ghosal.Wireless sensor network survey [J].Computer Networks,2008,52(12):2292-2330.

        [2]Francisco G Montoya,Julio Gómez,Alejandro Cama,et al.A monitoring system for intensive agriculture based on mesh networks and the Android system [J].Computers and Electronics in Agriculture,2013,99:14-20.

        [3]Anthony Marcus,Mihaela Cardei,Ionut Cardei,et al.A pattern for Web-based WSN monitoring [J].Journal of Communications,2011,6 (5):393-399.

        [4]LI Ang.Designing and implementation of RESTful workflow middleware[J].Computer Engineering and Design,2012,33(9):3455-3459 (in Chinese).[李昂.REST架構(gòu)工作流中間件設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33 (9):3455-3459.]

        [5]CHENG Xiaofei.Research and design of Web Services [D].Wuhan:Wuhan University of Technology,2010:18-19 (in Chinese).[程小飛.基于REST架構(gòu)的 Web Services的研究與設(shè)計(jì) [D].武漢:武漢理工大學(xué),2010:18-19.]

        [6]JIANG Fengyan,DUAN Huichuan.Application research of WebSocket technology on Web tree component[C]//IEEE International Symposium on Information Technologies in Medicine and Education,2012:889-892.

        [7]Tavendo.Autobahn Android [CP/OL].[2013-10-25].https://github.com/tavendo/AutobahnAndroid.

        [8]WANG Kefeng.The design and implementation of information push and management system based on Android [D].Dalian:Dalian University of Technology,2012:5-6 (in Chinese).[王克峰.基于Android的信息推送管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[D].大連:大連理工大學(xué),2012:5-6]

        [9]SHAO Xiaozhe,WU Guoquan,WEI Jun,et al.Design and implementation of messaging service for mobile platform [J].Computer Engineering & Science,2013,35 (9):78-82 (in Chinese).[邵小哲,吳國(guó)全,魏峻,等.面向移動(dòng)平臺(tái)的消息通訊服務(wù)設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與科學(xué),2013,35(9):78-82.]

        [10]Androidpn[CP/OL].[2013-10-25].http://sourceforge.net/projects/androidpn/.

        [11]Parse [EB/OL].[2013-10-25].https://www.parse.com/.

        [12]JPush [EB/OL].[2013-10-25].https://www.jpush.cn/(in Chinese).[極光推送[EB/OL].[2013-10-25].https://www.jpush.cn/.

        [13]A Chart Engine[CP/OL].[2013-10-25].https://code.google.com/p/achartengine/.

        猜你喜歡
        客戶端服務(wù)器無(wú)線
        《無(wú)線互聯(lián)科技》征稿詞(2021)
        通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
        無(wú)線追蹤3
        基于ARM的無(wú)線WiFi插排的設(shè)計(jì)
        電子制作(2018年23期)2018-12-26 01:01:08
        縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        孵化垂直頻道:新聞客戶端新策略
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        ADF7021-N在無(wú)線尋呼發(fā)射系統(tǒng)中的應(yīng)用
        電子制作(2016年15期)2017-01-15 13:39:03
        得形忘意的服務(wù)器標(biāo)準(zhǔn)
        計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
        福利视频一区二区三区| 亚洲AⅤ无码片一区二区三区| 无码 免费 国产在线观看91| 韩国黄色三级一区二区| 亚洲码欧美码一区二区三区| 一区二区三区在线 | 欧| 2021年国产精品每日更新| 亚洲av高清在线一区二区三区| 日本二一三区免费在线| 69sex久久精品国产麻豆| 狠狠狠色丁香婷婷综合激情| 在线免费观看亚洲毛片| 日本人视频国产一区二区三区 | 吃奶摸下激烈床震视频试看| 人妻丰满多毛熟妇免费区| 日本高清二区视频久二区| 蜜桃av噜噜一区二区三区策驰| 亚洲va无码手机在线电影| 亚洲国产美女在线观看| 日本高清人妻一区二区| 国产免费又色又爽粗视频| 国精无码欧精品亚洲一区| 91精品国产综合久久青草| 国产精品久久婷婷六月丁香| 性按摩xxxx在线观看| 在教室伦流澡到高潮hnp视频| 秀人网嫩模李梓熙大尺度| 亚洲精品av一区二区| 国产精品爽黄69天堂a| 九色91精品国产网站| 国产精品又爽又粗又猛又黄| 美女mm131爽爽爽| 99久热re在线精品99 6热视频| 中文熟女av一区二区| 中国人在线观看免费的视频播放 | 国产AV无码专区亚洲AWWW| 91精品国自产拍老熟女露脸| 免费a级作爱片免费观看美国| 女性自慰网站免费看ww| 日韩人妻一区二区中文字幕| 国产精品538一区二区在线|