薛冰, 溫克歡, 張之涵, 魏恩偉, 劉仲夏
(1. 深圳供電局有限公司, 深圳 518001; 2. 深圳市康拓普信息技術(shù)有限公司, 深圳 518034)
智能家居控制平臺是一種應用趨勢,即利用先進的網(wǎng)絡、計算機和無線通信等技術(shù),通過特定的程序和平臺將其聯(lián)系成一個統(tǒng)一的整體,并能夠遠程控制家居中的各種家用電氣設備[1]。該平臺可以實現(xiàn)對設備的統(tǒng)一管理、遠程監(jiān)控和資源共享,極大地方便了生活、改善了的生活環(huán)境。
工業(yè)自動化水平的提高,遠程控制成了應用越來越多的手段;通過遠程控制系統(tǒng)可以訪問家庭管理服務入口,并且家庭中的網(wǎng)站可以由計算機登錄,并且可以通過Web瀏覽器容易地查詢和控制家庭設備[2]。無論是從社會的角度來看,技術(shù)還是經(jīng)濟方面的考慮,設計一個基于Web方式的智能家居遠程管理系統(tǒng)都將具有一定的意義。
智能家居指的是利用家庭網(wǎng)絡連接設備,保持這些設備和住宅的協(xié)調(diào),從而營造舒適和信息化的生活空間。智能家居可以將家庭內(nèi)部所有的電氣設備和信息設備連接起來,繼而組成網(wǎng)絡,科學管理家居生活的各個方面[3]。
智能家居優(yōu)化人們的生活和環(huán)境,幫助人們有效地安排時間,節(jié)約各種資源,實現(xiàn)家電、照明等功能。具有定時控制和遠程監(jiān)控的功能。
智能家居系統(tǒng)大致可分為三個部分:家庭外部網(wǎng)絡、家庭網(wǎng)關(guān)和家庭內(nèi)部網(wǎng)絡。智能家居的遠程管理系統(tǒng)是指家庭內(nèi)部各種信息設備通過家庭網(wǎng)關(guān)與家庭外部網(wǎng)絡連接,在家庭網(wǎng)關(guān)中添加嵌入式Web服務器后,用戶便可以通過瀏覽器端的界面實現(xiàn)對遠方家庭的信息設備的查看和管理[4]。
家庭外網(wǎng)是指家庭對外能夠通過網(wǎng)關(guān)與外部網(wǎng)絡(如以太網(wǎng)、因特網(wǎng)、廣域網(wǎng))互聯(lián)進行信息交換的一種嶄新的組網(wǎng)和應用技術(shù),從而實現(xiàn)對所有的家庭網(wǎng)絡上的家電和設備進行使用、訪問、控制和管理[5]。
家庭控制內(nèi)部網(wǎng)絡是指通過家庭內(nèi)部網(wǎng)絡連接的所有控制設備并負責所有與信息設備、住宅環(huán)境的查看和管理有關(guān)的服務平臺,采用統(tǒng)一的通信協(xié)議,實現(xiàn)所有信息的傳輸[6]。智能家居組成如圖1所示。

圖1 智能家居示意圖
CQRS(命令查詢職責分離)由Greg Young提出,目前在領域驅(qū)動開發(fā)領域中被廣泛使用。領域驅(qū)動開發(fā)則認為軟件分析設計與實現(xiàn)應當從業(yè)務出發(fā),使用同時包含數(shù)據(jù)和行為的充血模型,且僅僅視數(shù)據(jù)庫為普通的持久化手段之一,而非系統(tǒng)的中心[7]。CQRS,在客戶端就將數(shù)據(jù)的新增修改刪除等動作和查詢進行分離,前者稱為命令(Command),調(diào)用命令服務(Command Service)對領域模型進行操作,而查詢則會調(diào)用查詢服務(Query Service)直接對數(shù)據(jù)進行查詢。CQRS工作原理如圖2所示。

圖2 CQRS工作原理
2.2 JavaFX技術(shù)
JavaFx平臺是一個富客戶端平臺解決方案,它能夠使用應用程序開發(fā)人員輕松地創(chuàng)建跨平臺的富客戶端應用程序。在Java技術(shù)的基礎之上,JavaFX平臺提供了一組豐富的圖形和媒體API與高性能硬件加速圖形和媒體引擎,簡化了開發(fā)數(shù)據(jù)驅(qū)動的企業(yè)客戶端應用程序[8]。
JavaFX技術(shù)具有下列優(yōu)點。
(1) 由于JavaFX平臺是用Java編寫的,Java開發(fā)人員可以使用現(xiàn)有的技術(shù)和工具來開發(fā)JavaFX應用程序。
(2) 因為Java是廣泛使用的,所以很容易找到將JavaFX應用變成產(chǎn)品的開發(fā)人員。
(3) 因為JavaFX跟Java技術(shù)使用的是相同的服務端和客戶端的平臺,所以降低了應用企業(yè)解決方案所帶來的風險。
(4) 因為上述優(yōu)點,所以開發(fā)成本也會降低。
(5) JavaFX為開發(fā)者提供了一個創(chuàng)建跨平臺企業(yè)級業(yè)務應用的開發(fā)框架和運行環(huán)境。
openHAB是系統(tǒng)所依賴的開源軟件項目,提供了對虛擬設備進行控制的功能。它將物理硬件設備統(tǒng)一抽象為虛擬設備,然后在此基礎上提供對虛擬設備進行控制的功能[9]。
在實際控制物理設備時,openHAB可以向事件總線發(fā)送對虛擬設備的控制命令、或者接收虛擬設備的狀態(tài)更新;物理設備驅(qū)動則可以從事件總線接收虛擬設備控制命令,然后根據(jù)虛擬設備和物理設備之間的映射關(guān)系,對物理設備作出控制,然后再根據(jù)控制結(jié)果將虛擬設備狀態(tài)更新發(fā)布到事件總線上[10]。openHAB這樣的體系結(jié)構(gòu),理論上可以支持任何已有的智能家居解決方案或者任何硬件平臺。
(1) 家庭內(nèi)網(wǎng)組網(wǎng)方式選擇
家庭的內(nèi)部網(wǎng)絡用于連接家庭內(nèi)的家用電器、設備和傳感器。目前,家庭中使用的網(wǎng)絡技術(shù)有很多,如有線技術(shù)、無線技術(shù)(包括802.11、UWB、藍牙、Zigbee等)和家庭網(wǎng)絡(包括家庭數(shù)據(jù)網(wǎng)絡和家庭)[11]。
(2) 遠程管理方式選擇
家庭外部網(wǎng)絡可以是無線寬帶網(wǎng)絡、有線電視網(wǎng)絡、電話網(wǎng)絡和因特網(wǎng)。大多數(shù)采用比較成熟的聯(lián)網(wǎng)技術(shù)[12]。家庭外部網(wǎng)絡實現(xiàn)了本地上網(wǎng)工具接入網(wǎng)絡,上網(wǎng)工具登錄到家庭網(wǎng)關(guān)后可以管理家庭內(nèi)部所有信息設備。
目前,遠程管理的常用方法有遙控家用電器、撥撥固定電話、控制手機短信、控制家用電器、手機遠程控制家用電器、PC遙控家用電器等[13]。
(3) 智能家居遠程管理系統(tǒng)結(jié)構(gòu)
上網(wǎng)工具和互聯(lián)網(wǎng)的迅速發(fā)展,遠程上網(wǎng)工具通過互聯(lián)網(wǎng)與家庭網(wǎng)關(guān)互聯(lián),進一步實現(xiàn)基于Web方式的遠程查看、操作、管理以及系統(tǒng)設備的添加和配置等功能的遠程管理系統(tǒng)[14]。瀏覽器端的設備主要有3G智能手機、筆記本、臺式機以及現(xiàn)在用戶常用的iPad等上網(wǎng)工具。家庭網(wǎng)關(guān)具備TCP/IP網(wǎng)絡通信能力,它提供網(wǎng)口與交換機連接,實現(xiàn)網(wǎng)口的擴展,再連接家庭中的路由器等網(wǎng)端設備,這樣就可以實現(xiàn)家庭網(wǎng)關(guān)連接到互聯(lián)網(wǎng)中。因此,家庭局域網(wǎng)上的任何上網(wǎng)工具都可以與其傳遞信息,進而家居中的信息設備可以得到控制。
(4) 智能家居遠程管理系統(tǒng)的各個子系統(tǒng)
設計基于Web方式的智能家居的管理與控制系統(tǒng),要實現(xiàn)家電的管理與控制、家庭設備的配置與控制以及實時音視頻的管理等功能。通過這些功能的劃分,智能化家庭系統(tǒng)可以分為以下幾個子系統(tǒng):智能照明控制系統(tǒng)、家庭電器控制系統(tǒng)、安全防盜系統(tǒng)和情景模式等[15]。
智能家居系統(tǒng)分成三部分:家庭外網(wǎng)、家庭網(wǎng)關(guān)和家庭內(nèi)網(wǎng)。家庭網(wǎng)關(guān)用雙核高性能開發(fā)板來實現(xiàn),并在家庭網(wǎng)關(guān)上實現(xiàn)外網(wǎng)需要的服務器、數(shù)據(jù)庫[16]。數(shù)據(jù)庫里儲存的數(shù)據(jù)即家庭內(nèi)網(wǎng)的實時數(shù)據(jù),通過三者的聯(lián)合實現(xiàn)智能家居的遠程管理系統(tǒng),軟件架構(gòu)如下圖3所示。

圖3 軟件架構(gòu)圖
(1) 嵌入式Linux操作系統(tǒng)的概述
微電子技術(shù)的發(fā)展以及人們對電子產(chǎn)品需求的增加,嵌入式設備也發(fā)展飛速,上也可以有LCD、鍵盤或者觸摸屏,加載了嵌入式操作系統(tǒng)后,能實現(xiàn)網(wǎng)站的瀏覽、視頻的觀看以及郵件的轉(zhuǎn)發(fā)等功能[7]。
(2) 嵌入式Linux系統(tǒng)開發(fā)流程
嵌入式系統(tǒng)的開發(fā),需要將相應的終端設備連接到主設備中,這主要是通過開發(fā)相應的軟件通過端口嵌入到主程序中以此來實現(xiàn)相應設備的互相通信。此外,僅僅依靠嵌入式設備的資源還不具有開發(fā)嵌入式軟件的條件。在此前提下,可以通過以下方式實現(xiàn)嵌入式軟件的開發(fā):首先交叉開發(fā)模式;然后,編輯在主機設備上開發(fā)的程序;最后,編譯并生成主程序可執(zhí)行文件。嵌入式程序編譯完成后復制到目標板OMAP3530上運行、驗證程序。
嵌入式系統(tǒng)的開發(fā)過程主要有:安裝主機LINUXOS、建立交叉編譯環(huán)境、建立引導和加載程序、編譯和移植Linux內(nèi)核以及構(gòu)建Linux根文件系統(tǒng)等。
智能家居遠程管理系統(tǒng)的主要部分是家庭網(wǎng)關(guān),選用OMAP3530處理器,并加入FPGA模塊、以太網(wǎng)模塊、Zigbee模塊以及WCDMA模塊等,構(gòu)建了一個可以融合不同網(wǎng)絡、處理家庭數(shù)據(jù)信息和控制信息的家庭網(wǎng)關(guān)。家庭網(wǎng)關(guān)中還擴展了另外幾個功能模塊,它們的功能分別是:FPGA模塊和以太網(wǎng)模塊:、Zigbee模塊、WCDMA模塊等。
以上模塊的組合構(gòu)成了功能豐富的家庭網(wǎng)關(guān),實現(xiàn)了家庭內(nèi)外網(wǎng)的互聯(lián),對于智能家居遠程管理系統(tǒng)的建立創(chuàng)造了必要的條件,遠程用戶通過外網(wǎng)訪問家庭網(wǎng)關(guān),并通過內(nèi)網(wǎng)實現(xiàn)控制家居生活,
隨著網(wǎng)絡的飛速發(fā)展,Web是嵌入式設備管理和交互應用的主要終端之一。
總體來說,嵌入式設備的資源有限,程序處理比較簡單,因此不需要使用較大型服務器,如Boa、TTTPD、MIYNETHTPD、SHTTPD、LoTTDPD、GoaHand等。選擇具有體積小、功能齊全、內(nèi)存占用少、支持Linux作為嵌入式Linux Web服務器的Boa。然而,Boa服務器也是有缺陷的,它未提供CGI的分析頭處理。
首先,移植嵌入式Boa服務器的環(huán)境為:PC機安裝了Ubuntu8.04操作系統(tǒng),交叉編譯工具是arm-nong-linux-guneabi,目標板為OMAP3530Mini板。數(shù)據(jù)移植和配置Boa服務器步驟如下所示:Boa源碼下載、安裝需要工具bison和flex、修改文件、修改src/log.c、修改src/Boa.c、生成Makefile文件、修改Makefile、編譯后生成Boa、Boa的配置、測試并運行Boa。
(1) 嵌入式數(shù)據(jù)庫的選擇和特點
為了將所有內(nèi)部控制信息存儲在家庭網(wǎng)關(guān)中,以便于Web服務器訪問,需要將其存儲到嵌入式數(shù)據(jù)庫中。嵌入式數(shù)據(jù)庫代碼簡單,無需配置,直接在應用程序中運行,占用較少的內(nèi)存空間,還具有自適應性和自調(diào)整性,被廣泛應用。
SQLite具有以下幾方面的特點:運行時占用的資源很少,大部分內(nèi)容支持現(xiàn)行相關(guān)標準;可以實現(xiàn)并列運行以滿足多個讀訪問。
(2) 數(shù)據(jù)的移植
數(shù)據(jù)的移植過程如下:下載文件并解壓、生成Makefile相關(guān)文件、修改Makefile文件、編譯SQLite數(shù)據(jù)庫和函數(shù),生成需要的庫函數(shù)和相應的頭文件、把SQLite放在目標板、查詢數(shù)據(jù)庫是否可用、對移植的SQLite進行測試。
智能家居中Web平臺管理系統(tǒng)為研究對象,以易移植、占用空間少、操作方便的嵌入式Boa服務器和嵌入式SQLite數(shù)據(jù)庫為基礎,以系統(tǒng)的軟件方案設計與實現(xiàn)為工作重點。通過對該系統(tǒng)的研究,可以得出以下結(jié)論:
(1) 智能家居的遠程管理系統(tǒng)需要實現(xiàn)以下幾項主要功能:智能照明系統(tǒng)、家庭電器控制系統(tǒng)、安防系統(tǒng)和智能情景模式設置。實現(xiàn)這些功能首先要構(gòu)建系統(tǒng)的開發(fā)平臺,主要包括家庭網(wǎng)關(guān)的硬件平臺的選擇、軟件平臺的搭建、軟件架構(gòu)的設計和實現(xiàn)等。
(2) 智能家居管理系統(tǒng)中嵌入Web平臺,首先需要選擇服務器,并做好數(shù)據(jù)遷移的工作,在此基礎上,還應該構(gòu)建適當?shù)臄?shù)據(jù)庫。