顧祺加 蘇文林 吳高標(biāo) 王紀(jì)宇 范逸東 樓思怡
摘要:為了實(shí)現(xiàn)對(duì)組網(wǎng)路燈遠(yuǎn)程的信息獲取與管理,通過(guò)結(jié)合ZIGBEE路由技術(shù),數(shù)據(jù)庫(kù),Java語(yǔ)言以及Eclipse編譯工具,重點(diǎn)設(shè)計(jì)完成了該路燈組網(wǎng)管理系 APP,實(shí)現(xiàn)了在移動(dòng)終端上呈現(xiàn)路燈的運(yùn)行數(shù)據(jù)界面以及通過(guò)移動(dòng)終端對(duì)路燈進(jìn)行遠(yuǎn)程控制和監(jiān)控。
關(guān)鍵詞:ZIGBEE;路燈組網(wǎng);遠(yuǎn)程控制;移動(dòng)終端
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)17-0039-02
隨著環(huán)保,節(jié)能概念的日益推廣與國(guó)家支持,智能化,無(wú)限化已經(jīng)成了路燈發(fā)展的主要趨勢(shì)。LED光源以其節(jié)能環(huán)保聞名于世,在傳統(tǒng)路燈的取代上,加上智能無(wú)線網(wǎng)的推廣應(yīng)用,能夠?qū)崿F(xiàn)利用手機(jī)監(jiān)控路燈。
基于ZigBee的無(wú)線傳感應(yīng)用技術(shù)與手持終端安卓應(yīng)用平臺(tái)結(jié)合,可以完成對(duì)路燈的實(shí)時(shí)監(jiān)控。針對(duì)一系列的情況分析并且加以處理,能實(shí)現(xiàn)自動(dòng)警報(bào),精確定位,智能報(bào)修,試試更改路燈狀態(tài)等功能,大大提高路網(wǎng)的照明效率以及維修檢測(cè)的方便。
1相關(guān)技術(shù)介紹
在工業(yè)4.0與中國(guó)制造2025的倡導(dǎo)下,物聯(lián)網(wǎng)、無(wú)線技術(shù)將會(huì)成為市政路燈照明系統(tǒng)或私家照明系統(tǒng)的主要發(fā)展趨勢(shì)。本文采用Android系統(tǒng)的移動(dòng)終端并結(jié)合ZigBee技術(shù)對(duì)路燈系統(tǒng)進(jìn)行監(jiān)控。Android是主要使用于便攜設(shè)備的一種以Hinux與Java為基礎(chǔ)的開放源代碼操作系統(tǒng),分為四個(gè)層,分別是應(yīng)用程序?qū)樱ˋpplications)、應(yīng)用程序框架層(Application Framework)、系統(tǒng)運(yùn)行庫(kù)層(Libraries和Android Runtime)和Linux內(nèi)核層(Linux Kernel)。Zigbee是一種新穎的近程無(wú)線網(wǎng)絡(luò)通信技術(shù)。在當(dāng)今嵌入式應(yīng)用非常受歡迎。它有低功耗、低成本、低速率、近距離、短時(shí)延、高容量、高安全等7大特點(diǎn)。
2系統(tǒng)關(guān)鍵技術(shù)及實(shí)現(xiàn)
在互聯(lián)網(wǎng)蓬勃發(fā)展的今天,移動(dòng)端的安全隱患是其發(fā)展中出現(xiàn)的主要問(wèn)題之一,因此本軟件采用了兩步驗(yàn)證(Two-factor Authentication)的設(shè)計(jì)方式,服務(wù)器接收控制信息并分離權(quán)限,驗(yàn)證手機(jī)提供的公鑰文件,若Pbulic Key的參數(shù)正確,則按給予用戶高級(jí)交互權(quán)限。連接主動(dòng)中斷后,系統(tǒng)自動(dòng)刪除Cookie和私鑰文件。利用這種方法就能保證訪問(wèn)控制系統(tǒng)時(shí)的安全性。因此如果那些不知道管理密碼的人只能查看路燈信息但不能管理;此外管理人員在管理路燈的時(shí)候不用每次都輸入密碼,即每當(dāng)輸入一次后就有公鑰進(jìn)行驗(yàn)證并且擁有72小時(shí)的公鑰驗(yàn)證給予的控制時(shí)間。計(jì)時(shí)系統(tǒng)根據(jù)后端服務(wù)器中架設(shè)的NTP(時(shí)間同步服務(wù)器)服務(wù)進(jìn)行驗(yàn)證,防止移動(dòng)端單方面修改時(shí)間造成的越權(quán)。
路燈監(jiān)控系統(tǒng)由監(jiān)控中心及移動(dòng)控制端、無(wú)線網(wǎng)絡(luò)、路燈節(jié)點(diǎn)3部分組成。監(jiān)控中心以NAS作為服務(wù)器終端,運(yùn)維人員通過(guò)NAS傳出的數(shù)據(jù)對(duì)路燈進(jìn)行監(jiān)控。并且,Android移動(dòng)終端通過(guò)Socket與服務(wù)器相連接,運(yùn)維人員手持安卓智能手機(jī)向服務(wù)器提交請(qǐng)求并通過(guò)服務(wù)器返回值在安卓應(yīng)用上的可視化數(shù)據(jù)對(duì)路燈的運(yùn)行狀態(tài)進(jìn)行監(jiān)理,由此實(shí)現(xiàn)移動(dòng)終端對(duì)路燈的監(jiān)控。系統(tǒng)結(jié)構(gòu)如圖1所示。
軟件基于C/S架構(gòu),控制子系統(tǒng)和信息處理子系統(tǒng)基于Android智能移動(dòng)平臺(tái)。在Android系統(tǒng)中,自頂向下由應(yīng)用程序?qū)?、?yīng)用程序框架層、外部庫(kù)層、Android運(yùn)行時(shí)庫(kù)層、硬件抽象層HAL和Linux內(nèi)核組成。Android智能移動(dòng)平臺(tái)的研發(fā)需要借助Java Native Interface、Eclips和Native Develop Kit等工具和方法。信息處理與控制子系統(tǒng)的MVC模式如圖2所示。
其中移動(dòng)端數(shù)據(jù)可視化的實(shí)現(xiàn)的主要是接收從服務(wù)器端傳送的路燈數(shù)據(jù),創(chuàng)建在硬盤緩存中的監(jiān)聽套接字,以此開啟路燈運(yùn)維監(jiān)控。之后將服務(wù)器端封裝后傳出的路燈參數(shù)解碼并創(chuàng)建SVG圖像,可作動(dòng)態(tài)也可作靜態(tài)地進(jìn)行顯示。
路燈組網(wǎng)監(jiān)控系統(tǒng)整體架構(gòu)如圖3所示。用戶通過(guò)APP可以可視化的管理路燈,可以實(shí)現(xiàn)控制路燈開關(guān)、路燈周圍光照參數(shù)分析、可隨意設(shè)置路燈自動(dòng)開關(guān)燈時(shí)間、工單遞交、人工服務(wù)、故障信息的反饋及報(bào)警等功能。工作人員利用路燈組網(wǎng)監(jiān)控系A(chǔ)PP客戶端向服務(wù)器管理請(qǐng)求,通過(guò)服務(wù)器調(diào)用城市照明運(yùn)行管理系統(tǒng)服務(wù)端接口對(duì)城市路燈進(jìn)行管理,并向該客戶端發(fā)送路燈的工作狀態(tài);可以即時(shí)地向客戶端發(fā)送故障信息;支持通過(guò)發(fā)送心跳包檢測(cè)客戶端是否在線以及消息的完整性檢杏等功能。
在可視化方面的應(yīng)用決定使用Android自帶的圖形系統(tǒng)。即SurfaceView的繪圖方法,根據(jù)Android開發(fā)者文檔,把Sur-faceView和SurfaceHolder兩個(gè)公共庫(kù)聯(lián)合調(diào)用,直接從端內(nèi)存或其他存在傳人參數(shù)的接口取得圖形參數(shù),創(chuàng)建其他線程并且在其中向客戶端上繪制,在用戶界面中顯示。之所以這么做是因?yàn)椴捎迷谧远xView進(jìn)行繪圖的方法,即存在一些缺陷:View缺乏雙緩沖機(jī)制。SurfaceView啟用新的線程去更新Sur-faceView的繪制,通過(guò)不停地重新繪制畫面實(shí)現(xiàn)視頻效果,由于是在新的線程中更新畫面,不會(huì)阻塞主uI線程,這樣避免畫圖任務(wù)繁重的時(shí)候造成主線程阻塞,從而提高了程序的反應(yīng)速度。
MVVM共分為三層,view層、viewmodel層和model層,其中view層和viewmodel層互相連接;view層和viewmodel層是相互綁定的關(guān)系,當(dāng)更新viewmodel層的數(shù)據(jù)的時(shí)候,view層會(huì)相應(yīng)的變動(dòng)ui;view層和model層不能相互知到,完全的解耦,view-model層充當(dāng)了橋梁的作用。當(dāng)用戶出發(fā)事件的時(shí)候,用于操作view層發(fā)出的事件傳遞到viewmodel層中,viewmodel層去改變model層,并且將數(shù)據(jù)返回給view層,整個(gè)過(guò)程中view層和model層完全沒(méi)有聯(lián)系。
手機(jī)端APP在人為打開之后不僅需要主動(dòng)與服務(wù)器進(jìn)行連接,還要能夠從服務(wù)器獲取路燈信息、向服務(wù)器傳遞控制參數(shù)、通過(guò)獲取路燈的返回值并判斷故障類型。本APP技術(shù)棧使用Socket架構(gòu)實(shí)現(xiàn)雙方的通信。當(dāng)APP與服務(wù)器端成功建立連接后,兩端均通過(guò)JAVA標(biāo)準(zhǔn)庫(kù)里的InputStream類和Output-Slxeam類進(jìn)行雙向通信。為了提高安全性,在AndroidManifest.xml文件中加入訪問(wèn)網(wǎng)絡(luò)的權(quán)限過(guò)濾。
系統(tǒng)在設(shè)計(jì)過(guò)程中,應(yīng)對(duì)其進(jìn)行冒煙測(cè)試,在整個(gè)系統(tǒng)設(shè)計(jì)基本完成之后,也應(yīng)該對(duì)其進(jìn)行整體測(cè)試。通過(guò)輸入嵌入式平臺(tái)服務(wù)端的網(wǎng)絡(luò)IP地址從而完成手機(jī)客戶端與平臺(tái)的建立連接,而無(wú)線傳感器的節(jié)點(diǎn)是通過(guò)室內(nèi)環(huán)境的變化傳輸相應(yīng)數(shù)據(jù)到ZigBee終端,然后將數(shù)據(jù)通過(guò)協(xié)調(diào)器發(fā)送到服務(wù)端并且將之顯示出來(lái),在接收到的數(shù)據(jù)之后,經(jīng)過(guò)處理,反饋給手機(jī)終端,發(fā)出什么指令則根據(jù)接收到的詳細(xì)數(shù)據(jù)。手機(jī)端發(fā)送的指令顯示在在嵌入式平臺(tái)服務(wù)端,服務(wù)端將數(shù)據(jù)傳通過(guò)串口送給Zigbee協(xié)調(diào)器,并通過(guò)Zi曲ee終端執(zhí)行相應(yīng)指令的功能。系統(tǒng)采用的傳感器根據(jù)用途應(yīng)放在合適的區(qū)域,比如:溫濕度傳感器主要用于監(jiān)控是周圍環(huán)境變化,適合安放在門窗,過(guò)道等地方。這些傳感器所采集得到的數(shù)據(jù)信息會(huì)在嵌入式平臺(tái)服務(wù)端顯示出來(lái),如溫濕度的具體數(shù)值,紅外傳感判斷是否有陌生人出入等。在測(cè)試過(guò)程中,所得到的結(jié)果應(yīng)該會(huì)和實(shí)際情況有出入,所差無(wú)幾,即符合設(shè)計(jì)的需要。
3結(jié)束語(yǔ)
路燈組網(wǎng)管理系統(tǒng)APP是以Eclipse編譯環(huán)境下的Java語(yǔ)言編寫的一個(gè)APP,輔以數(shù)據(jù)庫(kù)信息的傳導(dǎo),在ZIGBEE路由技術(shù)的支持下實(shí)現(xiàn)客戶的遠(yuǎn)程訪問(wèn)和管理。該系統(tǒng)具有智能化、高科技化、可操作性強(qiáng)等優(yōu)點(diǎn),可以充分利用Android平臺(tái)的軟硬件資源,是對(duì)遠(yuǎn)程監(jiān)控在移動(dòng)互聯(lián)網(wǎng)環(huán)境下的一次有效嘗試。適用于小范圍、低數(shù)據(jù)量的監(jiān)控系統(tǒng)設(shè)計(jì)。而測(cè)試結(jié)果也表明,我們小組設(shè)計(jì)的系統(tǒng)達(dá)到了預(yù)期目標(biāo)。