俞文俊 凌志浩,2
(華東理工大學(xué)自動(dòng)化系1,上海 200237;化工過(guò)程先進(jìn)控制與優(yōu)化技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室2,上海 200237)
為了滿足社會(huì)對(duì)生產(chǎn)、生活各個(gè)環(huán)節(jié)不斷增長(zhǎng)的智能化、便捷化的要求,物聯(lián)網(wǎng)(internet of things,IoT)伴隨著電信技術(shù)、互聯(lián)網(wǎng)技術(shù)和IT技術(shù)的發(fā)展融合應(yīng)運(yùn)而生。所謂物聯(lián)網(wǎng)就是指在物理世界的實(shí)體中部署具有一定感知能力、計(jì)算能力和執(zhí)行能力的嵌入式芯片及軟件,使這些實(shí)體成為“智能物體”,并通過(guò)網(wǎng)絡(luò)設(shè)施實(shí)現(xiàn)信息傳輸、協(xié)同和處理,最終實(shí)現(xiàn)物與物、物與人之間的通信[1]。物聯(lián)網(wǎng)主要具備以下三個(gè)特征:①全面感知,即能夠隨時(shí)隨地獲取實(shí)體的信息;②可靠傳遞,即要求將實(shí)體的感知信息實(shí)時(shí)準(zhǔn)確地傳遞出去;③智能處理,即要求對(duì)海量的數(shù)據(jù)信息進(jìn)行高效的分析和處理并實(shí)現(xiàn)對(duì)實(shí)體的智能化控制。
目前,物聯(lián)網(wǎng)的應(yīng)用領(lǐng)域主要包括物流監(jiān)控、污染監(jiān)控、智能檢索、遠(yuǎn)程醫(yī)療、智能交通和智能家居(smart home)等[2]。其中,智能家居因其應(yīng)用前景廣闊、潛在市場(chǎng)需求巨大且發(fā)展迅猛而受到廠商的廣泛關(guān)注。智能家居就是以住宅為平臺(tái),利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、安全防范技術(shù)、自動(dòng)控制技術(shù)和音視頻技術(shù),實(shí)現(xiàn)家居設(shè)備的集成,從而構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng),滿足用戶對(duì)家居的安全性、舒適性需求。
智能家居系統(tǒng)依據(jù)全面感知、可靠傳遞、智能處理的功能需求,可劃分為感知層、網(wǎng)絡(luò)層和應(yīng)用層三個(gè)層次。
①感知層
感知層包括各類搭載了ZigBee無(wú)線通信模塊的家用電器、照明設(shè)備和安防設(shè)備等,實(shí)現(xiàn)對(duì)家庭環(huán)境的全面感知,并由智能家庭網(wǎng)關(guān)實(shí)現(xiàn)感知層和網(wǎng)絡(luò)層的數(shù)據(jù)交互。
②網(wǎng)絡(luò)層
網(wǎng)絡(luò)層包括一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器和一臺(tái)Web站點(diǎn)服務(wù)器。數(shù)據(jù)庫(kù)服務(wù)器用于同家庭數(shù)據(jù)網(wǎng)關(guān)進(jìn)行數(shù)據(jù)交互;Web站點(diǎn)服務(wù)器通過(guò)訪問(wèn)上述數(shù)據(jù)庫(kù)服務(wù)器獲取數(shù)據(jù)將信息,并通過(guò)Web站點(diǎn)發(fā)布到互聯(lián)網(wǎng)上。
③應(yīng)用層
應(yīng)用層包括各類搭載了Web瀏覽器的終端設(shè)備,用戶可通過(guò)Web瀏覽器訪問(wèn)上述站點(diǎn)實(shí)現(xiàn)對(duì)智能家居系統(tǒng)的管理和控制。
智能家居系統(tǒng)的總體架構(gòu)如圖1所示。
圖1 系統(tǒng)框架結(jié)構(gòu)Fig.1 Framework of system
智能家居系統(tǒng)的硬件主要包括無(wú)線傳感網(wǎng)絡(luò)、智能網(wǎng)關(guān)、數(shù)據(jù)庫(kù)服務(wù)器等的設(shè)計(jì),具體介紹如下。
首先,對(duì)處于感知層的ZigBee無(wú)線傳感網(wǎng)絡(luò)進(jìn)行設(shè)計(jì),包括多個(gè)ZigBee終端/路由節(jié)點(diǎn)和一個(gè)ZigBee協(xié)調(diào)器節(jié)點(diǎn)。通過(guò)在家居設(shè)備節(jié)點(diǎn)上搭載上述ZigBee通信控制節(jié)點(diǎn),將散布在家庭環(huán)境中的各個(gè)設(shè)備節(jié)點(diǎn)組成無(wú)線傳感網(wǎng)絡(luò),從而實(shí)現(xiàn)各類家居設(shè)備的連接以及智能化。其中,ZigBee協(xié)調(diào)器負(fù)責(zé)整個(gè)無(wú)線傳感網(wǎng)絡(luò)的組網(wǎng)和路由維護(hù),并實(shí)時(shí)地將無(wú)線傳感網(wǎng)內(nèi)節(jié)點(diǎn)的感知數(shù)據(jù)上傳給監(jiān)控用PC,同時(shí)接收并轉(zhuǎn)發(fā)由上述監(jiān)控用PC發(fā)送來(lái)的控制數(shù)據(jù)。
然后,將上述監(jiān)控PC機(jī)通過(guò)WiFi或以太網(wǎng),與Internet路由器相連接組成家庭智能網(wǎng)關(guān)。其中,PC機(jī)在數(shù)據(jù)下行側(cè)與無(wú)線傳感網(wǎng)絡(luò)中的協(xié)調(diào)器通過(guò)RS-232串行通信接口相連接;路由器在數(shù)據(jù)上行側(cè)與數(shù)據(jù)庫(kù)服務(wù)器通過(guò)互聯(lián)網(wǎng)相連接,通過(guò)“PC機(jī)+路由器”的模式實(shí)現(xiàn)了連接傳感網(wǎng)與互聯(lián)網(wǎng)間的網(wǎng)關(guān)功能。通過(guò)上述“PC機(jī)+路由器”的模式,實(shí)現(xiàn)了連接傳感網(wǎng)與互聯(lián)網(wǎng)間的網(wǎng)關(guān)功能。
同時(shí),在互聯(lián)網(wǎng)中搭建一個(gè)基于 Microsoft SQL Sever 2005的數(shù)據(jù)庫(kù)服務(wù)器,用于與上述路由器進(jìn)行數(shù)據(jù)交互,并對(duì)這些數(shù)據(jù)進(jìn)行智能分析處理和存儲(chǔ);另外搭建一個(gè)基于.NET框架的Web站點(diǎn)服務(wù)器,通過(guò)訪問(wèn)上述數(shù)據(jù)庫(kù)服務(wù)器獲得實(shí)時(shí)的家居環(huán)境數(shù)據(jù),并通過(guò)Web站點(diǎn)發(fā)布給用戶;接著將在Web頁(yè)面上接收到的用戶指令交遞給數(shù)據(jù)庫(kù)服務(wù)器。
最終,遠(yuǎn)程用戶通過(guò)各類搭載了Web瀏覽器的終端設(shè)備訪問(wèn)Web站點(diǎn),以實(shí)現(xiàn)對(duì)家居設(shè)備的監(jiān)視和控制。
整個(gè)系統(tǒng)主要由無(wú)線傳感網(wǎng)絡(luò)、監(jiān)控用PC、路由器、數(shù)據(jù)庫(kù)服務(wù)器、Web站點(diǎn)服務(wù)器以及各類終端設(shè)備組成,系統(tǒng)硬件架構(gòu)如圖2所示。
圖2 系統(tǒng)硬件架構(gòu)Fig.2 Hardware framwork of system
智能家居領(lǐng)域的組網(wǎng)技術(shù)一般可分為有線組網(wǎng)和無(wú)線組網(wǎng)兩種技術(shù)。目前,有線組網(wǎng)技術(shù)應(yīng)用于電話線、電力線和以太網(wǎng)等,有線組網(wǎng)都不同程度地存在著布線繁瑣、擴(kuò)展性差、影響家居美觀等缺點(diǎn)。新興的無(wú)線組網(wǎng)技術(shù)在智能家居應(yīng)用領(lǐng)域中則具有得天獨(dú)厚的優(yōu)勢(shì),其無(wú)需布線、便于安裝和后期維護(hù)、容易遷移和擴(kuò)展等特點(diǎn),特別適合靈活的家居應(yīng)用場(chǎng)景。這些優(yōu)勢(shì)使無(wú)線組網(wǎng)技術(shù)正逐漸取代有線組網(wǎng)技術(shù),成為智能家居系統(tǒng)末梢網(wǎng)的主流組網(wǎng)技術(shù)[3]。
在智能家居系統(tǒng)的實(shí)際應(yīng)用環(huán)境中,一般對(duì)設(shè)備節(jié)點(diǎn)的信息采集速率和命令發(fā)送速率要求都比較低。典型情況下,一般要求采集速率和發(fā)送速率為十幾kbit/s左右即可滿足要求[4],但對(duì)信息傳輸?shù)目煽啃院途W(wǎng)絡(luò)容量要求較高。在目前常見(jiàn)的無(wú)線組網(wǎng)技術(shù)中,與脈沖無(wú)線電、Z-Wave、藍(lán)牙、Wi-Fi等技術(shù)相比,ZigBee作為一種低功耗、低成本、低速率和低復(fù)雜度的近程無(wú)線通信技術(shù),特別適合智能家居系統(tǒng)的應(yīng)用特點(diǎn),并被業(yè)界廣泛采用[5]。
在ZigBee無(wú)線傳感網(wǎng)絡(luò)的建立過(guò)程中,首先需要由協(xié)調(diào)器初始化網(wǎng)絡(luò)。為了避免與其他工作在2.4 GHz設(shè)備間的信號(hào)干擾,協(xié)調(diào)器首先在其16個(gè)信道中掃描并選擇出一個(gè)能量最小的信道,并在其上建立自己的網(wǎng)絡(luò)。由于信道的個(gè)數(shù)只有有限的16個(gè),所以在復(fù)雜的應(yīng)用場(chǎng)景中還可能存在多個(gè)網(wǎng)絡(luò)共享一個(gè)信道的情況。ZigBee協(xié)調(diào)器通過(guò)給網(wǎng)絡(luò)指定不同的個(gè)域網(wǎng)網(wǎng)絡(luò)標(biāo)志符(personal area network ID,PANID)來(lái)解決這個(gè)問(wèn)題。PANID的設(shè)定范圍是0x0001~0x3FFF,不同的ZigBee網(wǎng)絡(luò)通過(guò)不同的PANID來(lái)識(shí)別彼此間的區(qū)別,避免干擾。當(dāng)路由器和終端設(shè)備啟動(dòng)之后,在沒(méi)有被強(qiáng)制指定過(guò)PANID的情況下,協(xié)調(diào)器會(huì)定時(shí)掃描16個(gè)信道,在發(fā)現(xiàn)網(wǎng)絡(luò)之后會(huì)自動(dòng)加入,從而實(shí)現(xiàn)家居設(shè)備的自組網(wǎng)過(guò)程[6]。
位于智能家居系統(tǒng)網(wǎng)絡(luò)層的數(shù)據(jù)庫(kù)服務(wù)器,匯聚了由感知層傳來(lái)的各類節(jié)點(diǎn)的數(shù)據(jù)信息。為了將眾多數(shù)據(jù)進(jìn)行有效的歸納匯總,并且最終實(shí)現(xiàn)智能的分析管理,就需要用到數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)管理系統(tǒng)是一個(gè)通過(guò)數(shù)據(jù)結(jié)構(gòu)來(lái)管理和存儲(chǔ)數(shù)據(jù)的計(jì)算機(jī)軟件系統(tǒng),具有數(shù)據(jù)安全性控制、數(shù)據(jù)完整性控制、并發(fā)控制以及故障發(fā)現(xiàn)和恢復(fù)等功能[7],能夠?qū)Υ鎯?chǔ)在計(jì)算機(jī)內(nèi)的數(shù)據(jù)集合提供高效、靈活的訪問(wèn)方式。。
本系統(tǒng)采用Microsoft SQL Sever 2005作為數(shù)據(jù)庫(kù)管理系統(tǒng),并通過(guò)設(shè)計(jì)用戶信息管理模塊、設(shè)備信息及活動(dòng)狀態(tài)管理模塊和漢英互譯模塊三個(gè)模塊,來(lái)滿足智能家居應(yīng)用的具體需求。
用戶信息管理模塊包括一張存儲(chǔ)用戶ID、用戶登錄名、登錄密碼、訪問(wèn)權(quán)限以及計(jì)費(fèi)信息的表單。計(jì)費(fèi)信息表單以用戶ID作為主鍵,每個(gè)用戶ID對(duì)應(yīng)一條不重復(fù)的記錄。用戶只有在通過(guò)認(rèn)證后才能登陸Web站點(diǎn)并獲取數(shù)據(jù)服務(wù),同時(shí)依據(jù)其具有的訪問(wèn)權(quán)限對(duì)自有設(shè)備進(jìn)行管理和控制,并且按照一定的計(jì)費(fèi)方法支付給服務(wù)提供商費(fèi)用。
設(shè)備信息及活動(dòng)狀態(tài)管理模塊由四張表單組成,分別為節(jié)點(diǎn)信息注冊(cè)表、設(shè)備實(shí)時(shí)活動(dòng)狀態(tài)記錄表、設(shè)備歷史活動(dòng)記錄表和節(jié)點(diǎn)類型記錄表。
①節(jié)點(diǎn)信息注冊(cè)表,它用于保存節(jié)點(diǎn)的靜態(tài)描述信息,包括節(jié)點(diǎn)ID、節(jié)點(diǎn)類型和節(jié)點(diǎn)所有者等信息。該表單使用節(jié)點(diǎn)ID作為主鍵,每個(gè)節(jié)點(diǎn)通過(guò)節(jié)點(diǎn)ID對(duì)應(yīng)一條不重復(fù)的記錄,用于記錄節(jié)點(diǎn)的各種基本屬性。
②設(shè)備實(shí)時(shí)活動(dòng)狀態(tài)記錄表,它用于保存節(jié)點(diǎn)的動(dòng)態(tài)描述信息,即節(jié)點(diǎn)當(dāng)前的活動(dòng)狀態(tài)信息,包括節(jié)點(diǎn)ID、當(dāng)前指令執(zhí)行內(nèi)容、當(dāng)前指令執(zhí)行狀態(tài)和當(dāng)前節(jié)點(diǎn)活動(dòng)狀態(tài)。該表使用節(jié)點(diǎn)ID作為主鍵,每個(gè)裝置節(jié)點(diǎn)通過(guò)節(jié)點(diǎn)ID對(duì)應(yīng)一條不重復(fù)的記錄,并根據(jù)感知層發(fā)送上來(lái)的信息對(duì)其進(jìn)行實(shí)時(shí)更新。
③設(shè)備歷史活動(dòng)記錄表,它用于保存節(jié)點(diǎn)的歷史活動(dòng)信息,包括節(jié)點(diǎn)ID、節(jié)點(diǎn)歷史事件時(shí)間記錄和節(jié)點(diǎn)歷史事件內(nèi)容記錄。該表使用節(jié)點(diǎn)ID作為主鍵,每個(gè)裝置節(jié)點(diǎn)通過(guò)節(jié)點(diǎn)ID對(duì)應(yīng)多條不重復(fù)的歷史活動(dòng)記錄,以備數(shù)據(jù)庫(kù)管理系統(tǒng)訪問(wèn)調(diào)取。
④節(jié)點(diǎn)類型記錄表,它用于保存不同類型節(jié)點(diǎn)的能力描述信息和指令集信息,包括節(jié)點(diǎn)類型和節(jié)點(diǎn)可執(zhí)行指令。該表單以節(jié)點(diǎn)類型為主鍵,每個(gè)節(jié)點(diǎn)類型對(duì)應(yīng)多條不重復(fù)的記錄,每條記錄對(duì)應(yīng)一條不同的可執(zhí)行指令,如照明類型節(jié)點(diǎn)需要有開關(guān)指令和亮度調(diào)節(jié)指令,空調(diào)設(shè)備需要有模式控制和溫度設(shè)定等指令。
在感知層和網(wǎng)絡(luò)層的信息及指令交互過(guò)程中,為了便于各個(gè)功能模塊對(duì)數(shù)據(jù)進(jìn)行處理以及轉(zhuǎn)發(fā)操作,系統(tǒng)內(nèi)部均采用了英語(yǔ)作為交互語(yǔ)言;而在通過(guò)Web頁(yè)面向用戶呈現(xiàn)節(jié)點(diǎn)狀態(tài)及接收用戶控制指令時(shí)又需要將上述信息進(jìn)行漢化,故設(shè)計(jì)了英漢互譯模塊。漢英互譯模塊包括一張用于英漢互譯的漢英字符串互譯對(duì)照表。該表單以英語(yǔ)字符串為主鍵,每條英語(yǔ)字符串對(duì)應(yīng)一條相應(yīng)語(yǔ)義的漢語(yǔ)字符串。
為了在應(yīng)用層向用戶提供更為直觀的數(shù)據(jù)服務(wù),需要將這些數(shù)據(jù)在Web頁(yè)面顯示時(shí)進(jìn)行漢化。
在網(wǎng)站程序開發(fā)過(guò)程中,涉及到網(wǎng)站對(duì)數(shù)據(jù)管理系統(tǒng)的數(shù)據(jù)訪問(wèn)。本系統(tǒng)中采用了基于ADO.NET的數(shù)據(jù)訪問(wèn)技術(shù),以實(shí)現(xiàn)數(shù)據(jù)管理系統(tǒng)與SQL Sever 2005數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)交互。基于ADO.NET的數(shù)據(jù)訪問(wèn)技術(shù)與ASP.NET同屬.NET應(yīng)用框架。ADO.NET可對(duì)可擴(kuò)展標(biāo)記語(yǔ)言(extensible markup language,XML)提供全面支持,并且提供全新的非連接數(shù)據(jù)緩沖模型。這使得其在構(gòu)建結(jié)構(gòu)松散的、非鏈接的Web應(yīng)用程序時(shí)有著得天獨(dú)厚的優(yōu)勢(shì)。ADO.NET包括兩個(gè)核心組件:NET框架下的數(shù)據(jù)提供程序(data provider)和數(shù)據(jù)集(dataset)。前者實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作以及快速只讀訪問(wèn),后者則是具體的數(shù)據(jù)庫(kù)容器。數(shù)據(jù)提供程序包括四個(gè)對(duì)象:即用于實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接的Connection對(duì)象、在數(shù)據(jù)源中執(zhí)行SQL命令的Command對(duì)象、通過(guò)Command對(duì)象實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)快速檢索的DataReader對(duì)象、使用Command對(duì)象將數(shù)據(jù)加載到DataSet中并確保DataSet中數(shù)據(jù)的更改與數(shù)據(jù)源保持一致的Data-Adapter對(duì)象。
數(shù)據(jù)庫(kù)的各類數(shù)據(jù)原語(yǔ)操作如下。
傳統(tǒng)的客戶端/服務(wù)器(client/server,C/S)結(jié)構(gòu)雖然具有運(yùn)行速度快、數(shù)據(jù)安全性高等優(yōu)點(diǎn),但其運(yùn)行還需要在用戶訪問(wèn)終端安裝額外的客戶端軟件??紤]到本系統(tǒng)需要支持手機(jī)對(duì)服務(wù)器的訪問(wèn),而手機(jī)設(shè)備往往由于自身資源有限而不足以支持客戶端的運(yùn)行,因此,本系統(tǒng)采用瀏覽器/服務(wù)器 (browser/sever,B/S)結(jié)構(gòu)進(jìn)行設(shè)計(jì)[8]。
與C/S結(jié)構(gòu)相比,B/S結(jié)構(gòu)最大的特點(diǎn)就是無(wú)需安裝客戶端,可以在用戶不安裝額外軟件的情況下提供服務(wù)。B/S結(jié)構(gòu)將應(yīng)用程序和數(shù)據(jù)全部集中安放在Web服務(wù)器上,用戶則統(tǒng)一使用Web瀏覽器來(lái)訪問(wèn)Web服務(wù)器,并運(yùn)行加載在其上的程序和數(shù)據(jù)[9]。因?yàn)橄到y(tǒng)的更新維護(hù)以及數(shù)據(jù)管理都在服務(wù)器上進(jìn)行,所以也可以很容易對(duì)其進(jìn)行功能擴(kuò)充。
Web服務(wù)器主要有 CGI、PHP、JSP 和 ASP.NET 四種開發(fā)技術(shù),本系統(tǒng)采用了基于ASP.NET的技術(shù)作為網(wǎng)站開發(fā)技術(shù)。ASP.NET以其獨(dú)特的緩存技術(shù),使得在處理用戶相同的Web訪問(wèn)請(qǐng)求時(shí)無(wú)需重新加載頁(yè)面[10]。因此,這種技術(shù)具有很高的頁(yè)面處理速度和運(yùn)行效率,特別適合應(yīng)用于服務(wù)器和用戶信息交互頻繁的智能家居系統(tǒng)。
針對(duì)管理員、普通用戶和來(lái)賓這三種不同的用戶類型,網(wǎng)站被設(shè)計(jì)成了與之對(duì)應(yīng)的三個(gè)模塊。整個(gè)網(wǎng)站的系統(tǒng)流程如圖3所示。
圖3 網(wǎng)站的系統(tǒng)流程圖Fig.3 Flowchart of the web site
隨著物聯(lián)網(wǎng)技術(shù)深刻而迅猛的發(fā)展,智能家居作為其中一塊應(yīng)用前景廣泛而且潛在市場(chǎng)巨大的應(yīng)用領(lǐng)域,其價(jià)值越來(lái)越引起各大廠商的關(guān)注。本文從智能家居系統(tǒng)的具體應(yīng)用需求出發(fā),針對(duì)用戶服務(wù)訪問(wèn)設(shè)備資源有限的特點(diǎn),設(shè)計(jì)了一個(gè)基于B/S架構(gòu)的物聯(lián)網(wǎng)智能家居系統(tǒng),提出了一種有效的智能家居系統(tǒng)實(shí)現(xiàn)方式。
[1]屈偉平.物聯(lián)網(wǎng)掀起新的信息技術(shù)革命浪潮[J].物流技術(shù)與應(yīng)用,2009(11):42 -45.
[2]朱仲英.傳感網(wǎng)與物聯(lián)網(wǎng)的進(jìn)展與趨勢(shì)[J].微型電腦應(yīng)用,2010(1):1 -3.
[3]花鐵森.智能家居系統(tǒng)核心技術(shù)探討[J].智能建筑電氣技術(shù),2009(2):92-98.
[4]喻楚云.Zigbee在家庭遠(yuǎn)程遙控管理系統(tǒng)中的應(yīng)用[J].大連民族學(xué)院學(xué)報(bào),2006(3):60 -61.
[5]顧牧君.智能家居設(shè)計(jì)與施工[M].上海:同濟(jì)大學(xué)出版社,2004:15 -31.
[6]凌志浩.ZigBee無(wú)線通信協(xié)議的技術(shù)支持及其應(yīng)用前景(上)[J].世界儀表與自動(dòng)化,2006,10(1):44 -47.
[7]王珊,薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2003:151 -199.
[8]黎卓虹.基于三層結(jié)構(gòu)數(shù)據(jù)可視化的開發(fā)及應(yīng)用[J].微計(jì)算機(jī)信息,2006(7x):31 -33.
[9]Khosravi S.ASP.NET 2.0服務(wù)器控件與組件開發(fā)高級(jí)編程[M].郝剛,田亮君,陳文,譯.北京:人民郵電出版社,2007:34 -67.
[10]李英俊,畢斐.ASP.NET動(dòng)態(tài)網(wǎng)站開發(fā)教程[M].北京:清華大學(xué)出版社,2006:82 -116.