摘 要: 使用GPRS與ZigBee相結(jié)合的通信方式搭建了LED路燈遠程監(jiān)控系統(tǒng),。重點設(shè)計了基于Android的移動終端軟件,實現(xiàn)了通過移動終端對路燈進行監(jiān)控,。系統(tǒng)以PC做為服務(wù)器對所有路燈節(jié)點進行監(jiān)控,Android移動終端不與路燈節(jié)點直接通信,,而是通過服務(wù)器向路燈發(fā)送命令并接收服務(wù)器發(fā)送的路燈狀態(tài)和報警信息。軟件采用Socket通信,,采用了二級權(quán)限的設(shè)計方式,,兼顧了移動終端的安全性與方便性。最后對軟件進行了測試,,能夠達到所需的控制要求,,可以應(yīng)用于實際工程當中,。
關(guān)鍵詞: Android; LED路燈,; ZigBee,; 移動終端
智能化,、無線化是路燈照明系統(tǒng)的主要發(fā)展趨勢,。本文采用了ZigBee通信技術(shù)組網(wǎng),并利用Android移動終端來對路燈進行監(jiān)控,,重點是設(shè)計Android移動終端軟件,。利用手機監(jiān)控路燈,工作人員可以在任何時間地點控制路燈開,、關(guān),,隨時掌握路燈運行情況,及時發(fā)現(xiàn)路燈不亮,、常亮,、漏電等各種故障,有效提高對市政管理的工作效率,。
Android 是 Google 開發(fā)的基于Linux的開源移動終端開發(fā)平臺,,其構(gòu)架包括應(yīng)用程序?qū)印?yīng)用程序構(gòu)架層,、系統(tǒng)運行層和Linux內(nèi)核層[1] 4層,。Android系統(tǒng)在2005年加入開放手機聯(lián)盟(The Open Handset Alliance),2008年10月第一款A(yù)ndroid系統(tǒng)的手機問世,。Android手機誕生后發(fā)展迅速,,不僅應(yīng)用軟件數(shù)量巨大,而且做為移動終端在對其他領(lǐng)域進行監(jiān)控方面也有飛速發(fā)展[2-5],。羅飛教授將Android手機應(yīng)用于污水處理系統(tǒng),通過GSM技術(shù)實現(xiàn)遠程監(jiān)控[4];畢經(jīng)平研究員用Android手機替代車載設(shè)備,,實現(xiàn)了汽車狀態(tài)感知上傳、GPS定位等功能[5],;魏崇毓教授將Android手機用于視頻監(jiān)控,,通過手機調(diào)整攝像頭的角度和焦距,并在手機上顯示監(jiān)控畫面[2];王秀敏教授設(shè)計并實現(xiàn)了基于Android平臺的橋梁檢測車安全監(jiān)控系統(tǒng),可以根據(jù)實際情況虛擬障礙物,,實現(xiàn)機械臂與障礙物碰撞的逼真模擬與報警[3],。
1 系統(tǒng)的硬件設(shè)計
系統(tǒng)由監(jiān)控中心及移動控制端、無線網(wǎng)絡(luò),、路燈節(jié)點3部分組成,。監(jiān)控中心以PC做為服務(wù)器,工作人員通過服務(wù)器對路燈進行監(jiān)控,。同時,,Android移動終端通過Socket與服務(wù)器相連接,工作人員用手持移動終端向服務(wù)器傳遞信息并通過服務(wù)器查詢路燈的狀態(tài),進而實現(xiàn)移動設(shè)備對路燈的監(jiān)控,。系統(tǒng)結(jié)構(gòu)如圖1所示,。
無線網(wǎng)絡(luò)采用ZigBee技術(shù)和GPRS技術(shù)相結(jié)合進行通信。ZigBee是短距離,、低功耗,、低效率的無線網(wǎng)絡(luò)技術(shù),協(xié)議棧緊湊簡單,,實現(xiàn)要求低[6],。GPRS模塊從Internet接收服務(wù)器的信息并通過RS232傳遞給ZigBee協(xié)調(diào)器,協(xié)調(diào)器再將信息傳遞給各個路燈節(jié)點,。本系統(tǒng)中ZigBee模塊選用的是CC2530芯片,,網(wǎng)絡(luò)采用樹狀連接,ZigBee網(wǎng)絡(luò)協(xié)調(diào)器起著組織,、管理網(wǎng)絡(luò)和發(fā)號施令的作用,,當網(wǎng)絡(luò)中有節(jié)點加入時,它會為新節(jié)點分配地址,,因此不能掉電也不存在低功耗狀態(tài),。
路燈節(jié)點由電源模塊、控制器和車輛檢測器,、光傳感器和ZigBee路由器組成,,完成通信數(shù)據(jù)的收發(fā)、現(xiàn)場數(shù)據(jù)及控制命令的處理,、LED路燈及相關(guān)檢測器的啟動關(guān)閉任務(wù),。路燈的控制器選用ATmega128芯片,LED驅(qū)動芯片選用XN2115。
2 移動終端軟件設(shè)計
系統(tǒng)以PC做為服務(wù)器來對路燈進行集中控制,, Android移動終端可通過Socket來連接服務(wù)器進而對路燈進行遠程控制,,而非直接與路燈節(jié)點連接通信。Android移動終端可視界面對應(yīng)了Activity,,不可視的任務(wù)由Service完成,。軟件要完成路燈信息查詢、路燈控制,、接收報警等任務(wù),需要多個Activity和Service配合完成[7],。程序流程如圖2所示。
2.1 通信方式
軟件在啟動后需要主動與服務(wù)器進行連接,,還要能夠從服務(wù)器讀取路燈信息,、向服務(wù)器傳遞控制指令、接收服務(wù)器發(fā)出的報警信號,。移動終端與服務(wù)器連接時可采用WebServices或者Socket,。WebServices比較穩(wěn)定但不能進行雙向通信(可與服務(wù)器主動連接,,但是無法接收服務(wù)器主動發(fā)出的報警信號),且占用內(nèi)存比較大,; Socket技術(shù)構(gòu)架存在不穩(wěn)定問題,,但建立連接后服務(wù)器與客戶端都可以主動向?qū)Ψ桨l(fā)出信息。這里使用Socket技術(shù)進行通信,。
客戶端與服務(wù)端建立連接后,,通過InputStream和InputStream進行雙向通信。使用Socket需要訪問網(wǎng)絡(luò),,在AndroidManifest.xml 文件中要加入訪問網(wǎng)絡(luò)的權(quán)限,。
2.2 安全性
移動終端的安全問題是制約其發(fā)展的主要問題之一,,即當手機丟失后,,必須保證得到手機的人不能通過手機來控制路燈系統(tǒng)。軟件采用了兩級權(quán)限的設(shè)計方式,,查詢權(quán)限與控制權(quán)限分離開,,一級密碼、二級密碼分別對應(yīng)了不同的權(quán)限,。軟件啟動后輸入一級密碼進行登錄獲得查詢權(quán)限,,可以查看所有的路燈信息、接收服務(wù)器報警信息,,但是不能對路燈進行控制,;當退出系統(tǒng)時自動退出一級密碼登錄。對路燈進行控制需要輸入二級密碼獲取控制權(quán)限,,輸入二級密碼后系統(tǒng)會自動生成密碼文件并進行計時(此處計時2 min),,對路燈進行控制時系統(tǒng)自動讀取密碼文件信息并加載到控制信息中,服務(wù)器接收控制信息并分離二級密碼信息,,若密碼正確,,則按要求控制路燈。計時結(jié)束后,,系統(tǒng)自動刪除密碼文件,,若要繼續(xù)對路燈進行控制,則需要重新輸入二級密碼,。這樣就兼顧了軟件的安全性和方便性:非工作人員得到手機后能查看信息但不能控制路燈,;工作人員要控制路燈不需要每次都輸入二次密碼,輸入一次后就有2 min的控制時間,。其界面如圖3所示,。軟件中計時部分不在界面中顯示,所以不采用復(fù)雜的計時器,,而是直接使用線程計時,。
2.3 報警模塊
軟件啟動后,要隨時準備接收服務(wù)器的報警信息,。因為系統(tǒng)何時報警并不確定,客戶端無法通過主動查詢的方式去獲取報警信息,,只能被動地等待服務(wù)器報警,。Socket的一個優(yōu)點是連接一旦建立,服務(wù)器與客戶端的區(qū)別就不再明顯,,雙方都可以主動向?qū)Ψ桨l(fā)送信息,。路燈節(jié)點的XN2115芯片會自動檢測路燈是否出現(xiàn)故障,若出現(xiàn)故障,,將會通過無線網(wǎng)絡(luò)向服務(wù)器發(fā)送報警信號,。服務(wù)器接收到路燈的報警信號后,會將這一信息傳遞給手機,,手機通過鈴聲來向工作人員發(fā)出警報,,并在報警歷史文件中更新報警信息。
Socket技術(shù)框架存在不穩(wěn)定問題,,為了增加軟件的的可靠性,,當客戶端接到報警信息后會發(fā)給服務(wù)器一個反饋信息。若服務(wù)器發(fā)送了報警信息卻在2 s內(nèi)收不到反饋信息,,則重新發(fā)送報警信息,。若持續(xù)5次仍然沒有收到反饋,則系統(tǒng)認為網(wǎng)絡(luò)連接斷開,。
2.4 查詢模塊
服務(wù)器每隔1 min會查詢路燈節(jié)點的工作狀態(tài),,并生成或者更新工作狀態(tài)記錄文件。持有移動終端的工作人員在輸入一級密碼之后,,軟件連接服務(wù)器并自動讀取工作狀態(tài)記錄文件,,然后按照工作狀態(tài)記錄文件中的內(nèi)容將路燈狀態(tài)顯示出來。也可以通過“刷新”按鈕來獲取新的工作狀態(tài)記錄文件,。
3 實驗驗證與結(jié)論
Android應(yīng)用程序可在Eclipse環(huán)境下開發(fā),,需要下載Android SDK開發(fā)工具包。Android可以通過ADB動態(tài)下載,、卸載指定的APK文件,。新的APK文件在下載成功后,包管理器會對其進行分析,,讀取應(yīng)用程序的相關(guān)信息,,并將它加入到應(yīng)用程序列表。更換模塊時,,只需要換上相應(yīng)的APK即可,,而不像其他系統(tǒng)那樣需要重新編譯和替換所有模塊。
本系統(tǒng)在局域網(wǎng)內(nèi)進行了測試,。測試手機使用三星I5200,,服務(wù)器程序是在Eclipse環(huán)境下用JAVA編寫的,。手機客戶端可以控制單片機上LED燈的啟動與關(guān)閉,路燈的工作情況,、報警信息也可以在手機上顯示,。程序工作界面如圖4所示。
通過Android移動終端,、PC,、GPRS和ZigBee來組建LED路燈控制網(wǎng)絡(luò),能夠?qū)崿F(xiàn)移動終端對路燈的遠程監(jiān)控,為工作人員帶來了極大的方便,具有較大的應(yīng)用價值,。
參考文獻
[1] 詹成國,朱偉,徐敏.基于Android的測控裝置人機界面的設(shè)計與開發(fā)[J].電力自動化設(shè)備,2012,32(1):119-122.
[2] 魏崇毓,張菲菲. 基于Android平臺的視頻監(jiān)控系統(tǒng)設(shè)計[J].計算機工程,2012,38(14):214-216.
[3] 張麒,王秀敏,任建新.基于Android的橋梁檢測車安全監(jiān)控系統(tǒng)的設(shè)計[J] .吉林大學(xué)學(xué)報(信息科學(xué)版),2012,30(3):285-290.
[4] 盧伯澎, 羅飛. 基于Android和GSM的遠程污水處理系統(tǒng)[J].計算機工程,2011,37(S1):300-308.
[5] 高峰,畢經(jīng)平,郭景峰,等.汽車狀態(tài)感知系統(tǒng)的Android客戶端[J].清華大學(xué)學(xué)報(自然科學(xué)版),2011,51(S1):1393-1396.
[6] KWON Y, KIM H. Efficient group key management of ZigBee network for home automation[C]. 2012 IEEE International Conference on Consumer Electronics(ICCE),,IEEE, 2012:378-379.
[7] 楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機械工業(yè)出版社,2010.