尹克新 林琳



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