陳玲君紹興職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院,浙江紹興312000
?
基于物聯(lián)網(wǎng)的遠(yuǎn)程控制智能家居系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
陳玲君
紹興職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院,浙江紹興312000
摘要:基于網(wǎng)絡(luò)技術(shù)的智能家居遠(yuǎn)程控制系統(tǒng)能夠滿足用戶實(shí)時(shí)了解家居狀況、遠(yuǎn)程控制家居設(shè)備的需求,是智能家居發(fā)展的重要方向。為此,設(shè)計(jì)了一種利用社交網(wǎng)絡(luò)開(kāi)放平臺(tái)作為網(wǎng)絡(luò)通信媒介的新型遠(yuǎn)程控制智能家居系統(tǒng),從而克服了傳統(tǒng)遠(yuǎn)程控制系統(tǒng)需要安裝家庭服務(wù)器,依賴固定IP地址的弊端,提高系統(tǒng)安全性。
關(guān)鍵詞:智能家居;遠(yuǎn)程控制;社交網(wǎng)絡(luò)
在無(wú)線通信技術(shù)和互聯(lián)網(wǎng)技術(shù)的高速發(fā)展不斷提升人們的生活質(zhì)量的同時(shí),人們對(duì)舒適便捷的家居生活的需求也越來(lái)越高,家庭自動(dòng)化、家庭信息化、智能家居等不斷智能化的設(shè)計(jì)思想在這種日益突出的需求下相繼被提出,實(shí)現(xiàn)家居環(huán)境的智能化、網(wǎng)絡(luò)化已成為當(dāng)今家居產(chǎn)業(yè)的主要研究目標(biāo)。智能家居是人類住宅即將經(jīng)歷的的一場(chǎng)富有意義的革命,它能夠?yàn)槿祟悗?lái)更加便捷、安全、高效的現(xiàn)代生活方式,是居住環(huán)境與現(xiàn)代科技融合后的的必然產(chǎn)物。所以,在新興的研究領(lǐng)域中智能家居系統(tǒng)也逐漸重要[1]。
1.1Android平臺(tái)下的應(yīng)用程序設(shè)計(jì)
Android體系采用的是分層的軟件層次架構(gòu),它主要由5個(gè)部分組成,分別是:Linux內(nèi)核、Dalvik虛擬機(jī)、各種本地運(yùn)行庫(kù)、應(yīng)用程序框架和上層應(yīng)用程序。本文以Windows系統(tǒng)為開(kāi)發(fā)Android的系統(tǒng)平臺(tái),采用第一種開(kāi)發(fā)方式,即基于Android SDK的應(yīng)用程序開(kāi)發(fā)方式,并使用比較流行的IDE開(kāi)發(fā)工具Eclipse。Android SDK安裝具體步驟為:從Android開(kāi)發(fā)者官方網(wǎng)站下載安卓SDK壓縮文件,文件下載完成后解壓到需要保存的工作路徑。運(yùn)行SDK文件中的Setup.exe可執(zhí)行文件,點(diǎn)擊Available Packages按鈕選擇要安裝的版本包。然后選擇希望安裝的SDK及其文檔或者其它包,按照安裝向?qū)崾疽来吸c(diǎn)擊相應(yīng)按鈕開(kāi)始下載安裝,不需要過(guò)多版本的話可以只選擇需要的版本進(jìn)行安裝,之后如果再需要其他版本時(shí)再下載,這是因?yàn)樵撨^(guò)程比較耗時(shí)。做完以上工作后,最后需要設(shè)置環(huán)境變量,在PATH變量中添加解壓后Android開(kāi)發(fā)包中的tools文件夾的絕對(duì)路徑[2]。
1.2微博開(kāi)放平臺(tái)
使用新浪微博開(kāi)放平臺(tái)進(jìn)行應(yīng)用開(kāi)發(fā),需要進(jìn)過(guò)以下的的幾個(gè)步驟:首先注冊(cè)微博賬號(hào),成為開(kāi)發(fā)者。微博提供不同的應(yīng)用類型,包括移動(dòng)應(yīng)用、站內(nèi)應(yīng)用、網(wǎng)頁(yè)應(yīng)用等,可以根據(jù)需要選擇應(yīng)用類型,本設(shè)計(jì)主要用到移動(dòng)應(yīng)用。
在認(rèn)證和授權(quán)的過(guò)程中涉及的三方包括:1、服務(wù)提供方,用戶將需要存儲(chǔ)在網(wǎng)絡(luò)上的資源如圖片,視頻,通信錄等存放在服務(wù)提供方處,服務(wù)提供方負(fù)責(zé)資源保存與保護(hù)以及其他服務(wù);2、用戶,第三方應(yīng)用的使用者、所訪問(wèn)的資源的擁有者和服務(wù)提供方提供服務(wù)的對(duì)象;3、客戶端,需要訪問(wèn)服務(wù)提供方資源的第三網(wǎng)站方或應(yīng)用[3]。
微博開(kāi)放平臺(tái)提供了諸多接口供開(kāi)發(fā)者使用,文檔詳細(xì)描述了接口的功能、調(diào)用地址等。微博接口規(guī)定每個(gè)用戶每個(gè)小時(shí)以內(nèi)只能請(qǐng)求一定的次數(shù),用戶維度限制如表1。
表1 接口請(qǐng)求限制Table 1 Limitation for the interface request
2.1系統(tǒng)功能概述
利用Android手機(jī)、新浪網(wǎng)絡(luò)開(kāi)放平臺(tái)、ZigBee無(wú)線模塊設(shè)計(jì)了一種智能家居遠(yuǎn)程控制系統(tǒng),能讓用戶通過(guò)手機(jī)對(duì)設(shè)備進(jìn)行監(jiān)控、查詢傳感器數(shù)據(jù)等,并能利用社交網(wǎng)絡(luò)的優(yōu)越性,分享家居體驗(yàn)。系統(tǒng)包括ZigBee設(shè)備無(wú)線網(wǎng)絡(luò)、家庭網(wǎng)關(guān)與遠(yuǎn)程控制端三個(gè)部分。本設(shè)計(jì)在臺(tái)式計(jì)算機(jī)平臺(tái)上實(shí)現(xiàn)網(wǎng)關(guān)應(yīng)用的設(shè)計(jì),接收Z(yǔ)igBee網(wǎng)絡(luò)傳遞的數(shù)據(jù)進(jìn)行處理、存儲(chǔ)和設(shè)備控制,網(wǎng)關(guān)應(yīng)用使用java語(yǔ)言編寫(xiě),便于跨平臺(tái)使用。遠(yuǎn)程控制端采用Android平臺(tái)手機(jī),為用戶提供可視化操作界面。
2.2ZigBee內(nèi)部網(wǎng)設(shè)計(jì)
本設(shè)計(jì)使用六個(gè)ZigBee節(jié)點(diǎn)。由于節(jié)點(diǎn)本身的組網(wǎng)限制,本設(shè)計(jì)使用樹(shù)狀拓?fù)浣Y(jié)構(gòu)進(jìn)行組網(wǎng),一個(gè)節(jié)點(diǎn)用作協(xié)調(diào)器節(jié)點(diǎn),并負(fù)責(zé)與網(wǎng)關(guān)通過(guò)串口進(jìn)行通信;兩個(gè)節(jié)點(diǎn)用作路由節(jié)點(diǎn),用于模擬兩個(gè)房間的路由控制;其余三個(gè)節(jié)點(diǎn)分別接入兩個(gè)路由節(jié)點(diǎn),模擬位于不相同房間中的設(shè)備。
2.2.1協(xié)調(diào)器節(jié)點(diǎn)功能及軟件設(shè)計(jì)協(xié)調(diào)器節(jié)點(diǎn)通過(guò)九針串口線與家庭網(wǎng)關(guān)連接。在ZigBee內(nèi)部網(wǎng)中,協(xié)調(diào)器節(jié)點(diǎn)主要負(fù)責(zé)實(shí)現(xiàn)建立網(wǎng)絡(luò)、允許其他節(jié)點(diǎn)加入網(wǎng)絡(luò)、轉(zhuǎn)發(fā)信息等網(wǎng)絡(luò)功能,在本設(shè)計(jì)中協(xié)調(diào)器節(jié)點(diǎn)還負(fù)責(zé)實(shí)現(xiàn)與網(wǎng)關(guān)之間的通信,主要功能有:(1)新節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),獲取設(shè)備地址、設(shè)備Profile等節(jié)點(diǎn)設(shè)備信息,并將這些信息發(fā)送到網(wǎng)關(guān);(2)接收來(lái)自網(wǎng)關(guān)的設(shè)備控制命令并解析命令,得到要操作的設(shè)備地址,向相應(yīng)設(shè)備發(fā)送控制命令;(3)接收設(shè)備節(jié)點(diǎn)返回的控制結(jié)果,并轉(zhuǎn)發(fā)給網(wǎng)關(guān);(4)接收路由節(jié)點(diǎn)發(fā)送的房間環(huán)境信息,并轉(zhuǎn)發(fā)給網(wǎng)關(guān)。其應(yīng)用程序流程圖如圖1所示。
圖1 協(xié)調(diào)器節(jié)點(diǎn)應(yīng)用流程圖Fig.1 Application process of coordinator node
圖2 路由節(jié)點(diǎn)應(yīng)用流程圖Fig.2 Application process of router node
2.2.2路由器節(jié)點(diǎn)功能及軟件設(shè)計(jì)路由節(jié)點(diǎn)主要提供內(nèi)部網(wǎng)中消息的路由功能,以及允許節(jié)點(diǎn)加入網(wǎng)絡(luò)并為其分配地址。在本設(shè)計(jì)中,路由節(jié)點(diǎn)實(shí)現(xiàn)的應(yīng)用功能有:(1)負(fù)責(zé)一個(gè)房間子網(wǎng)的劃分,一個(gè)路由節(jié)點(diǎn)負(fù)責(zé)一個(gè)房間子網(wǎng)中設(shè)備與協(xié)調(diào)器節(jié)點(diǎn)的通信連接;(2)路由節(jié)點(diǎn)負(fù)責(zé)房間環(huán)境信息的周期性采集,并將采集到的數(shù)據(jù)發(fā)送給協(xié)調(diào)器節(jié)點(diǎn),路由節(jié)點(diǎn)的應(yīng)用程序流程圖如圖2所示。
2.2.3設(shè)備節(jié)點(diǎn)功能及軟件設(shè)計(jì)設(shè)備節(jié)點(diǎn)主要負(fù)責(zé)網(wǎng)絡(luò)搜索與加入、發(fā)送和接收數(shù)據(jù)等功能。在本設(shè)計(jì)中,設(shè)備節(jié)點(diǎn)實(shí)現(xiàn)的應(yīng)用功能有:(1)設(shè)備節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),主動(dòng)向協(xié)調(diào)器節(jié)點(diǎn)發(fā)送設(shè)備地址、設(shè)備Profile等節(jié)點(diǎn)設(shè)備信息;(2)接收控制信息,執(zhí)行控制操作,并返回操作結(jié)果給協(xié)調(diào)器節(jié)點(diǎn)。設(shè)備節(jié)點(diǎn)的應(yīng)用程序流程圖如圖3所示。
圖3 設(shè)備節(jié)點(diǎn)應(yīng)用流程圖Fig.3 Application process of equipment node
圖4 網(wǎng)關(guān)應(yīng)用模塊圖Fig.4 Application module of gateway
家庭網(wǎng)關(guān)主要功能包括通過(guò)Internet與外部網(wǎng)絡(luò)通信、內(nèi)部網(wǎng)絡(luò)信息存儲(chǔ)和通過(guò)串口與ZigBee內(nèi)部網(wǎng)通信三個(gè)部分。硬件平臺(tái)主要采用臺(tái)式PC,以后可以考慮采用嵌入式設(shè)備,與外部網(wǎng)絡(luò)連接采用有線方式,通過(guò)九針串口線與ZigBee網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)連接。為便于軟件在不同平臺(tái)間的移植,網(wǎng)關(guān)軟件的開(kāi)發(fā)采用Java語(yǔ)言,開(kāi)發(fā)環(huán)境為Eclipse[4]。
根據(jù)家庭網(wǎng)關(guān)功能劃分,網(wǎng)關(guān)軟件設(shè)計(jì)為主要包括四個(gè)模塊:外部網(wǎng)通信模塊、內(nèi)部網(wǎng)通信模塊、數(shù)據(jù)庫(kù)和UI界面。系統(tǒng)結(jié)構(gòu)框圖如圖4所示。
3.1ZigBee內(nèi)部網(wǎng)設(shè)計(jì)
通信模塊主要包括外部網(wǎng)通信模塊與內(nèi)部網(wǎng)通信模塊。
(1)外部網(wǎng)通信模塊啟用兩個(gè)線程實(shí)現(xiàn),一個(gè)實(shí)現(xiàn)Runnable接口的類WeiboCheckRunnable獲取微博消息,篩選命令消息,更新命令;另一個(gè)實(shí)現(xiàn)Runnable接口的類WeiboSendRunnable接收更新命令,判斷命令類型并執(zhí)行相應(yīng)操作,返回結(jié)果到遠(yuǎn)程控制端[5]。實(shí)現(xiàn)類流程圖如圖5。
圖5 Weibo Check Runnable類處理流程Fig.5 The process of Weibo Check Runnable
圖6 內(nèi)部網(wǎng)通信模塊處理流程Fig.6 The process of internal network communication module
(2)內(nèi)部網(wǎng)通信模塊采用javax.comm包實(shí)現(xiàn)異步串口通信,使用Java串口包API進(jìn)行串口操作的基本步驟如下:(a)列舉出本機(jī)所有可用串口CommPortIdentifier,選擇需要的端口;(b)對(duì)串口參數(shù)進(jìn)行配置,包括數(shù)據(jù)位數(shù),輸入/輸出流控制,波特率,停止位和齊偶校驗(yàn);(c)打開(kāi)串口獲取輸入輸出流,監(jiān)聽(tīng)串口事件,對(duì)串口進(jìn)行讀寫(xiě)[6]。
本設(shè)計(jì)對(duì)串口操作進(jìn)行封裝得到SerialUtil類,本模塊對(duì)串口的操作主要通過(guò)SerialUtil類實(shí)現(xiàn)。本模塊采用觀察者模式接收來(lái)自外網(wǎng)通信模塊的控制命令,在命令執(zhí)行后更新控制結(jié)果返回命令,同時(shí)進(jìn)行了操作權(quán)限檢查與操作記錄,具體流程圖如圖6所示。
3.2用戶界面設(shè)計(jì)
用戶界面使用Java用戶界面開(kāi)發(fā)工具包Swing。開(kāi)發(fā)人員可以利用Swing各種的功能強(qiáng)大的模塊化組件來(lái)創(chuàng)建優(yōu)美的用戶界面。用戶界面提供的主要交互功能有房間與設(shè)備列表顯示、微博登錄認(rèn)證、設(shè)備信息設(shè)置、訪問(wèn)用戶權(quán)限管理、交互記錄查詢等。
移動(dòng)客戶端軟件采用Android平臺(tái)2.3版SDK,應(yīng)用主要包括交互界面、微博交互模塊和數(shù)據(jù)存儲(chǔ)操作三個(gè)部分,使用BroadcastRecieverz組件進(jìn)行模塊線程之間的通信[7]。
用戶界面主要使用AndroidListview組件進(jìn)行界面設(shè)計(jì),Listview是Android中最常用的UI組件之一,能夠清晰地展示列表數(shù)據(jù),界面簡(jiǎn)潔,操作簡(jiǎn)單。本應(yīng)用主要設(shè)計(jì)房間列表、設(shè)備列表、操作列表等數(shù)據(jù),因而選擇Listview組件。使用ListView組件關(guān)鍵在于Android提供的適配器類Adapter。
客戶端微博交互模塊主要由發(fā)送線程與監(jiān)聽(tīng)線程構(gòu)成,應(yīng)用可以啟動(dòng)多個(gè)發(fā)送線程,監(jiān)聽(tīng)線程只有一個(gè),當(dāng)用戶操作發(fā)送命令時(shí),啟動(dòng)發(fā)送線程,發(fā)送命令消息,同時(shí)向監(jiān)聽(tīng)線程注冊(cè)對(duì)應(yīng)的微博ID進(jìn)行監(jiān)聽(tīng);當(dāng)監(jiān)聽(tīng)線程獲得返回結(jié)果后,發(fā)送廣播通知;BroadcastReciever接受廣播更新界面。
數(shù)據(jù)的存儲(chǔ)可以選擇SQlite和SharedPreferences,由于應(yīng)用中使用到的數(shù)據(jù)較少,實(shí)現(xiàn)中選擇使用SharedPreferences。實(shí)現(xiàn)SharedPreferences存儲(chǔ)的步驟如下:1、根據(jù)Context獲取
SharedPreferences對(duì)象;2、利用edit()方法獲取Editor對(duì)象;3、通過(guò)Editor對(duì)象存儲(chǔ)key-value鍵值對(duì)數(shù)據(jù);4、通過(guò)commit()方法提交數(shù)據(jù)[8]。
調(diào)試的主要目的是測(cè)試整個(gè)系統(tǒng)的功能,比如家庭網(wǎng)絡(luò)中的節(jié)點(diǎn)之間的通信功能、各個(gè)節(jié)點(diǎn)的功能、通過(guò)短信和Web瀏覽器對(duì)家庭網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備進(jìn)行監(jiān)控的功能。
內(nèi)網(wǎng)組網(wǎng)與網(wǎng)關(guān)調(diào)試調(diào)試的主要任務(wù)是測(cè)試家庭網(wǎng)絡(luò)中的節(jié)點(diǎn)之間的通信功能是否通暢、各個(gè)節(jié)點(diǎn)的功能是否完整、網(wǎng)關(guān)各項(xiàng)功能是否正常。具體調(diào)試步驟如下:(1)使用九針串口線連接協(xié)調(diào)器節(jié)點(diǎn)與網(wǎng)關(guān)計(jì)算機(jī),協(xié)調(diào)器節(jié)點(diǎn)上電,開(kāi)啟網(wǎng)絡(luò),開(kāi)啟路由節(jié)點(diǎn)加入網(wǎng)絡(luò);(2)打開(kāi)網(wǎng)關(guān)軟件,開(kāi)啟數(shù)據(jù)庫(kù)服務(wù),開(kāi)啟設(shè)備節(jié)點(diǎn)通過(guò)路由節(jié)點(diǎn)加入網(wǎng)絡(luò);(3)驗(yàn)證新節(jié)點(diǎn)入網(wǎng)時(shí),網(wǎng)關(guān)軟件對(duì)內(nèi)網(wǎng)節(jié)點(diǎn)信息管理功能正常,能夠得到正確的節(jié)點(diǎn)信息并進(jìn)行存儲(chǔ);(4)等待定時(shí)環(huán)境信息檢測(cè),網(wǎng)關(guān)軟件能正常顯示各房間溫濕度信息;(5)對(duì)已加入網(wǎng)節(jié)點(diǎn)進(jìn)行本地控制操作,驗(yàn)證各節(jié)點(diǎn)功能完整,工作正常。
遠(yuǎn)程控制功能調(diào)試主要測(cè)試客戶端通過(guò)開(kāi)放平臺(tái)控制設(shè)備的功能能否實(shí)現(xiàn),因?yàn)榫W(wǎng)關(guān)部分遠(yuǎn)程控制與本地控制使用同一模塊,控制部分功能在上一步已經(jīng)驗(yàn)證。本步調(diào)試主要驗(yàn)證網(wǎng)關(guān)與客戶端通信是否正常、命令解析功能是否正常、用戶權(quán)限管理功能是否生效。具體調(diào)試步驟如下:(1)網(wǎng)關(guān)軟件登陸微博,設(shè)置用戶權(quán)限;(2)打開(kāi)移動(dòng)客戶端應(yīng)用,登錄認(rèn)證,測(cè)試各項(xiàng)功能包括獲取房間、設(shè)備、操作列表,操作設(shè)備,獲取房間環(huán)境信息;(3)修改用戶權(quán)限,驗(yàn)證權(quán)限限制功能是否正常[9]。
本文設(shè)計(jì)了一種利用社交網(wǎng)絡(luò)作為網(wǎng)絡(luò)通信媒介的新型遠(yuǎn)程控制的智能家居系統(tǒng)。本設(shè)計(jì)利用社交網(wǎng)絡(luò)公共開(kāi)放平臺(tái)作為交互媒介,解決了傳統(tǒng)遠(yuǎn)程控制系統(tǒng)需要架設(shè)家庭服務(wù)器,依賴固定IP地址的弊端,不再使用家庭端服務(wù)器也使得系統(tǒng)安全性有所提高,此外家庭網(wǎng)關(guān)應(yīng)用能夠適應(yīng)內(nèi)網(wǎng)拓?fù)浣Y(jié)構(gòu)的變化,保存網(wǎng)絡(luò)節(jié)點(diǎn)信息,在網(wǎng)絡(luò)結(jié)構(gòu)變化時(shí)及時(shí)調(diào)整,提高了系統(tǒng)的靈活性。
參考文獻(xiàn)
[1]鄭嫻,姚銘.智能家庭網(wǎng)絡(luò)的研究現(xiàn)狀與發(fā)展趨勢(shì)[J].住宅科技,2006(8):109-112
[2]薛震南.基于物聯(lián)網(wǎng)的智能家居研究[D].南京:南京大學(xué),2013
[3]胡向東,韓愷敏,許宏如.智能家居物聯(lián)網(wǎng)的安全性設(shè)計(jì)與驗(yàn)證[J].重慶郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2014,26(2):171-176
[4]王麗俠,張湃.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)的研發(fā)[J].電氣應(yīng)用,2015,34(14):26-30
[5]胡柯,郭壯輝,汪鐳.無(wú)線通信技術(shù)ZigBee研究[J].電腦知識(shí)與技術(shù),2008(6):1049-1051
[6]邵葉紅,張學(xué)敏.基于ZigBee技術(shù)的無(wú)線點(diǎn)菜系統(tǒng)[J].電子技術(shù),2010(10):68-70
[7]宋小倩,周東升.基于Android平臺(tái)的應(yīng)用開(kāi)發(fā)研究[J].軟件導(dǎo)刊,2011,10(2):104-106
[8]無(wú)線龍. ZigBee無(wú)線網(wǎng)絡(luò)原理[M].北京:冶金工業(yè)出版社,2011
[9]范懷宇.Android開(kāi)發(fā)精要[M].北京:機(jī)械工業(yè)出版社,2012
Design and Implementation of Remote Control Intelligent Home System Based on Internet of Things
CHEN Ling-jun
Department of Mechanical&Engineering/Shaoxing Vocational&Technical College, Shaoxing 312000,China
Abstract:At present,the smart home remote control system using network technology meets the people to understand the needs of home,remote control of household equipment,it is an important part of smart home. Therefore,the new-style remote control intelligent home system based on social network open platform was designed to overcome a disadvantage that a traditional remote control system need set up home server and rely on the fixed IPaddress. The security of the system was improved.
Keywords:Smart home;remote control;social network site
作者簡(jiǎn)介:陳玲君(1983-),女,碩士,講師.主要研究方向?yàn)橹悄芗揖涌刂? E-mail:chenlingjun@sxvtc.com
基金項(xiàng)目:浙江省教育廳科研項(xiàng)目:基于無(wú)線傳感網(wǎng)的智能教室遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)(Y201534905);2015紹興職業(yè)技術(shù)學(xué)院校級(jí)科研項(xiàng)目:基于Arduino的智能環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)(201525)
收稿日期:2015-05-12修回日期: 2015-08-06
中圖法分類號(hào):TN915.5
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1000-2324(2016)01-0088-04