国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2013-09-21 10:44:12楊威高文華
關(guān)鍵詞:內(nèi)核家居智能家居

楊威,高文華

(太原科技大學(xué) 電子信息工程學(xué)院,太原 030024)

引 言

隨著社會(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ú)線(xiàn)網(wǎng)絡(luò)(WiFi、藍(lán)牙、GSM等)對(duì)家居系統(tǒng)進(jìn)行控制,可以真正做到方便、快捷、觸手可及。但目前采用這種方式的智能家居系統(tǒng)還不是很多,而且大部分操作繁瑣,沒(méi)有良好的用戶(hù)體驗(yàn)[1]。

本文解決了嵌入式智能家居系統(tǒng)、ZigBee無(wú)線(xiàn)通信[2]、家居控制協(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所示[3]。

其中,感知層的核心功能是實(shí)現(xiàn)數(shù)據(jù)的采集,主要通過(guò)各類(lèi)傳感器來(lái)完成數(shù)據(jù)的獲取,最終將獲取到的數(shù)據(jù)通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)[4]打包發(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 系統(tǒng)整體框架結(jié)構(gòu)圖

1.1 硬件構(gòu)成

智能家居系統(tǒng)的硬件系統(tǒng)[5]主要包括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ú)線(xiàn)通信模塊和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)[6]。

U-Boot的移植過(guò)程可以分為兩個(gè)階段,其中,第一階段主要完成基本的硬件設(shè)備初始化,準(zhǔn)備RAM(Random 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)行所需的硬件資源顯著減少[7]。本設(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)得以?huà)燧d的必要文件。制作根文件系統(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)新型概念[8]設(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)求線(xiàn)程從串口讀取消息,并交給數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊解碼接收到信息后,激活數(shù)據(jù)庫(kù)線(xiàn)程以保存數(shù)據(jù),激活內(nèi)存數(shù)據(jù)刷新線(xiàn)程以更新實(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所示。

3 關(guān)鍵算法設(shè)計(jì)

3.1 視頻流服務(wù)器設(shè)計(jì)

圖2 系統(tǒng)各模塊進(jìn)程間關(guān)系圖

該服務(wù)器主要用于將攝像頭采集的視頻或者圖片顯示到網(wǎng)頁(yè)和LCD(Liquid Crystal Display,液晶顯示器)上,這里采用 MJPG-streamer作為視頻流服務(wù)器[9]。MJPG-streamer采用的是V4L2(Video 4Linux 2)接口,可以通過(guò)文件或者是HTTP的方式訪(fǎng)問(wèn)Linux UVC兼容攝像頭。視頻流服務(wù)器將攝像頭捕獲的圖像存入global buffer緩沖區(qū),當(dāng)客戶(hù)端有訪(fǎng)問(wèn)請(qǐng)求時(shí),服務(wù)器便將global buffer緩沖區(qū)中的圖像數(shù)據(jù)連續(xù)地發(fā)送給客戶(hù)端。該程序中的server_pthread函數(shù)使用多線(xiàn)程技術(shù),為每一個(gè)連接請(qǐng)求的客戶(hù)端創(chuàng)建一個(gè)線(xiàn)程。該線(xiàn)程獨(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-steamer可以通過(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輸出插件,其代碼如下:

3.2 家電物聯(lián)網(wǎng)服務(wù)器設(shè)計(jì)

該服務(wù)器主要負(fù)責(zé)為網(wǎng)頁(yè)提供家電的實(shí)時(shí)狀態(tài)信息,同時(shí)也為Android手機(jī)客戶(hù)端提供服務(wù),讓Android手機(jī)客戶(hù)端具有實(shí)時(shí)顯示和遠(yuǎn)程控制家電的能力,其關(guān)系如圖3所示。

圖3 家電物聯(lián)網(wǎng)服務(wù)器整體關(guān)系圖

在網(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è)線(xiàn)程,并發(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)電話(huà)而設(shè)計(jì)的開(kāi)放源碼的操作系統(tǒng)[10],它將開(kāi)辟新的應(yīng)用,使家居智能化運(yùn)用于普通家庭。Android客戶(hù)端控制系統(tǒng)采用模塊化的設(shè)計(jì)思想,主要包括應(yīng)用層UI(User Interface,用戶(hù)界面)、JNI(Java Native Interface,Java本地接口)、HAL(Hardware Abstraction Layer,硬件抽象層)和底層驅(qū)動(dòng)等的設(shè)計(jì)。Android應(yīng)用程序由一個(gè)或多個(gè)組件構(gòu)成,組件包括activity、service等,每個(gè)組件在應(yīng)用程序中完成不同的任務(wù),可以被單獨(dú)激活,也可以由其他應(yīng)用程序激活,其具體流程如圖4所示。

圖4 應(yīng)用層UI程序流程圖

其中,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)控。

結(jié) 語(yǔ)

將設(shè)計(jì)的Android手機(jī)客戶(hù)端軟件安裝后,經(jīng)反復(fù)測(cè)試,手機(jī)可以通過(guò)無(wú)線(xiàn)網(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à)值。

圖5 客戶(hù)端主界面

[1] 王朝華,陳德艷,黃國(guó)宏,等.基于Android的智能家居系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(6):225-228.

[2] 顧牧君.智能家居設(shè)計(jì)與施工[M].上海:同濟(jì)大學(xué)出版社,2004.

[3] 俞文俊,凌志浩.一種物聯(lián)網(wǎng)智能家居系統(tǒng)的研究[J].自動(dòng)化儀表,2011,32(8):56-59.

[4] 花鐵森.智能家居系統(tǒng)核心技術(shù)探討[J].智能建筑電氣技術(shù),2009,3(1):92-98.

[5] Wayne W.Computers as Components:Principles of Embedded Computing System Design[M].San Fransisco:Morgan Kaufmann,2001.

[6] 韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008.

[7] W Richard Stevens,Stephen A Rago.Advanced Programming in the UNIX Environment[M].2版.北京:人民郵電出版社,2006.

[8] 朱仲英.傳感網(wǎng)與物聯(lián)網(wǎng)的進(jìn)展與趨勢(shì)[J].微型電腦應(yīng)用,2010,26(1):1-3.

[9] 李崗,糜元根.一種支持B/S模式的網(wǎng)絡(luò)攝像機(jī)的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2012,34(3):108-112.

[10] 楊豐盛.Android應(yīng)用開(kāi)發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.

猜你喜歡
內(nèi)核家居智能家居
萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
打造日常家居“氛圍感”
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
Linux內(nèi)核mmap保護(hù)機(jī)制研究
臺(tái)北家居
文苑(2018年18期)2018-11-08 11:12:42
基于Zigbee的無(wú)線(xiàn)通信技術(shù)在智能家居中的應(yīng)用
電子制作(2018年1期)2018-04-04 01:48:28
關(guān)于智能家居真正需求的探討
智能家居更貼心
基于LD3320的智能家居控制
河南科技(2014年7期)2014-02-27 14:11:13
蒙自县| 弥勒县| 稷山县| 新乡市| 普兰店市| 绍兴县| 惠水县| 祁阳县| 达拉特旗| 炉霍县| 尚义县| 岳西县| 宁都县| 泸水县| 太白县| 稻城县| 凯里市| 涪陵区| 都昌县| 井冈山市| 嵊泗县| 宣城市| 闻喜县| 白水县| 临邑县| 庄河市| 青海省| 长沙县| 临安市| 特克斯县| 保山市| 牙克石市| 青州市| 梁平县| 叶城县| 新建县| 东安县| 石阡县| 雅江县| 盐亭县| 开封市|