基于Wi-Fi及Web控制的智能家居系統(tǒng)設(shè)計
引言
隨著計算機技術(shù)、智能控制技術(shù)、通信技術(shù)和微電子技 術(shù)的飛速發(fā)展以及人們生活水平的日益提高,智能家居生活逐 漸成為一種趨勢,并越來越被人們所關(guān)注。與此同時,人們對 智能家居的成本以及操作人性化方面的要求也越來越高。
所謂智能家居,是指利用先進的計算機網(wǎng)絡(luò)通信技術(shù)、 嵌入式技術(shù)和傳感控制將與家庭生活有關(guān)的各種子系統(tǒng)有機 地結(jié)合起來,通過統(tǒng)籌管理,使家居生活可以更加舒適和方便。
當(dāng)前,市場上實現(xiàn)智能家居的方法很多,實現(xiàn)的功能也 很多,在這當(dāng)中不乏一些經(jīng)典的方案,但是在這些方案當(dāng)中, 大部分采用觸摸屏或電腦控制的方式,這帶來的問題將是操 作地點的固定以及對一般收入家庭而言不必要的功能所造成 的額外費用。
當(dāng)今社會,無線路由器及智能手機、平板電腦等手持設(shè) 備已經(jīng)得到了廣泛的普及,因此本設(shè)計將利用Wi-Fi這一載體 通過智能手機、平板電腦實現(xiàn)Web對智能家居終端的控制, 以此減少額外布線以及昂貴的設(shè)備費用。同時,也將使用紅外 遙控,方便不使用智能手機、平板電腦等設(shè)備的家庭成員享受 智能家居帶來的便捷。
1系統(tǒng)結(jié)構(gòu)
整個系統(tǒng)分為3個部分,即受控終端、服務(wù)終端和控制 終端。系統(tǒng)結(jié)構(gòu)如圖1所示。
在系統(tǒng)的3個部分之間,將控制終端與服務(wù)終端通過 Wi-Fi連接,即可實現(xiàn)控制的可移動性,也避免了布線的復(fù)雜性。
1.1控制終端
控制終端由智能手機、平板電腦以及紅外遙控等手持終 端組成。其中智能手機和平板電腦通過Wi-Fi實現(xiàn)與服務(wù)終端 的連接,通過瀏覽器實現(xiàn)在Web層面對服務(wù)終端發(fā)送數(shù)據(jù)和 添加命令的功能。紅外遙控則直接發(fā)送命令給服務(wù)終端。
1.2服務(wù)終端
服務(wù)終端是整個智能家居系統(tǒng)的核心,是實現(xiàn)對受控終 端傳遞命令的樞紐,實現(xiàn)對控制終端命令的處理,對受控終 端信號的采集和發(fā)送。
1.3受控終端
受控終端則是日常生活中的電器部分,本次設(shè)計中主要涉 及的控制對象是生活中常用到的電燈和門禁。通過USB攝像 頭實現(xiàn)對來客的觀察,通過繼電器實現(xiàn)電燈和門禁的控制。
2系統(tǒng)硬件設(shè)計
在本系統(tǒng)中,控制終端和受控終端為日常家居中的現(xiàn)成 產(chǎn)品,它們只需通過適當(dāng)?shù)慕涌诩{入系統(tǒng)架構(gòu)中即可,因此 本系統(tǒng)的設(shè)計重點是服務(wù)終端。系統(tǒng)中的服務(wù)終端采用三星 公司的S3C2440微處理器作為控制芯片,S3C2440是一款 高性能的嵌入式處理器,基于ARM9內(nèi)核,能穩(wěn)定運行在 400 MHz(內(nèi)核電壓為1.3 V時)。同時,此款處理器具有支 持更多分辨率液晶屏、AC97編解碼以及更多可用I/O端口等 特點,這些特點能夠很好地為智能家居系統(tǒng)服務(wù),也為后續(xù)的 升級提供了方便。不僅如此,服務(wù)終端部分還集成了多種外設(shè) 接口,如以太網(wǎng)、攝像頭、USB、串口等,這些接口完全可以 滿足對家居設(shè)備的控制要求。服務(wù)終端的結(jié)構(gòu)如圖2所示。
GPIO 接口
GPIO接口主要控制外部連接的繼電器,通過控制繼電器 的導(dǎo)通與關(guān)斷控制相應(yīng)電燈、門禁以及電動窗簾。以電燈控制 為例,當(dāng)GPIO 口發(fā)出高電平信號時,連接在相應(yīng)接口上的繼 電器導(dǎo)通,電燈打開;當(dāng)GPIO 口發(fā)出低電平信號時,連接在 相應(yīng)接口上的繼電器關(guān)斷,電燈熄滅。
2.2紅外接口
紅外接口主要用于接收紅外遙控發(fā)送的命令,通過處理 器的處理后再生成相應(yīng)的代碼信號發(fā)送給相應(yīng)的I/O 口,以此 實現(xiàn)紅外遙控對服務(wù)終端的控制。其后續(xù)的控制方法和GPIO 相同。
2.3 LCD 接口
LCD接口外接7寸LCD觸摸屏,在系統(tǒng)設(shè)置階段以及 Web控制出錯的情況下,實現(xiàn)對外部電器的控制,做到了直觀、 快捷的操作。
2.4網(wǎng)卡接口
網(wǎng)卡接口實現(xiàn)控制終端與家庭使用的無線路由進行連接, 實現(xiàn)服務(wù)終端與控制終端的無線連接。
2.5 CAMERA USB 接口
CAMERA USB接口主要用來外接USB攝像頭,用于對 室內(nèi)外情況的觀察,在配合門禁系統(tǒng)使用時起到了“貓眼”的 作用。同時,由于采用了 USB接口,方便用戶自行更換鏡頭更好、 像素更高的攝像頭來為自己的智能家居進行服務(wù)。
總體而言,在本智能家居系統(tǒng)當(dāng)中,通過應(yīng)用無線路由、 繼電器以及USB攝像頭等這些家庭生活常見設(shè)備,做到了低 成本和移動操作的目的,同時紅外遙控的采用以及LCD觸摸 屏的使用,為不使用智能手機等手持設(shè)備的家庭成員提供了 方便,也為在無線不能正常使用的情況下提供了另外一種選擇。 3系統(tǒng)軟件設(shè)計
系統(tǒng)軟件主要包括移植Linux操作系統(tǒng)、mjpg-streamer 的移植、QT圖形界面應(yīng)用程序、網(wǎng)頁html文件以及shell腳 本的編寫等。
Linux操作系統(tǒng)的移植
系統(tǒng)選用了 2.6.32.2版本的內(nèi)核,可以從官方網(wǎng)站上下 載內(nèi)核源碼。然后依次進行根目錄下的Makefile文件的修改、 克隆自己的平臺、移植Nand驅(qū)動并更改分區(qū)、移植yaffs2、 DM9000網(wǎng)卡驅(qū)動和USB驅(qū)動的移植等操作,最后執(zhí)行 make menuconfig命令進入配置菜單,配置相關(guān)選項并保存退 出,執(zhí)行內(nèi)核編譯命令,編譯成功后將得到編譯好的內(nèi)核鏡像 文件zlmage。最后將內(nèi)核鏡像燒寫到NAND FLASH當(dāng)中。
QT圖形界面應(yīng)用程序及其與驅(qū)動的關(guān)系
QT圖形界面應(yīng)用程序的編寫主要涉及到了應(yīng)用對內(nèi)核的 調(diào)用、內(nèi)核對驅(qū)動的調(diào)用以及驅(qū)動對內(nèi)核的反饋的整個過程, 它與內(nèi)核以及驅(qū)動的關(guān)系如圖3所示。
下面以GPIO 口驅(qū)動為例來進行說明:
應(yīng)用程序使用庫提供的open函數(shù)打開代表GPIO的 設(shè)備文件;
庫根據(jù)open函數(shù)傳入的參數(shù)執(zhí)行“swi”指令,這條 指令會引起CPU異常,進入內(nèi)核;
內(nèi)核的異常處理函數(shù)根據(jù)這些參數(shù)找到相應(yīng)的驅(qū)動程 序,返回一個文件句柄庫,進而返回給應(yīng)用程序;
應(yīng)用程序得到文件句柄后,使用庫提供的write函數(shù) 發(fā)出控制命令;
庫根據(jù)write函數(shù)傳入的參數(shù)執(zhí)行“swi”指令,這條 指令會引起CPU異常,進入內(nèi)核;
內(nèi)核的異常處理函數(shù)根據(jù)這些參數(shù)調(diào)用驅(qū)動程序的相 關(guān)函數(shù),驅(qū)動I/O接口。
在本次設(shè)計的智能家居方案中,我們用到了 LCD、 GPIO、DM9000網(wǎng)卡等驅(qū)動,以及相應(yīng)的應(yīng)用程序,均遵循 以上過程編寫,同時也在Linux系統(tǒng)中穩(wěn)定運行。
shell 腳本
Web與應(yīng)用程序間通信的橋梁靠shell腳本完成。Web 將命令發(fā)送給shell腳本后,腳本經(jīng)過相應(yīng)的switch語句處理, 將從Web得到的結(jié)果轉(zhuǎn)換成相應(yīng)的參數(shù)傳遞給相應(yīng)的應(yīng)用程 序,從而實現(xiàn)了 Web與應(yīng)用程序間的通信,以此達(dá)到了 Web 控制硬件的目的。同時,shell腳本將應(yīng)用程序采集到的信號 返回給相應(yīng)的Web程序,實現(xiàn)讀取受控終端狀態(tài)的效果。
mjpg-streamer 的移植
從官網(wǎng)下載相應(yīng)的源碼,解壓后修改頂層目錄下的 Makefile文件以及plugins目錄下的各級Makefile文件,完 成后放到服務(wù)終端Linux目錄下的相應(yīng)目錄下,并通過修改 start_uvc_yuv.sh等文件,實現(xiàn)相應(yīng)的開機自啟,當(dāng)我們啟動 服務(wù)終端,在LCD上顯示如圖4所示內(nèi)容。此時USB攝像頭 已經(jīng)正常工作。
MJPG Streamer Version. ; 2. 0
i: Using V4L2 dev ice. . /dev/vi deoO
i; UesI red Res。Iut i on: 640 x 480
i: Frames Per Second. . 5
i: Format: YUV
i; JPEG Quality; 80
format asked unavailable get width 160 height 120
o: wnw folder-path... : . ,■ www/
o: HTTP TCP port: 8080
o. username.password. . disabled
o: conmands:enabled
圖4串口終端輸出內(nèi)容
3.5網(wǎng)頁html文件
網(wǎng)頁html文件作為本次智能家居跨平臺控制的載體,我 們運用Macromedia Dreamweaver 8軟件進行編寫。此軟件做 到了圖形界面和代碼編寫的雙重功能,方便一般用戶實現(xiàn)簡單 網(wǎng)頁文件的設(shè)計。在這當(dāng)中,通過賦予不同按鈕不同的值,以 及網(wǎng)頁通過QUERY_STRING來實現(xiàn)向shell腳本的命令傳輸。 基本代碼如圖5所示。其中value所對應(yīng)的值即為網(wǎng)頁傳遞給 shell腳本的值。
綜上所述,在軟件部分,智能家居的基本工作過程如下:
用戶通過瀏覽器連接網(wǎng)絡(luò)后,通過網(wǎng)頁發(fā)送指令,進 行控制;
網(wǎng)頁提交后,將數(shù)據(jù)發(fā)送給shell腳本,shell腳本中 相應(yīng)的函數(shù)對網(wǎng)頁提交的數(shù)據(jù)進行處理;
shell腳本將處理后的結(jié)果發(fā)送給相應(yīng)的應(yīng)用程序;
應(yīng)用程序調(diào)用相應(yīng)的驅(qū)動程序完成用戶的操作。
4系統(tǒng)測試
系統(tǒng)研制成功后,已在實驗室做了充分的實驗與驗證, 系統(tǒng)工作穩(wěn)定可靠。圖6為從瀏覽器上看到的實驗室的監(jiān)控畫 面。圖7則為手機端控制界面,通過點擊界面當(dāng)中房間號以及 開關(guān)按鈕即可實現(xiàn)對室內(nèi)電燈的控制,同時,提交按鈕的增加, 可以做到防止用戶誤觸。而且,我們也將Wi-Fi信號關(guān)閉,模 擬Wi-Fi信號出問題的情況,紅外遙控和LCD觸摸屏做到了 相應(yīng)的控制作用,很好地彌補了在意外情況下對服務(wù)終端的控 制,方便了生活。
5結(jié)語
本文設(shè)計了一種基于Wi-Fi和Web控制的智能家居系統(tǒng), 詳細(xì)介紹了系統(tǒng)的整體框架以及軟件的實現(xiàn)方法。與其他智 能家居系統(tǒng)不同,本系統(tǒng)降低了用戶的成本、減小了系統(tǒng)的操 作難度、實現(xiàn)了跨平臺間的簡單操作以及紅外遙控和LCD的 加入使得系統(tǒng)操作更加靈活。我們有理由相信,采用Wi-Fi以 及Web控制的智能家居系統(tǒng),將受到廣大普通收入家庭的歡 迎,使得智能家居生活真正進入尋常百姓家。
20211119_6197c537c53b4__基于Wi