新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux平臺(tái)智能家居的本地監(jiān)控與遠(yuǎn)程監(jiān)控

Linux平臺(tái)智能家居的本地監(jiān)控與遠(yuǎn)程監(jiān)控

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

摘要:針對(duì)智能家居的應(yīng)用需求和特點(diǎn),對(duì)智能家居系統(tǒng)進(jìn)行分析和研究,提出了一種智能家居系統(tǒng)的整體設(shè)計(jì)方案。以Cortex—A8為核心處理器,Linux為智能家居控制系統(tǒng),利用提供的各種資源建立智能家居遠(yuǎn)程控制軟件,實(shí)現(xiàn)了家用電器的遠(yuǎn)程監(jiān)控和本地監(jiān)控相結(jié)合。
關(guān)鍵詞:;;

引言
隨著社會(huì)電子信息化的不斷發(fā)展,人們?cè)诩揖又惺褂玫碾娖饕苍絹?lái)越多,由此帶來(lái)的安全隱患也有了明顯的增多。在這些電器中,一旦出現(xiàn)一些異常,便會(huì)給人們帶來(lái)很大的損失。為了降低電器的不合理使用帶來(lái)的異常情況,就要求在異常發(fā)生時(shí)用戶(hù)能及時(shí)得到信息,并通過(guò)實(shí)時(shí)監(jiān)控,采取一定的操作排除異常。因此,智能家居系統(tǒng)的作用是非常巨大的。
在智能家居控制系統(tǒng)中,核心設(shè)備是家居智能控制終端。綜合目前的研究現(xiàn)狀,主要有以下幾種方案:第一種是采用鍵盤(pán)、紅外遙控器、觸摸屏和LCD顯示器等設(shè)備對(duì)家電進(jìn)行控制。當(dāng)前智能家居控制系統(tǒng)大都采用此種控制終端,使用此種方式需要分別對(duì)控制終端的軟件與硬件進(jìn)行設(shè)計(jì),設(shè)計(jì)復(fù)雜,成本高。此外,使用此種控制終端只能進(jìn)行本地控制,不能實(shí)現(xiàn)遠(yuǎn)程控制。第二種是采用家庭或者辦公電腦作為智能家居控制系統(tǒng)的控制終端。使用這種控制方式的缺點(diǎn)是,只能用固定點(diǎn)對(duì)家居進(jìn)行控制,控制終端不能移動(dòng),不夠方便。第三種是采用手機(jī)作為控制終端,使用手機(jī)通過(guò)無(wú)線網(wǎng)絡(luò)(WiFi、藍(lán)牙、GSM等)對(duì)家居系統(tǒng)進(jìn)行控制,可以真正做到方便、快捷、觸手可及。但目前采用這種方式的智能家居系統(tǒng)還不是很多,而且大部分操作繁瑣,沒(méi)有良好的用戶(hù)體驗(yàn)。
本文解決了嵌入式智能家居系統(tǒng)、ZigBee無(wú)線通信、家居控制協(xié)議等相關(guān)技術(shù)難點(diǎn),分析了各自的基本特點(diǎn)和所要實(shí)現(xiàn)的基本功能,并在此基礎(chǔ)上提出了基于Linux平臺(tái)的嵌入式智能家居系統(tǒng)的整體設(shè)計(jì)方案。

1 系統(tǒng)整體結(jié)構(gòu)概述
根據(jù)全面感知、可靠傳遞和智能處理的功能需求,可將智能家居系統(tǒng)劃分為感知層(家電信息采集終端)、網(wǎng)絡(luò)層(家庭網(wǎng)關(guān))和應(yīng)用層(包括PC機(jī)網(wǎng)頁(yè)和手機(jī)客戶(hù)端)3個(gè)部分,其整體框架結(jié)構(gòu)如圖1所示。

本文引用地址:http://www.2s4d.com/article/201610/305964.htm

c.JPG


其中,感知層的核心功能是實(shí)現(xiàn)數(shù)據(jù)的采集,主要通過(guò)各類(lèi)傳感器來(lái)完成數(shù)據(jù)的獲取,最終將獲取到的數(shù)據(jù)通過(guò)無(wú)線網(wǎng)絡(luò)打包發(fā)送到網(wǎng)絡(luò)層的家庭網(wǎng)關(guān)中。網(wǎng)絡(luò)層需要實(shí)現(xiàn)一個(gè)基于嵌入式Web服務(wù)器的家庭網(wǎng)關(guān),一方面,用來(lái)作為連接家庭內(nèi)網(wǎng)與Internet外網(wǎng)的接口,實(shí)現(xiàn)家庭內(nèi)網(wǎng)和Internet的數(shù)據(jù)通信功能;另一方面,用來(lái)統(tǒng)籌來(lái)自感知層的數(shù)據(jù)和來(lái)自應(yīng)用層的命令。應(yīng)用層則需要實(shí)現(xiàn)一個(gè)網(wǎng)頁(yè)客戶(hù)端和手機(jī)客戶(hù)端界面,一方面用來(lái)加工處理來(lái)自服務(wù)器端的數(shù)據(jù);另一方面,用來(lái)實(shí)現(xiàn)人機(jī)交互,通過(guò)客戶(hù)端界面向服務(wù)器端發(fā)送控制命令。
1.1 硬件構(gòu)成
智能家居系統(tǒng)的硬件系統(tǒng)主要包括S5PC100平臺(tái)(以下簡(jiǎn)稱(chēng)A8)、11C14平臺(tái)(以下簡(jiǎn)稱(chēng)M0)和ZigBee模塊3個(gè)部分。其中,S5PC100開(kāi)發(fā)平臺(tái)是基于三星公司Cortex—A8內(nèi)核的S5PC100處理器設(shè)計(jì)而成的,支持多種格式的硬件編解碼,如:MPEG-1/2/4、H.263/H.264等,該平臺(tái)主要通過(guò)開(kāi)發(fā)的系統(tǒng)軟件實(shí)現(xiàn)對(duì)M0平臺(tái)的控制。11C14平臺(tái)基于LPC11C14微控制器(ARM Cortex—M0內(nèi)核),具有低功耗、低成本等優(yōu)點(diǎn)。同時(shí),該平臺(tái)具有豐富的硬件資源,集成了傳感器模塊(包括三軸加速度傳感器、光敏傳感器、溫度傳感器、濕度傳感器等)、RFID設(shè)備模塊、ZigBee無(wú)線通信模塊和OLED顯示模塊等。該平臺(tái)主要用于模擬家庭中的信息采集和執(zhí)行單元。ZigBee模塊采用的是CEL公司的ZICM2410,帶有USB轉(zhuǎn)串口芯片,可以方便地連接PC機(jī)或其他帶有USB主機(jī)接口的設(shè)備,實(shí)現(xiàn)組網(wǎng)通信。
1.2 軟件環(huán)境
(1)U—Boot移植
U—Boot的功能是把內(nèi)核放到DRAM(Dynamic Random Access Memory)中運(yùn)行。網(wǎng)上下載的U—Boot對(duì)開(kāi)發(fā)平臺(tái)只有通用性代碼,不支持和識(shí)別特定開(kāi)發(fā)平臺(tái)上的一些硬件和功能。因此,需要添加對(duì)這些硬件的識(shí)別、初始化及其相應(yīng)功能的實(shí)現(xiàn)。
U—Boot的移植過(guò)程可以分為兩個(gè)階段,其中,第一階段主要完成基本的硬件設(shè)備初始化,準(zhǔn)備RAM(Randtom Access Memory,隨機(jī)存儲(chǔ)器)空間加載第二階段代碼,復(fù)制第二階段代碼到RAM中,設(shè)置堆棧指針SP,跳轉(zhuǎn)到第二階段代碼的C入口點(diǎn);第二階段主要完成匯編語(yǔ)言跳轉(zhuǎn)到main()入口函數(shù),初始化本階段將要使用的硬件設(shè)備,檢測(cè)系統(tǒng)的內(nèi)存映射,加載內(nèi)核映像文件和根文件系統(tǒng)映像文件,設(shè)置內(nèi)核啟動(dòng)參數(shù)和調(diào)用內(nèi)核。
(2)Linux內(nèi)核移植
Linux內(nèi)核是一種源碼開(kāi)放的操作系統(tǒng),采用模塊化的設(shè)計(jì)。在此只保留了必需的功能模塊,刪除了冗余的功能模塊,并對(duì)內(nèi)核重新編譯,從而使系統(tǒng)運(yùn)行所需的硬件資源顯著減少。本設(shè)計(jì)中內(nèi)核的移植主要包括:網(wǎng)卡驅(qū)動(dòng)的添加、NAND Flash驅(qū)動(dòng)的添加、添加對(duì)YAFFS2文件系統(tǒng)的支持、添加USB設(shè)備驅(qū)動(dòng)、添加LCD設(shè)備驅(qū)動(dòng)、添加SD卡設(shè)備驅(qū)動(dòng)。
(3)根文件系統(tǒng)制作
如果沒(méi)有根文件系統(tǒng),其他的文件系統(tǒng)就不能進(jìn)行加載。根文件系統(tǒng)包括Linux啟動(dòng)時(shí)所必須的目錄和關(guān)鍵性文件,以及使其他文件系統(tǒng)得以掛載的必要文件。制作根文件系統(tǒng)主要包括:添加內(nèi)核菜單選項(xiàng)、建立目錄結(jié)構(gòu)、添加命令程序、拷貝C庫(kù)、編寫(xiě)系統(tǒng)啟動(dòng)文件、配置主機(jī)的NFS。

2 系統(tǒng)功能模塊設(shè)計(jì)
本系統(tǒng)是在A8、M0及PC等設(shè)備的基礎(chǔ)上,基于互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、傳感器等技術(shù)并結(jié)合物聯(lián)網(wǎng)新型概念設(shè)計(jì)的,使用戶(hù)能夠?qū)彝?nèi)部情況進(jìn)行實(shí)時(shí)地掌握和控制。本系統(tǒng)主要由前端數(shù)據(jù)中心(A8)、遠(yuǎn)程監(jiān)控終端(M0)和服務(wù)器端(PC)組成。
首先,數(shù)據(jù)接收模塊接收M0通過(guò)ZigBee傳輸上來(lái)的實(shí)時(shí)環(huán)境參數(shù)(如溫度、濕度、光感數(shù)據(jù)等),并通過(guò)接收端的ZigBee經(jīng)USB轉(zhuǎn)串口操作,把采集到的環(huán)境參數(shù)發(fā)送給A8,由M0的接收請(qǐng)求線程從串口讀取消息,并交給數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊解碼接收到信息后,激活數(shù)據(jù)庫(kù)線程以保存數(shù)據(jù),激活內(nèi)存數(shù)據(jù)刷新線程以更新實(shí)時(shí)環(huán)境信息,并對(duì)環(huán)境參數(shù)進(jìn)行判斷處理,決定是否進(jìn)行報(bào)警。另外,在構(gòu)建的嵌入式Web服務(wù)器上,用戶(hù)可以通過(guò)網(wǎng)絡(luò),利用PC機(jī)對(duì)家居信息進(jìn)行監(jiān)控;通過(guò)Web頁(yè)面上的控制按鈕,監(jiān)控設(shè)備可以識(shí)別出用戶(hù)指令并進(jìn)行相應(yīng)的動(dòng)作。系統(tǒng)各模塊進(jìn)程間關(guān)系如圖2所示。

d.JPG



3 關(guān)鍵算法設(shè)計(jì)
3.1 視頻流服務(wù)器設(shè)計(jì)
該服務(wù)器主要用于將攝像頭采集的視頻或者圖片顯示到網(wǎng)頁(yè)和LCD(Liquid Crystal Display,液晶顯示器)上,這里采用MJPG—stream er作為視頻流服務(wù)器。MIPG—streamer采用的是V4L2(Video 4 Linux 2)接口,可以通過(guò)文件或者是HTTP的方式訪問(wèn)Linux UVC兼容攝像頭。視頻流服務(wù)器將攝像頭捕獲的圖像存入global buffer緩沖區(qū),當(dāng)客戶(hù)端有訪問(wèn)請(qǐng)求時(shí),服務(wù)器便將global buffer緩沖區(qū)中的圖像數(shù)據(jù)連續(xù)地發(fā)送給客戶(hù)端。該程序中的server_pthread函數(shù)使用多線程技術(shù),為每一個(gè)連接請(qǐng)求的客戶(hù)端創(chuàng)建一個(gè)線程。該線程獨(dú)立地與客戶(hù)端進(jìn)行通信,發(fā)送圖像數(shù)據(jù)。
此外,MJPG—steamer還用來(lái)從網(wǎng)絡(luò)攝像頭采集圖像,并將它們以流的形式通過(guò)基于IP的網(wǎng)絡(luò)傳輸?shù)綖g覽器的網(wǎng)頁(yè)上。由于MJPG—steam er可以通過(guò)利用網(wǎng)絡(luò)攝像機(jī)的硬件壓縮功能來(lái)降低服務(wù)器CPU的開(kāi)銷(xiāo),而無(wú)需為視頻幀壓縮浪費(fèi)大量的資源,因此它為嵌入式設(shè)備和一些常規(guī)服務(wù)器提供了一個(gè)輕量級(jí)且較少CPU消耗的方案。MJPG—steamer功能強(qiáng)大,但為了符合本項(xiàng)目的需要,仍需對(duì)其進(jìn)行修改,添加我們想要實(shí)現(xiàn)的功能。在本設(shè)計(jì)中,需要向MJPG—steamer視頻流服務(wù)器的添加LCD輸出插件,其代碼如下:
e.JPG
f.JPG
3.2 家電物聯(lián)網(wǎng)服務(wù)器設(shè)計(jì)
該服務(wù)器主要負(fù)責(zé)為網(wǎng)頁(yè)提供家電的實(shí)時(shí)狀態(tài)信息,同時(shí)也為手機(jī)客戶(hù)端提供服務(wù),讓Android手機(jī)客戶(hù)端具有實(shí)時(shí)顯示和遠(yuǎn)程控制家電的能力,其關(guān)系如圖3所示。

g.JPG


在網(wǎng)頁(yè)上顯示信息主要是通過(guò).xml文件實(shí)現(xiàn)的。首先,網(wǎng)頁(yè)通過(guò)BOA服務(wù)器,調(diào)用CGI(Common Gateway Interface,通用網(wǎng)關(guān)接口)程序控制網(wǎng)頁(yè)線程,并發(fā)送命令給單板。然后,單板將采集到的數(shù)據(jù)發(fā)送給家電物聯(lián)網(wǎng)服務(wù)器,服務(wù)器通過(guò)向.xml文件中寫(xiě)入采集到的數(shù)據(jù),實(shí)現(xiàn)網(wǎng)頁(yè)的實(shí)時(shí)信息動(dòng)態(tài)顯示。當(dāng)網(wǎng)頁(yè)客戶(hù)端在瀏覽器中發(fā)送請(qǐng)求(如設(shè)置報(bào)警溫度等)時(shí),BOA服務(wù)器會(huì)調(diào)用CGI接口解碼,區(qū)分提交過(guò)來(lái)的信息,然后把這個(gè)信息發(fā)送到單板,實(shí)現(xiàn)對(duì)單板的控制。Android手機(jī)客戶(hù)端與家電物聯(lián)網(wǎng)服務(wù)器的通信則主要是通過(guò)套接字進(jìn)行的。
3.3 Android客戶(hù)端軟件設(shè)計(jì)
Android是一個(gè)專(zhuān)門(mén)為移動(dòng)電話而設(shè)計(jì)的開(kāi)放源碼的操作系統(tǒng),它將開(kāi)辟新的應(yīng)用,使家居智能化運(yùn)用于普通家庭。Android客戶(hù)端控制系統(tǒng)采用模塊化的設(shè)計(jì)思想,主要包括應(yīng)用層UI(User Interface,用戶(hù)界面)、JNI(Java Native Interface,Java本地接口)、HAL(Hardwa re Abstraction Layer,硬件抽象層)和底層驅(qū)動(dòng)等的設(shè)計(jì)。Android應(yīng)用程序由一個(gè)或多個(gè)組件構(gòu)成,組件包括activity、service等,每個(gè)組件在應(yīng)用程序中完成不同的任務(wù),可以被單獨(dú)激活,也可以由其他應(yīng)用程序激活,其具體流程如圖4所示。

a.JPG


其中,HAL層包括LED燈、蜂鳴器和按鍵等設(shè)備,主要用于實(shí)現(xiàn)供JNI調(diào)用的接口。在函數(shù)實(shí)現(xiàn)中,HAL利用底層驅(qū)動(dòng)提供的接口(即ioctl)來(lái)控制寄存器,實(shí)現(xiàn)對(duì)設(shè)備的控制操作。JNI層通過(guò)封裝將Framework層調(diào)用的接口關(guān)聯(lián)到JNI層,每個(gè)設(shè)備都有自己唯一的設(shè)備ID。應(yīng)用層UI顯示來(lái)自M0的模擬量,主要用于管理A8上各種設(shè)備的工作情況,可以實(shí)現(xiàn)LED控制、按鍵檢測(cè)、蜂鳴器控制、A/D轉(zhuǎn)換、溫度傳感器的數(shù)據(jù)讀取和方向傳感器模擬值的處理等功能,其控制程序客戶(hù)端主界面如圖5所示。圖中,上側(cè)為項(xiàng)目菜單欄,通過(guò)不同項(xiàng)目菜單下的信息和控制按鈕,可以實(shí)現(xiàn)對(duì)家居設(shè)備的遠(yuǎn)程實(shí)時(shí)監(jiān)控;中間部分是對(duì)不同設(shè)備的控制開(kāi)關(guān),通過(guò)這些開(kāi)關(guān)可以實(shí)現(xiàn)對(duì)警報(bào)燈、電風(fēng)扇和蜂鳴器等設(shè)備的控制,并可以根據(jù)需要對(duì)報(bào)警溫度值進(jìn)行設(shè)置;最后,通過(guò)對(duì)下側(cè)不同測(cè)量點(diǎn)的選擇,可以實(shí)現(xiàn)對(duì)不同位置房間的監(jiān)控。

b.JPG



結(jié)語(yǔ)
將設(shè)計(jì)的Android手機(jī)客戶(hù)端軟件安裝后,經(jīng)反復(fù)測(cè)試,手機(jī)可以通過(guò)無(wú)線網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)家居設(shè)備的控制。同時(shí),也可以通過(guò)Internet遠(yuǎn)程監(jiān)控網(wǎng)頁(yè)實(shí)現(xiàn)對(duì)家居設(shè)備的控制。通過(guò)本系統(tǒng),可以實(shí)現(xiàn)對(duì)家居設(shè)備的集中管理和控制,隨時(shí)隨地掌控家中的狀態(tài),得到家中的最新?tīng)顩r。
此控制系統(tǒng)采用當(dāng)前較新的控制方式——遠(yuǎn)程監(jiān)控網(wǎng)頁(yè)和智能手機(jī)軟件控制,與其他終端控制方式相比優(yōu)勢(shì)明顯。同時(shí),設(shè)計(jì)開(kāi)發(fā)的手機(jī)軟件具有通用性強(qiáng)、易于移植、市場(chǎng)應(yīng)用價(jià)值高、易于推廣等特點(diǎn)。本系統(tǒng)的設(shè)計(jì)不僅涵蓋了Linux系統(tǒng)開(kāi)發(fā)的軟硬件技術(shù),同時(shí)也包含了嵌入式產(chǎn)品設(shè)計(jì)的各種綜合素質(zhì)和多項(xiàng)技能,具有一定的實(shí)用價(jià)值。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉