<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux平臺智能家居的本地監控與遠程監控

Linux平臺智能家居的本地監控與遠程監控

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

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

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

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

本文引用地址:http://dyxdggzs.com/article/201610/305964.htm

c.JPG


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

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

d.JPG



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

g.JPG


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

a.JPG


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

b.JPG



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



評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>