基于openHAB的智能家居系統(tǒng)設計與實現(xiàn)
摘要:針對目前智能家居存在的網(wǎng)絡異構,控制不靈活以及成本較高等問題,文章設計并實現(xiàn)了一種基于開源軟件openHAB的智能家居系統(tǒng)。該系統(tǒng)采用樹莓派作為嵌入式家庭網(wǎng)關及應用服務器,能夠實現(xiàn)對家庭數(shù)字設備和智能電器的自動化監(jiān)測和智能控制。通過搭建原型系統(tǒng)進行試驗,證明了該套系統(tǒng)具有良好的可行性、靈活的管理性和異構設備集成性,并且其成本低、功耗低、穩(wěn)定性強。
關鍵詞:智能家居 開放式家庭自動化總線 開放服務網(wǎng)關規(guī)范 家庭網(wǎng)關 家庭網(wǎng)絡
0 引言
隨著自動化技術、計算機網(wǎng)絡技術以及通信技術的快速發(fā)展,智能的數(shù)字設備和家用電器正在不斷滲入到現(xiàn)代家庭。這些智能設備的運用使人們與住宅之間的交互變得更為簡單和方便,也為智能家居的實現(xiàn)提供了可能。同時,隨著經(jīng)濟的高速發(fā)展,人們的生活水平不斷提高,個人對居住的環(huán)境也有了更高的要求,智能家居將成為人們生活的主流。
智能家居的概念起源于20世紀70、80年代,世界上經(jīng)濟比較發(fā)達的國家先后提出了各種各樣的智能家居系統(tǒng)的設計方案,使智能家居系統(tǒng)在發(fā)達國家中得到了廣泛的應用。國內(nèi)智能家居產(chǎn)品的研發(fā)起步較晚,上世紀90年代才開始專注于智能家居的研究,在整體水平上參差不齊,對產(chǎn)品的核心技術缺少了自主知識產(chǎn)權。隨著物聯(lián)網(wǎng)技術和云計算技
術的發(fā)展,智能家居系統(tǒng)也迎來了新一輪的挑戰(zhàn)和機遇。近年來,關于智能家居的項目不斷涌現(xiàn),這些項目包括麻省理工學院媒體實驗室及其他部門共同主導的 House_n、美國杜克大學的Smart Home以及卡耐基梅隆大學的Intelligent Workplace。雖然這些項目所帶來的研究成果為智能家居發(fā)展奠定了基石,但是這些研究僅限于示范性項目并不能被廣泛應用于人們的生活。為了使智能家居商業(yè)化,各大科技巨頭也爭相進軍智能家居市場,國外主要有谷歌的Android@Home智能家居計劃、微軟的家庭自動化系統(tǒng)HomeOS、蘋果公司的智能家居平臺HomeKit和三星的smart Home,國內(nèi)主要有清華同方的e—Home數(shù)字家園,海爾的U_home等。然而,現(xiàn)有的這些智能家居產(chǎn)品由于普遍存在價格昂貴,可靠性和穩(wěn)定性差,標準不一致,遠程控制響應慢以及設備兼容性和擴展性差等問題而沒有被用戶廣泛采用。針對智能家居發(fā)展所面臨的問題,文獻分析了智能家居遭遇的重大挑戰(zhàn)源于其價格高、靈活性差、可管理性差以及難以實現(xiàn)的安全性。文獻說明了不同硬件和軟件之間的互操作性,有限的服務可擴展性和結構的復雜性阻礙了智能家居的大規(guī)模應用。
針對上述現(xiàn)有智能家居系統(tǒng)存在的問題和缺陷,為實現(xiàn)對智能設備控制的靈活性、良好的系統(tǒng)擴展性與經(jīng)濟性,本文設計并實現(xiàn)了一種基于開源軟件openHAB 的智能家居系統(tǒng)。該系統(tǒng)設計主要包括基于樹莓派的嵌入式家庭網(wǎng)關、家庭網(wǎng)絡方案以及具有控制住宅內(nèi)智能設備的統(tǒng)一友好界面,能夠實現(xiàn)對家庭數(shù)字設備和智能電器的自動化監(jiān)測和智能控制,為用戶生活提供極大的方便。
1 智能家居基本概念
智能家居是未來家庭的發(fā)展趨勢,它是指將住宅中的各種電子、電氣設備通過網(wǎng)絡連接起來,進而實現(xiàn)對這些設備和家庭環(huán)境的智能管理、遠程監(jiān)控和資源共享。其目的是為人們提供一個安全、舒適、高效和便利的生活環(huán)境。
圖1描述了一個基本的智能家居系統(tǒng)框架。在圖示的室內(nèi)環(huán)境中,所有的數(shù)字設備和家用電器都被連接到家庭網(wǎng)絡來接收指令或者更新狀態(tài),家庭網(wǎng)關不僅使住宅完全連接在一起,也提供了以太網(wǎng)和因特網(wǎng)的外部訪問方式,因而使室內(nèi)環(huán)境和室外環(huán)境連接在一起,方便于用戶遠程控制。
2 openHAB平臺
openHAB是一種能夠將不同家庭自動化系統(tǒng)和技術集成到一個單一解決方案的開源軟件。這種方案涵蓋廣泛的自動化規(guī)則并且提供統(tǒng)一的用戶接口,旨在為家庭自動化構建提供一個簡單通用的集成平臺,其基本的結構如下圖2所示:
openHAB的設計是與硬件/協(xié)議無關,它通過綁定匯集了不同的總線系統(tǒng)、硬件設備和接口協(xié)議。這些綁定可以通過openHAB事件總線發(fā)送和接收命令,并更新狀態(tài)。開發(fā)者可以在openHAB的基礎上設計獨特的操作界面以開發(fā)自己的家庭自動化系統(tǒng),或者利用其它技術來創(chuàng)建設備新的控制方式。 openHAB作為一個開源項目,其運行時是基于Eclipse Equinox。如上圖2所示,openHAB運行時是一組部署在OSGi框架(Equinox)的OSGi Bundles。
OSGi服務平臺由OSGi聯(lián)盟制定,它由兩部分組成:OSGi框架和OSGi標準服務。OSGi框架是實現(xiàn)OSGi功能的運行環(huán)境,OSGi標準服務定義了很多用于執(zhí)行常見的可重用API。OS Gi系統(tǒng)主要由三個構件組成:Framework,Bundle和Service。Framework架構在JVM(Java Virtual Machine)上運行,Bundle是運行在Framework上的應用程序,而Service是Bund le所提供(Export)或所需(Import)的服務。OSGi服務平臺是一個通用的、安全的、可管理的Java軟件框架結構,因此它具有平臺獨立性、可移植性和安全性等優(yōu)良特性。目前,OSGi規(guī)范主要面向家庭網(wǎng)關和機頂盒領域。
3 系統(tǒng)方案
本文利用開源軟件openHAB設計并實現(xiàn)一種具有靈活控制性、良好系統(tǒng)擴展性與經(jīng)濟性的智能家居系統(tǒng)。系統(tǒng)的總體架構如圖3所示,整個系統(tǒng)包括應用域,網(wǎng)絡域,智能設備域和云端四個組成部分。應用域實際上就是客戶端,網(wǎng)絡域由家庭內(nèi)部網(wǎng)絡和外界因特網(wǎng)構成,智能設備區(qū)域包括各種智能電子設備和家用電器,云端涵蓋了云計算和物聯(lián)網(wǎng)技術,其所提供的服務能夠使openHAB客戶端通過互聯(lián)網(wǎng)進行遠程監(jiān)控住宅。
為了實現(xiàn)圖3所示的智能家居系統(tǒng),本文分別設計了關鍵組件家庭網(wǎng)關和家庭網(wǎng)絡。家庭網(wǎng)關能夠管理集成到家庭網(wǎng)絡中的智能設備和家用電器并且具有靈活的擴展性和動態(tài)更新軟件的機制,而家庭網(wǎng)絡則主要實現(xiàn)對智能設備的組網(wǎng)和對不同接入方式的兼容。
3. 1 智能家居系統(tǒng)中的家庭網(wǎng)關
家庭網(wǎng)關是智能家居系統(tǒng)中的控制中心,本文圖3所示的家庭網(wǎng)關是基于樹莓派(Raspberry Pi)和openHAB而搭建。樹莓派由注冊于英國的慈善組織“Raspberry Pi基金會”開發(fā),它是一款基于ARM的微型電腦主板,以SD卡為內(nèi)存硬盤,卡片主板周圍有兩個USB接口和一個網(wǎng)口,可連接鍵盤、鼠標和網(wǎng)線,同時擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口。由于其能耗小,價格低廉,并且性能也可以滿足本文提出的智能家居系統(tǒng)的需求,因此本系統(tǒng)采用樹莓派作為家庭網(wǎng)關的硬件設備,而且樹莓派中運行的是基于Debian的Linux的操作系統(tǒng),有著豐富的開源軟件,因而開發(fā)也方便。
本文設計的家庭網(wǎng)關體系結構如圖4所示。用戶界面為用戶提供Web工具或者遠程App等,主要負責為整個智能家居提供可視化操作,從而使用戶能夠方便控制整個住宅中的智能設備。I/O服務為終端用戶提供Http接口、Socket接口等服務。安全模塊主要是為了使用戶遠程監(jiān)控住宅而提供認證和授權功能。云服務模塊為家庭用戶或者家庭設備使用云服務提供適配功能。數(shù)據(jù)分析模塊主要用于對家庭設備的監(jiān)控數(shù)據(jù)進行處理和分析。邏輯控制策略模塊能夠根據(jù)數(shù)據(jù)分析結果實現(xiàn)對設備的智能控制,同時也為智能設備之間的相互協(xié)作提供策略。數(shù)據(jù)存儲與日志分析模塊主要負責處理、存儲和檢索住宅中各種智能設備的歷史數(shù)據(jù),這些數(shù)據(jù)便于后續(xù)研究分析。
針對其中的用戶界面模塊,用戶可以使用openHAB中org.openhab.ui.webapp工程中的CmdServlet和WebAppServlet入口類來定制自己的用戶界面。邏輯控制策略模塊可以借助openHAB所提供的包予以實現(xiàn),例如:
上述代碼只是為了說明邏輯控制策略模塊的實現(xiàn)方式。設備驅動/數(shù)據(jù)采集模塊可以依據(jù)OSGi技術規(guī)范為各種智能設備開發(fā)并實現(xiàn)其Bindings,一個 Binding對應于OSGi的一個Bundle。Binding的目的就是對openHAB事件總線上的事件和外部系統(tǒng)之間進行轉換。Binding需要常規(guī)配置設置,這可以通過在OSGi配置管理服務(Configuration Admin)來實現(xiàn),具體可以實現(xiàn)接口ManagedService。Binding的通信方式有兩種,一種是從openHAB事件總線發(fā)送命令或者更新狀態(tài)到外部系統(tǒng),另一種就是從外部系統(tǒng)獲取信息并且傳給openHAB事件總線。Binding所需要實現(xiàn)的關鍵方法有:
通過openHAB并且結合所開發(fā)的智能設備驅動模塊(即Bundles),使得所有家庭智能設備能夠和家庭網(wǎng)關進行正常通信,便于用戶控制。為了實現(xiàn)整個家庭網(wǎng)關架構,還需在嵌入式硬件設備樹莓派中安裝Raspbian操作系統(tǒng)以及Java運行環(huán)境JRE。
3.2 智能家居系統(tǒng)中的家庭網(wǎng)絡
如上圖1所示,針對智能家居的通信問題,不僅需要使室內(nèi)電子設備和家用電器能夠進行通信,并且還要將智能家居與外界因特網(wǎng)進行通信。根據(jù)圖3提出的智能家居系統(tǒng)整體設計方案,本文專注于實現(xiàn)智能家居室內(nèi)通信。
依據(jù)通信網(wǎng)絡的范圍和規(guī)模,一般通信網(wǎng)絡可分為如上圖5所示的四種類型。PAN(Personal Area Network)個人局域網(wǎng)通常是無線的,并且是以按需或者自組織方式建立連接,其通信范圍距離短,常常限制在10米及其以內(nèi)范圍。LAN(Local Area Network)局域網(wǎng)是一個小范圍地理區(qū)域的相對較小的網(wǎng)絡,例如筆記本電腦、臺式電腦、打印機和其他聯(lián)網(wǎng)設備在相對較近的距離能夠彼此互聯(lián)組建一個局域網(wǎng)。MAN(Metropolitan Area Network)城域網(wǎng)通常用來描述覆蓋全市或者城鎮(zhèn)的一個網(wǎng)絡,城域網(wǎng)比傳統(tǒng)的局域網(wǎng)覆蓋范圍要大得多,它主要使用光纖電纜等高速介質傳輸數(shù)據(jù)。WAN(Wide Area Network)廣域網(wǎng)比LANs和MANs覆蓋更大的地理區(qū)域,并且它將不同地理區(qū)域的設備連接在一起分享信息,一個廣域網(wǎng)能夠包含多個較小的網(wǎng)絡,例如LANs或者MANs。
針對智能家居室內(nèi)通信問題(如下圖6所示),本文依據(jù)上述四種不同通信網(wǎng)絡的各自特點,將專注于個人局域網(wǎng)(PAN)無線通信技術和局域網(wǎng)(LAN)技術。本文提出的架構都是基于上述范圍內(nèi)的通信技術及相應的智能設備。從技術的角度來看,家庭網(wǎng)絡的主要挑戰(zhàn)來源于不兼容的通信技術標準。為了解決住宅中的復雜多樣的異構網(wǎng)絡,本文設計了基于openHAB的家庭網(wǎng)關,它能夠使整個系統(tǒng)適應不同的網(wǎng)絡技術如藍牙,ZigBee,Z—Wave,Wi— Fi,EnOcean等,并且通過家庭網(wǎng)關為不同的通信子網(wǎng)提供橋接能力,因而整個住宅中的網(wǎng)絡設備能夠全部連接在一起。在openHAB中,為智能設備相關協(xié)議開發(fā)并實現(xiàn)其Bundle,然后將其加載到openHAB運行時,這樣就使得家庭網(wǎng)關支持不同的協(xié)議類型,具備連接家庭各種類型子網(wǎng)能力,以適應于家庭網(wǎng)絡的異構性。
更進一步,若要為智能家居系統(tǒng)提供安全可靠的因特網(wǎng)外部訪問方式,還需要深入研究家庭網(wǎng)絡以及家庭網(wǎng)關,因為家庭網(wǎng)絡已然發(fā)展成為無處不在的計算環(huán)境并且大量的私人信息變得是可以訪問的。因此在這樣一個開放式的網(wǎng)絡環(huán)境中,我們有必要而且必須要保護家庭網(wǎng)絡免受非法訪問和安全威脅,關于這方面研究工作可以參考文獻。
4 實驗驗證
圖7所示為本文實驗平臺組件和設備的部署圖。為了簡化實驗方案而不失一般性,并且能夠實現(xiàn)對本文提出的智能家居系統(tǒng)的有效性和可靠性的驗證,實驗平臺僅采用B型綠版UK樹莓派和Milight等硬件搭建了智能家居原型系統(tǒng),并使用開源軟件openHAB1.4版本。
實驗中所使用的硬件連接示意圖如下圖8所示:
可以使用命令行終端觀察整個系統(tǒng)后臺運行的狀態(tài)如下圖9所示:
經(jīng)過連續(xù)一個月的運行和測試,系統(tǒng)運行狀態(tài)穩(wěn)定。
使用手機終端或者平板電腦登錄到家庭網(wǎng)關的Web服務器中,以獲取已設計開發(fā)出來的用戶界面。通過用戶界面(如下圖11所示),用戶可以控制Milight燈的亮度以及色度,其實驗結果如下圖10所示:
經(jīng)過長時間的運行和測試,試驗表明該套系統(tǒng)可以很方便控制住宅內(nèi)的智能設備,系統(tǒng)對于智能硬件設備控制的實時性以及系統(tǒng)自身的穩(wěn)定性都能夠滿足日常生活需求并且給用戶帶來極大的方便和好處,同時該系統(tǒng)也具有價格低廉,節(jié)能,易擴展,界面友好等優(yōu)點。
5 結論
本文介紹了智能家居的基本概念,并針對當前智能家居系統(tǒng)所面臨的挑戰(zhàn),基于openHAB設計并實現(xiàn)一種具有靈活控制性、良好系統(tǒng)擴展性與經(jīng)濟性的智能家居系統(tǒng)。該系統(tǒng)能夠實現(xiàn)對住宅內(nèi)智能電子設備和家用電器的監(jiān)控和智能控制。然而本文僅僅驗證并實現(xiàn)部分室內(nèi)智能家居控制,因此還需對系統(tǒng)作進一步的完善。