摘 要: 針對(duì)目前智能家居監(jiān)控系統(tǒng)硬件設(shè)施比較昂貴,,不適合普遍使用的缺點(diǎn),提出了一種以ARM9處理器和Linux操作系統(tǒng)為平臺(tái)的嵌入式智能家居監(jiān)控系統(tǒng),,實(shí)現(xiàn)了家居的遠(yuǎn)程視頻監(jiān)視和家電的遠(yuǎn)程模擬控制,。該系統(tǒng)內(nèi)移植嵌入式Web服務(wù)器,,用戶(hù)可通過(guò)瀏覽器進(jìn)行遠(yuǎn)程訪(fǎng)問(wèn),。采用HHTP協(xié)議和CGI技術(shù),,設(shè)計(jì)和開(kāi)發(fā)人機(jī)交互界面和基本的CGI程序,能與客戶(hù)端瀏覽器進(jìn)行動(dòng)態(tài)交互,。測(cè)試結(jié)果表明,,該系統(tǒng)人機(jī)界面友好,、可擴(kuò)展性強(qiáng)、操作使用方便,,遠(yuǎn)程監(jiān)控圖像流暢,、清晰,,可以滿(mǎn)足不同用戶(hù)的需求。
關(guān)鍵詞: 嵌入式系統(tǒng),;智能家居,;Linux;遠(yuǎn)程監(jiān)控
隨著信息技術(shù)和Internet技術(shù)的發(fā)展,,實(shí)現(xiàn)家居網(wǎng)絡(luò)化和智能化已經(jīng)成為當(dāng)前研究的熱點(diǎn),。具有用戶(hù)界面,、能遠(yuǎn)程控制、智能管理的電器是未來(lái)的發(fā)展趨勢(shì),。在此形勢(shì)下,,基于A(yíng)RM,、PowerPC等32位微處理器的出現(xiàn),,使嵌入式Internet成為現(xiàn)實(shí),傳統(tǒng)PC的Web服務(wù)完全可以通過(guò)嵌入式控制器實(shí)現(xiàn),。正如早已為人們熟知的“把互聯(lián)網(wǎng)帶入生活中”,,使用嵌入式Web技術(shù)的家居計(jì)算機(jī)網(wǎng)絡(luò)成為目前網(wǎng)絡(luò)發(fā)展的一個(gè)重要方向,。
基于PC架構(gòu)的智能家居由于實(shí)用性較差已經(jīng)逐步退出了市場(chǎng),目前只有一些國(guó)外廠(chǎng)商和極少數(shù)國(guó)內(nèi)廠(chǎng)商選擇了基于嵌入式的技術(shù)方案,。而基于嵌入式系統(tǒng)的家庭智能系統(tǒng)在國(guó)內(nèi)才剛剛出現(xiàn),,隨著嵌入式技術(shù)更加廣泛的應(yīng)用,成本的逐步降低,,智能家居最終將走向嵌入式[1]。
經(jīng)過(guò)比較,嵌入式智能家居具有明顯的優(yōu)勢(shì),,因此本文選擇嵌入式系統(tǒng)作為智能家居的核心。由于A(yíng)RM處理器具有體積小,、功耗低、成本低,、性能高以及Linux開(kāi)源等優(yōu)點(diǎn),,本系統(tǒng)選擇三星公司的ARM9處理器S3C2410作為嵌入式處理器,,操作系統(tǒng)為L(zhǎng)inux,。
1 系統(tǒng)整體模塊設(shè)計(jì)
本系統(tǒng)主要在嵌入式系統(tǒng)上進(jìn)行視頻監(jiān)控模塊和遠(yuǎn)程電器控制模塊的設(shè)計(jì)。嵌入式系統(tǒng)由嵌入式處理器S3C2410和Linux系統(tǒng)組成,。視頻監(jiān)控模塊由Web服務(wù)器,、視頻服務(wù)器和客戶(hù)端以及實(shí)現(xiàn)通信的通道組成,。遠(yuǎn)程電器控制模塊在Web服務(wù)器上,,通過(guò)CGI交互,,實(shí)現(xiàn)對(duì)家電的控制,。本系統(tǒng)采用模塊化設(shè)計(jì),由嵌入式系統(tǒng)模塊,、視頻采集模塊,、視頻服務(wù)器模塊,、視頻客戶(hù)端模塊和遠(yuǎn)程電器控制模塊組成,。系統(tǒng)的整體框架圖如圖1所示,。 嵌入式處理器S3C2410是一款基于A(yíng)RM920T內(nèi)核的16/32位RISC微處理器。內(nèi)部帶有全性能的MMU(內(nèi)存管理單元),,它適用于設(shè)計(jì)移動(dòng)手持設(shè)備類(lèi)產(chǎn)品,,具有性能高、功耗低,、接口豐富和體積小等優(yōu)良特性[2],。
2 系統(tǒng)的軟件設(shè)計(jì)實(shí)現(xiàn)
2.1 圖像采集模塊的實(shí)現(xiàn)
本系統(tǒng)采用USB接口的PC350攝像頭,,該攝像頭的后端采用OV511+視頻芯片, 圖像傳感器采用新一代CMOS感光芯片,,攝像頭硬件壓縮率超過(guò)5:1,,非常適合視頻監(jiān)控的圖像采集[3]。目前Linux內(nèi)核中已經(jīng)有支持OV511芯片的驅(qū)動(dòng),,因此無(wú)須下載驅(qū)動(dòng)程序,。該驅(qū)動(dòng)可以用模塊化的方式加載,也可以編譯進(jìn)內(nèi)核,,本系統(tǒng)采用編譯進(jìn)內(nèi)核的方法,。
在內(nèi)核加載了OV511攝像頭驅(qū)動(dòng)之后,系統(tǒng)就能識(shí)別并支持該攝像頭,,再只需編寫(xiě)視頻采集程序就可工作,。視頻采集應(yīng)用程序的設(shè)計(jì)通過(guò)Linux內(nèi)核中的Video4Linux實(shí)現(xiàn)。
Video4Linux是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動(dòng),,它為針對(duì)視頻設(shè)備的應(yīng)用程序編程提供了一系列接口函數(shù),。在視頻采集中,應(yīng)用程序首先通過(guò)open( )函數(shù)打開(kāi)視頻采集設(shè)備并返回一個(gè)文件描述符號(hào),,這個(gè)文件描述符就代表了捕獲的設(shè)備硬件,。成功開(kāi)啟設(shè)備檔后,調(diào)用ioctl( )取的設(shè)備文件的相關(guān)信息,,并且將取得的信息放到video capability結(jié)構(gòu)中,,同樣調(diào)用ioctl( )將視頻窗口信息放到video picture結(jié)構(gòu)中。視頻設(shè)備的關(guān)閉通過(guò)close( )函數(shù)實(shí)現(xiàn),。在本系統(tǒng)中,,視頻圖像的獲取采用mmap( )的方式共享內(nèi)存來(lái)實(shí)現(xiàn)。此方法不必再調(diào)用read( ),、write( )等操作,,不僅進(jìn)程可以直接讀寫(xiě)內(nèi)存,進(jìn)程通信效率高,,而且不需要拷貝任何數(shù)據(jù),。
2.2 遠(yuǎn)程視頻監(jiān)控模塊的實(shí)現(xiàn)
視頻監(jiān)控模塊采用“瀏覽器—服務(wù)器”模式,即在采集端構(gòu)建嵌入式Web服務(wù)器,,并在Web服務(wù)器的基礎(chǔ)上移植視頻服務(wù)器webcam,,在客戶(hù)端利用Java Applet 來(lái)接受視頻服務(wù)器發(fā)送過(guò)來(lái)的視頻信息。本模塊包括嵌入式Web服務(wù)器設(shè)計(jì)和視頻服務(wù)器webcam的移植實(shí)現(xiàn),。
2.2.1 嵌入式Web服務(wù)器設(shè)計(jì)
嵌入式Web服務(wù)器器是指將Web服務(wù)器引入到嵌入式系統(tǒng)中,,在相應(yīng)的硬件平臺(tái)和軟件系統(tǒng)的支持下,根據(jù)應(yīng)用的需要實(shí)現(xiàn)通用的Web服務(wù)器的全部或者部分功能,。嵌入式Web服務(wù)器仍然以TCP/IP協(xié)議為底層,,在該Web中使用的應(yīng)用層的通信協(xié)議是HTTP協(xié)議,,通過(guò)HTTP協(xié)議實(shí)現(xiàn)客戶(hù)端(一般為瀏覽器)和嵌入式Web服務(wù)器的信息交換[4]。
在嵌入式領(lǐng)域,,常用的Web服務(wù)器有thttpd和boa,,boa目前用的最多。boa是一個(gè)非常小巧的Web服務(wù)器,,可執(zhí)行代碼只有約60 KB,,占用系統(tǒng)資源少,而且速度快,、安全性好[5],。目前使用的Linux2.6內(nèi)核還沒(méi)有包含boa代碼,因此需要移植到本系統(tǒng)中,。首先從www.boa.org下載boa源代碼(目前最新版本boa-0.94.13),,解壓到Linux系統(tǒng)目錄下,用交叉編譯器編譯,。這樣在boa-0.94.13/src目錄下生成boa應(yīng)用程序,,把生成的boa應(yīng)用程序下載到開(kāi)發(fā)板上Linux系統(tǒng)中的/bin目錄下,讓boa在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行,,這樣在開(kāi)發(fā)板上就移植了boa服務(wù)器,。
2.2.2 視頻服務(wù)器webcam的移植實(shí)現(xiàn)
視頻信息通過(guò)攝像頭采集到的圖像需要通過(guò)網(wǎng)絡(luò)傳送到另一端,并通過(guò)瀏覽器顯示出來(lái),,這一過(guò)程通過(guò)視頻服務(wù)器實(shí)現(xiàn),。視頻服務(wù)器的工作主要是與客戶(hù)端建立鏈接,并根據(jù)客戶(hù)端用戶(hù)的指令,,調(diào)用相應(yīng)的函數(shù)處理客戶(hù)端的控制要求,。視頻服務(wù)器工作流程如圖2所示。
webcam是一個(gè)比較常用的視頻服務(wù)器程序,,對(duì)本系統(tǒng)采用的OV511攝像頭非常適用,。通過(guò)網(wǎng)絡(luò)下載webcam_server的Linux版本,它是基于GNU架構(gòu)之下的,,完全免費(fèi),源碼開(kāi)放,。本設(shè)計(jì)采用webcam server―0.50.tar.gz,。從http://www.neilbriscoe.co.uk/scratch/網(wǎng)站下載,解壓到Linux目錄下,,修改Makefile為交叉編譯環(huán)境,,然后用Make命令進(jìn)行編譯,把生成的webcam應(yīng)用程序下載到開(kāi)發(fā)板上Linux系統(tǒng)中的/bin目錄下,,這樣就移植了視頻服務(wù)器,。
2.3 智能家居遠(yuǎn)程監(jiān)控的實(shí)現(xiàn)
遠(yuǎn)程監(jiān)控是智能家居監(jiān)控中的重要組成部分,,只要有Internet的地方,主人就可以通過(guò)上網(wǎng)登錄設(shè)計(jì)好的智能家居管理界面,,以此來(lái)實(shí)現(xiàn)對(duì)家里的實(shí)時(shí)監(jiān)控,。例如,主人在公司上班,,家里有小孩或者生病的老人,,主人可以通過(guò)公司電腦遠(yuǎn)程監(jiān)視關(guān)注家里的情況,如有意外,,主人就可以對(duì)此及時(shí)做出反應(yīng),。當(dāng)主人快要下班時(shí)可以事先通過(guò)界面管理實(shí)現(xiàn)對(duì)家電的控制(如打開(kāi)客廳電燈、讓電飯鍋開(kāi)始煮飯等),。
2.3.1 智能家居界面的實(shí)現(xiàn)
本設(shè)計(jì)采用html語(yǔ)言來(lái)編寫(xiě)智能家居的管理界面,,以下是智能家居管理主界面的源代碼,文件名為my.html,。
<html>
<head>
<title>遠(yuǎn)程監(jiān)控</title>
</head>
<frameset rows=“20%,,80%”>
<frame img src=“images/ltby006.jpg” marginwidth=“0”
scrolling=“no”
frameborder=“0” norsize=“norsize”>
<frameset cols=“20%,80%”>
<frame src=“left.html”scrolling=“no” name=“left_frame”
frameborder=“0”>
<frame src=“right.html” name=“right_frame”>
</frameset>
</frameset>
</html>
該代碼包含left.html和right.html的相關(guān)鏈接,,其中l(wèi)eft.html又包含著用戶(hù)信息,、密碼修改、遠(yuǎn)程控制,、狀態(tài)查詢(xún),、安全布防、視頻監(jiān)控等相關(guān)鏈接,。設(shè)計(jì)好相關(guān)的.html文件和CGI程序,,通過(guò)U盤(pán)把.html文件和CGI程序拷貝到開(kāi)發(fā)板根文件系統(tǒng)下的/www目錄下。
2.3.2 遠(yuǎn)程電器控制模塊的模擬實(shí)現(xiàn)
用無(wú)線(xiàn)通信方式進(jìn)行家電的控制靈活性較強(qiáng),、覆蓋范圍較廣,,免去了綜合布線(xiàn)的費(fèi)用和精力,缺點(diǎn)是家庭內(nèi)部要有家庭網(wǎng)關(guān)和無(wú)線(xiàn)路由器,,接收終端還要有相應(yīng)的接收裝置,,成本較高。因此,,基于實(shí)用性和大眾化方面的考慮,,本文所研究的家電控制器的控制采用I/O控制。
家電的本地集中控制硬件設(shè)計(jì)是利用嵌入式系統(tǒng)的I/O口對(duì)家用電器的用電進(jìn)行控制,。系統(tǒng)通過(guò)S3C2410的I/O口輸出高低電平來(lái)進(jìn)行控制,,同時(shí)用發(fā)光二極管指示家用電器工作狀況。
發(fā)光二極管亮,表示家用電器通電,,發(fā)光二極管滅,,表示家用電器斷電。GPB7控制電器1,,GPB8控制電器2,,GPB9控制電器3。由于被控模塊家用電器大多使用220 V交流電,,屬于強(qiáng)電電路,,所以使用繼電器控制家電。在芯片與繼電器中間加驅(qū)動(dòng)電路,。驅(qū)動(dòng)電路可以利用光電耦合的通,、斷去控制繼電器的開(kāi)與關(guān)。也可以利用三極管的飽和與截止去控制繼電器的開(kāi)與關(guān),,這里采用三極管方式,。當(dāng)I/O口引腳輸出低電平時(shí),三極管飽和導(dǎo)通,,+5 V電源加到繼電器線(xiàn)圈兩端,,繼電器吸合,同時(shí)狀態(tài)指示的發(fā)光二極管也點(diǎn)亮,,繼電器的常開(kāi)觸點(diǎn)閉合,,相當(dāng)于開(kāi)關(guān)閉合。當(dāng)I/O口引腳輸出高電平時(shí),,三極管截止,,繼電器線(xiàn)圈兩端沒(méi)有電位差,繼電器銜鐵釋放,,同時(shí)狀態(tài)指示的發(fā)光二極管也熄滅,,繼電器的常開(kāi)觸點(diǎn)釋放,相當(dāng)于開(kāi)關(guān)斷開(kāi),。注:在三極管截止的瞬間,,由于線(xiàn)圈中的電流不能突變?yōu)榱悖^電器線(xiàn)圈兩端會(huì)產(chǎn)生一個(gè)較高電壓的感應(yīng)電動(dòng)勢(shì),,線(xiàn)圈產(chǎn)生的感應(yīng)電動(dòng)勢(shì)則可以通過(guò)二極管D1釋放,,從而保護(hù)了三極管免被擊穿,也消除了感應(yīng)電動(dòng)勢(shì)對(duì)其他電路的干擾,,這就是二極管D1的保護(hù)作用,。這里主要是采用模擬的方式來(lái)實(shí)現(xiàn)家電的遠(yuǎn)程控制,板子上的LED燈表示家電的開(kāi)關(guān)狀態(tài),。控制開(kāi)關(guān)狀態(tài)的CGI代碼用shell語(yǔ)言實(shí)現(xiàn),,下面就是其中一個(gè)電器的代碼:
#/bin/sh
case $QUERY_STRING in
*kai1*)
type1=1
,;,;
*guan1*)
type1=0
;,;
esac
2.3.3 視頻客戶(hù)端Java Applet的實(shí)現(xiàn)
在本系統(tǒng)中,,客戶(hù)端接收從視頻服務(wù)器發(fā)送過(guò)來(lái)的視頻信息,并通過(guò)Web瀏覽器顯示監(jiān)控圖像,,瀏覽器自身不能完成這個(gè)功能,,而是通過(guò)在HTML文檔里嵌入Applet來(lái)實(shí)現(xiàn)的[6]。Applet是一種特殊的Java程序,,它能夠嵌入到HTML文檔并被支持Java的網(wǎng)頁(yè)瀏覽器下載執(zhí)行,。本系統(tǒng)客戶(hù)端就是利用Java Applet完成用戶(hù)與視頻服務(wù)器的交互,實(shí)現(xiàn)視頻播放,。
視頻監(jiān)控網(wǎng)頁(yè)用HTML語(yǔ)言設(shè)計(jì),。在本系統(tǒng)中,攝像頭系統(tǒng)監(jiān)視界面直接采用改進(jìn)的webcam_server―0.50nsrcnclient,。以下是經(jīng)過(guò)修改后的webcam.html源代碼,,其中http://202.193.74.230指的是開(kāi)發(fā)板的IP地址,可以根據(jù)實(shí)際需要改變?cè)创a里面的高度和寬度,,從而調(diào)整視頻畫(huà)面的大小,。
<html>
<head>
<title>W(wǎng)ebCam</title>
</head>
<br><br><br>
<p align=“center”><APPLET CODE =“WebCamApplet.clas”
archive=“applet.jar”WIDTH =“320”HEIGHT =“240”>
<param name=URL value=“http://202.193.74.230:8888”>
<param name=FPS value=“1”>
<param name=width value=“320”>
<param name=height value=“240”>
</APPLET>
<p align=“right”><img src=“images/sxt.jpg”/>
</body>
</html>
還要把/src/client下的Applet.jar文件拷貝到開(kāi)發(fā)板根文件系統(tǒng)下的/www目錄下。最后在電腦主機(jī)上安裝一個(gè)jre1.6.0 03,,目的是使瀏覽器支持Java,,這樣就完成了客戶(hù)端的設(shè)計(jì),從而實(shí)現(xiàn)視頻在網(wǎng)頁(yè)上顯示的工作,。
3 實(shí)驗(yàn)測(cè)試
首先,,設(shè)置開(kāi)發(fā)板的IP,即在超級(jí)終端下輸入命令ifconfig eth0 202.193.74.230,。在實(shí)驗(yàn)室的另一臺(tái)電腦主機(jī)上運(yùn)行IE瀏覽器,,輸入設(shè)置好的IP,訪(fǎng)問(wèn)板子的主監(jiān)控界面,。智能家居管理主界面如圖3所示,。
點(diǎn)擊遠(yuǎn)程控制,出現(xiàn)如圖4所示的家電控制界面,,選擇電器的狀態(tài)(開(kāi)或關(guān)),,就可以通過(guò)網(wǎng)頁(yè)實(shí)現(xiàn)電器的模擬開(kāi)關(guān)。點(diǎn)擊視頻監(jiān)控,,將出現(xiàn)視頻監(jiān)控的界面,,如圖5所示(本機(jī)電腦網(wǎng)頁(yè)上實(shí)時(shí)實(shí)現(xiàn)的是另一實(shí)驗(yàn)室的監(jiān)視畫(huà)面)。
通過(guò)實(shí)驗(yàn)測(cè)試,發(fā)現(xiàn)家居控制效果好,,圖像傳輸效果實(shí)時(shí),,畫(huà)面質(zhì)量清晰、流暢,,很好地實(shí)現(xiàn)了家居的智能監(jiān)控,。
本系統(tǒng)的設(shè)計(jì)是在數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展的前提下,運(yùn)用當(dāng)前的嵌入式技術(shù)和ARM技術(shù)設(shè)計(jì)的智能家居監(jiān)控系統(tǒng),,具有一定的創(chuàng)新性,。該系統(tǒng)由于采用了高性能的ARM9處理器和嵌入式Linux操作系統(tǒng),具有一定的可擴(kuò)展性,,可以通過(guò)適當(dāng)?shù)墓δ軘U(kuò)展來(lái)滿(mǎn)足用戶(hù)更高的要求,。此外,本系統(tǒng)具有功能強(qiáng),、穩(wěn)定性好的特點(diǎn),,而且成本低,對(duì)嵌入式智能家具監(jiān)控系統(tǒng)的開(kāi)發(fā)有一定的借鑒意義,。
參考文獻(xiàn)
[1] 原林,,于伸.嵌入式技術(shù)在智能家居控制系統(tǒng)中的應(yīng)用[J].自動(dòng)化技術(shù)與應(yīng)用,2006,,25(1):72-74.
[2] 周立功.ARM嵌入式基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,,2005:1-16.
[3] 吳明暉.基于A(yíng)RM的嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用[M].北京:人民郵電出版社,2004.
[4] 劉志杰,,張華忠.基于嵌入式Web的遠(yuǎn)程實(shí)時(shí)監(jiān)控技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),,2007,28(15):3734-3735.
[5] 賀金平.嵌入式信息家電平臺(tái)中的Web服務(wù)器的研究與實(shí)現(xiàn)[D].昆明理工大學(xué),,2007:30-43.
[6] 寇向暉.基于嵌入式Internet的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)[D].西南石油大學(xué),,2006:37-46.