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