尹克新 林琳
摘要:從即時通信領(lǐng)域引入XMPP協(xié)議解決智能家居系統(tǒng)中通信標(biāo)準(zhǔn)不統(tǒng)一、系統(tǒng)擴展性差的問題。提出基于XMPP協(xié)議的系統(tǒng)架構(gòu),使用ZigBee無線網(wǎng)絡(luò)協(xié)議連接家庭中的各環(huán)境傳感器節(jié)點,從而實現(xiàn)對家居環(huán)境信息的實時采集,數(shù)據(jù)通過網(wǎng)絡(luò)保存在支持XMPP協(xié)議的服務(wù)器上,客戶端軟件通過XMPP協(xié)議獲取數(shù)據(jù)并呈現(xiàn)給用戶。實驗結(jié)果表明,該系統(tǒng)具有實時性強、測量準(zhǔn)確、擴展性好、成本低等優(yōu)點。
關(guān)鍵詞:XMPP協(xié)議;ZigBee網(wǎng)絡(luò);環(huán)境監(jiān)測系統(tǒng);智能家居
DOIDOI:10.11907/rjdk.1511623
中圖分類號:TP319
文獻標(biāo)識碼:A 文章編號:1672-7800(2016)005-0068-03
0 引言
近年來,智能家居系統(tǒng)逐漸進入普通家庭,給人們生活帶來了極大便利[1]。環(huán)境監(jiān)測是智能家居系統(tǒng)中的子系統(tǒng),可以實時監(jiān)測環(huán)境參數(shù),提供安全健康的生活環(huán)境,因而得到了廣泛應(yīng)用[2]。
國內(nèi)智能家居系統(tǒng)還處在初步發(fā)展階段,智能家居行業(yè)逐漸形成,國內(nèi)各大電器廠家也適時推出了自己的智能家居系統(tǒng)與標(biāo)準(zhǔn)[3]。在國外,自從美國于1984年建造第一座智能建筑以來,美國、澳大利亞、日本以及歐洲等都大力發(fā)展智能家居,并先后提出了不同的解決方案,智能家居系統(tǒng)得到廣泛發(fā)展和應(yīng)用[4]。
不同廠家生成的或不同品牌的智能家居產(chǎn)品缺乏統(tǒng)一的協(xié)議標(biāo)準(zhǔn),人們很難控制和管理這些異構(gòu)設(shè)備,給日常生活帶來了諸多不便。XMPP協(xié)議廣泛應(yīng)用于即時通信系統(tǒng)、智能家居系統(tǒng)、物聯(lián)網(wǎng)通訊系統(tǒng)、文件傳輸系統(tǒng)、分布式通信系統(tǒng)等領(lǐng)域[5]。受 XMPP 協(xié)議在即時通信領(lǐng)域的啟示,采用基于XMPP協(xié)議的一種抽象的說明性語言 XCITL來描述這些家居設(shè)備的基本信息和控制指令,再通過這種語言制定智能家居控制信息的傳輸標(biāo)準(zhǔn),最終實現(xiàn)智能家居環(huán)境監(jiān)測系統(tǒng)。
1 系統(tǒng)架構(gòu)
智能家居環(huán)境監(jiān)測系統(tǒng)主要分為感知層、網(wǎng)絡(luò)層和應(yīng)用層3個層次,如圖1所示。感知層由溫度、濕度、亮度和PM2.5四種傳感器節(jié)點組成。根據(jù)家庭環(huán)境情況監(jiān)測要求,這四種傳感器節(jié)點按照不同的比例分布在各個房間。其中,客廳和臥室是活動和休息的重要場所,需要把四種類型的傳感器節(jié)點布置其中。而衛(wèi)生間只要求布置溫度和濕度傳感器節(jié)點,餐廳只需布置亮度和PM2.5傳感器節(jié)點。傳感器節(jié)點將采集到的環(huán)境數(shù)據(jù)信息通過ZigBee無線網(wǎng)絡(luò)上傳到XMPP服務(wù)器。
網(wǎng)絡(luò)層有互聯(lián)網(wǎng)、無線網(wǎng)絡(luò)和ZigBee網(wǎng)絡(luò)3個網(wǎng)絡(luò)部分組成,實現(xiàn)不同層次的數(shù)據(jù)信息傳送和信息交流。其中,ZigBee網(wǎng)絡(luò)負責(zé)把感知層傳感器節(jié)點采集到的環(huán)境數(shù)據(jù)信息上傳到XMPP服務(wù)器,同時用戶的各種控制命令也通過ZigBee網(wǎng)絡(luò)傳給傳感器節(jié)點?;ヂ?lián)網(wǎng)和無線網(wǎng)絡(luò)(4G/wifi)負責(zé)終端、智能手機和XMPP服務(wù)器之間的通信。
應(yīng)用層由終端、智能手機和XMPP服務(wù)器組成。XMPP服務(wù)器主要負責(zé)存儲傳感器節(jié)點采集到的家庭環(huán)境數(shù)據(jù)信息,另外也存儲終端用戶登錄系統(tǒng)的用戶名、密碼等信息。終端和智能手機用戶通過互聯(lián)網(wǎng)、無線網(wǎng)絡(luò),以XMPP協(xié)議為基礎(chǔ)和XMPP服務(wù)器進行通信,讀取家庭環(huán)境數(shù)據(jù)信息,實時了解和掌握家庭的環(huán)境狀況。
2 XMPP服務(wù)器設(shè)計
系統(tǒng)采用基于XMPP協(xié)議的Openfile作為服務(wù)器。Openfie是基于Java語言開發(fā)的,對于XMPP協(xié)議有著較為完備的實現(xiàn)和安全性、可擴展性,廣泛用于各類即時通信系統(tǒng)和社交平臺的基礎(chǔ)架構(gòu)。服務(wù)器端主要功能是實現(xiàn)與客戶端的交互,包括請求認證和消息處理。
(1)請求認證:客戶端與服務(wù)器建立通信連接之前,要通過服務(wù)器認證操作。服務(wù)器端設(shè)置有連接請求的監(jiān)聽,一旦監(jiān)聽到客戶端請求,就調(diào)用信息處理模塊,對XML數(shù)據(jù)流進行處理。如果滿足認證條件,就反饋認證結(jié)果給客戶端,并開啟一個新的會話連接鏈路和客戶端進行通信,直到客戶端關(guān)閉信息流為止;如果不滿足認證條件,就將認證失敗的結(jié)果反饋給客戶端[6]。
(2)消息處理:通過認證后,XMPP服務(wù)器會根據(jù)客戶端的JID建立不同的會話,每個會話均由一個獨立的線程來管理。為了保證會話效率,會話管理采用線程池的策略。由于即時通訊實時性的要求,服務(wù)器要實時監(jiān)測好友在線狀態(tài),只有確認好友在線的情況下,才將信息傳送過去。服務(wù)器架構(gòu)如圖2所示。
服務(wù)器主要由核心模塊、服務(wù)支持模塊、接口模塊、數(shù)據(jù)模塊4個模塊組成。各模塊功能如下[7]:
(1)核心模塊。是服務(wù)器功能實現(xiàn)的核心部分,由注冊、登錄、XML解析器和路由4種模塊組成。當(dāng)用戶首次使用該系統(tǒng)時,需要填寫相應(yīng)的個人信息進行注冊。注冊成功后,填寫用戶名和密碼就可以登錄該系統(tǒng)。成功登錄后,就可以設(shè)置系統(tǒng)參數(shù)和采集家中環(huán)境數(shù)據(jù)信息。XML解析器負責(zé)將服務(wù)器端接收到的XML數(shù)據(jù)格式轉(zhuǎn)換成可以執(zhí)行的JAVA代碼。路由模塊負責(zé)系統(tǒng)通信鏈路最優(yōu)路徑選擇。
(2)服務(wù)模塊。由會話管理器和連接管理器兩個模塊組成。會話管理器負責(zé)客戶端和服務(wù)器端之間的通信認證,JID地址管理、通信流程建立和相應(yīng)安全機制的實現(xiàn)。連接管理器負責(zé)客戶端和服務(wù)器端之間的連接,管理用戶的在線狀態(tài)、用戶列表等信息。
(3)數(shù)據(jù)模塊。由MySQL數(shù)據(jù)庫和數(shù)據(jù)存儲器兩個模塊組成。由于MySQL數(shù)據(jù)庫是開源的,用戶可以下載和使用,不會涉及版權(quán)問題,并且功能強、安全性好,所以選擇它作為系統(tǒng)數(shù)據(jù)庫。MySQL主要存儲從傳感器節(jié)點采集到家庭環(huán)境數(shù)據(jù)信息。數(shù)據(jù)存儲器負責(zé)和MySQL數(shù)據(jù)庫的連接,保存系統(tǒng)通信日志、用戶信息等。
(4)接口模塊。由插件和組件兩個模塊組成。用于實現(xiàn)Openfile服務(wù)器和其它服務(wù)器的連接,相當(dāng)于網(wǎng)關(guān)功能。通過接口模塊,本系統(tǒng)上的客戶端可以和其它服務(wù)器上的客戶端相互通信,大大提高了系統(tǒng)的擴展性。
3 客戶端
用戶終端采用VB語言開發(fā),能夠基于XMPP協(xié)議進行數(shù)據(jù)傳輸。根據(jù)任務(wù)要求,客戶端主要分為三層實現(xiàn),如圖3所示。
連接層主要提供通信鏈接功能。系統(tǒng)采用TCP套接字方式鏈接。用戶向服務(wù)器發(fā)起連接請求后,TCP從用戶界面模塊中獲得用戶名、密碼和服務(wù)器地址等信息,然后建立連接。
XMPP層包括XMPP協(xié)議功能模塊和XML解析模塊。XMPP協(xié)議功能模塊負責(zé)管理客戶端和服務(wù)器之間的通信。XML解析模塊負責(zé)對從服務(wù)器上獲得的XMPP信息流進行解釋。
應(yīng)用程序接口層為交互界面提供統(tǒng)一接口調(diào)用,包括用戶的注冊、登錄等。功能設(shè)置可以對傳感器節(jié)點的采樣周期和節(jié)點選擇等系統(tǒng)信息進行設(shè)置,環(huán)境信息顯示是指把家庭環(huán)境狀況信息直觀地顯示出來,呈現(xiàn)給用戶,節(jié)點狀態(tài)分布是傳感器節(jié)點在家中各個房間的分布情況[8]。
4 實驗
為了模擬真實實驗環(huán)境,實驗選擇在有人居住的家庭環(huán)境中進行。一方面可以驗證ZigBee網(wǎng)絡(luò)部分傳感器節(jié)點的數(shù)據(jù)采集和數(shù)據(jù)收發(fā)能力;另一方面,也可以驗證節(jié)點能否在復(fù)雜的環(huán)境下工作。實驗時間是2015年10月8號下午兩點,室內(nèi)環(huán)境溫度20攝氏度左右,濕度50%,晴朗天氣,亮度顯示光線強,由于家中經(jīng)常打開門和窗通風(fēng),PM2.5顯示優(yōu)。實驗結(jié)果如圖4所示。
5 結(jié)語
本文設(shè)計了一種以XMPP協(xié)議為通信標(biāo)準(zhǔn),實現(xiàn)各部分互聯(lián)互通的智能家居環(huán)境監(jiān)測系統(tǒng)。在真實環(huán)境中驗證系統(tǒng)各項功能和指標(biāo)。系統(tǒng)能夠準(zhǔn)確測量和采集家居環(huán)境的數(shù)據(jù)信息,并將這數(shù)據(jù)準(zhǔn)確無誤地傳給服務(wù)器,且在客戶端顯示這些信息,與分析結(jié)果一致,達到了預(yù)期效果。該系統(tǒng)采用ZigBee無線網(wǎng)絡(luò)技術(shù)構(gòu)建環(huán)家庭環(huán)境數(shù)據(jù)采集系統(tǒng),省去有線布置的諸多不便,便于節(jié)點的刪除和添加,具有測量準(zhǔn)確 、實時性強 、成本低 、擴展性好等優(yōu)點。
參考文獻:
[1]吳藝娟 ,秦彩云,萬米洋.基于ZigBee技術(shù)的智能家居環(huán)境監(jiān)測系統(tǒng)設(shè)計[J].北京石油化工學(xué)院學(xué)報,2013,21(1):46-47.
[2]賈飛,夏路易.基于zigBee技術(shù)的家庭環(huán)境監(jiān)測系統(tǒng)的設(shè)計[J].電腦開發(fā)與應(yīng)用,2008,21(2):55-56.
[3]蔡曉宇.基于ZigBee和Android技術(shù)的家庭環(huán)境智能監(jiān)測系統(tǒng)[D].南京:南京師范大學(xué),2012.
[4]張亮.基于ZigBee技術(shù)的智能家居環(huán)境監(jiān)測系統(tǒng)[D].武漢:武漢科技大學(xué),2009.
[5]施濟瑜,苗放,王華軍,等.基于XMPP協(xié)議文件傳輸?shù)难芯颗c實現(xiàn)[J].計算機測量與控制,2009,17(4):732-733.
[6]鞏元鵬.基于XMPP協(xié)議的智能家居遠程控制系統(tǒng)研究設(shè)計[D].青島:中國海洋大學(xué),2012.
[7]周謙,劉志勤,王耀彬,等.基于XMPP的智能小區(qū)遠程控制系統(tǒng)研究與設(shè)計[J].計算機測量與控制,2015,23(2):482-483.
[8]周欣,倫立寶,張庚,等.基于XMPP擴展協(xié)議的遠程控制系統(tǒng)研制[J].計算機與網(wǎng)絡(luò),2014(2):67:68.
(責(zé)任編輯:陳福時)