劉凌, 劉琦, 陳凱
(西安文理學(xué)院 機械與材料工程學(xué)院, 西安 710065)
智能家居是一種被認(rèn)為智能化的住宅生活,是智能建筑的重要組成部分。近年來,隨著人們生活水平和科技水平的提高,智能家居的質(zhì)量和功能也在不斷的提高。智能家居,不能很簡單的認(rèn)為是家居或者是房間,而是一個大的系統(tǒng),它將房間布局、家居設(shè)備、家居環(huán)境等有機的結(jié)合在一起,通過智能小型電腦,使用戶的生活變得智能化。本文的智能家居系統(tǒng),使用典型的智能家居設(shè)計模型,通過客戶端口上的BOA服務(wù)器來控制接口。BOA服務(wù)器是一個可以提供可視化的網(wǎng)頁接口,通過網(wǎng)頁上的按鈕,可以將信息發(fā)送到EXYNOS4412開發(fā)板上,開發(fā)板對接收到數(shù)據(jù)進行一個分析,然后調(diào)用相應(yīng)的應(yīng)用程序來控制相應(yīng)的模塊去做相應(yīng)的工作。
本文的設(shè)計主要包括兩個部分:硬件電路搭建和程序設(shè)計。硬件電路主要是使用EXYNOS4412開發(fā)板作為核心SOC,使用ARM控制板做控制中心來控制蜂鳴器、電機、溫濕度傳感器等各個模塊來完成智能家居的系統(tǒng)控制和家居環(huán)境的控制,并且若家居環(huán)境處于危險狀況時報警。程序設(shè)計主要是使用C語言編寫出各個傳感器需要的驅(qū)動和需要實現(xiàn)的功能,其總體設(shè)計框圖如圖1所示:
圖1 總體設(shè)計框圖
MQ-2煙霧模塊是二氧化錫半導(dǎo)體氣敏材料的一種,也是表面離子式N型半導(dǎo)體的一種。當(dāng)與煙霧接觸時,如果晶粒間界處的勢壘收到煙霧的調(diào)至而變化,就會引起表面導(dǎo)電率的變化。利用這一點就可以獲得這種煙霧存在的信息,煙霧的濃度越大,導(dǎo)電率越大,輸出電阻越低,則輸出的模擬信號就越大。其原理圖如圖2所示。
圖2 MQ-2原理圖
DHT11溫濕度傳感器含有已校準(zhǔn)的數(shù)字信號輸出,是一個復(fù)合傳感器。DHT11內(nèi)部具有以下結(jié)構(gòu):一個干濕元件和一個測溫元件,它的特點是響應(yīng)快、性價比高。
HY-SRF05當(dāng)用戶選擇打開超聲波測距模塊時,超聲波測距模塊開始工作,當(dāng)檢測到的數(shù)據(jù)小于設(shè)定值的時候,表明此時有人經(jīng)過,家居環(huán)境處于不安全的狀態(tài),同時觸發(fā)蜂鳴器報警;當(dāng)用戶關(guān)閉安全模式時,超聲波測距模塊處于待機狀態(tài)。
HC-SR501的設(shè)計采用LHI778探頭設(shè)計,是基于紅外線技術(shù)的自動控制模塊,具有靈敏度高,可靠性強等特點,因此被廣泛應(yīng)用于各類自動感應(yīng)電器設(shè)備。其原理圖如圖3所示。
在本文所設(shè)計的智能家居模型中,人體紅外感應(yīng)主要有兩種作用,一種為安全模式下的對家居環(huán)境安全的檢測,另一種為在智能模式下感應(yīng)到有人經(jīng)過時打開燈光的作用。其流程圖如圖4所示。
圖3 HC-SR501原理圖
zImage即為內(nèi)核,rootos即為根文件系統(tǒng)。LINUX內(nèi)核初始化的第一步是執(zhí)行實模式下的匯編代碼,之后執(zhí)行保護模式下init/main.c文件中的start_kernel()函數(shù)。start_kernel()函數(shù)首先會初始化CPU子系統(tǒng),之后讓內(nèi)存和進程管理系統(tǒng)就位,接下來啟動外部總線和I/O設(shè)備,最后一步是激活初始化(init)程序,它是所有Linux進程的父進程。初始化進程執(zhí)行啟動必要的內(nèi)核服務(wù)的用戶空間腳本。
1)在PC端搭建共享文件夾。
mkdir /rootos 在根目錄下創(chuàng)建rootos文件夾
vim /etc/exports 打開nfs服務(wù)器配置文件,寫入共享的文件夾
service nfs restart 重啟服務(wù)器
圖4 HC-SR501編程流程圖
cd UEA_160822/shared_arm_development/tools/Linux 進入到這個文件夾中
tar -Jxvf rootfs_qtopia_qt4-2016-11-23.tar.xz -C /rootos/ 將壓縮包解壓到/
rootos中cd /rootos 進入到解壓的目錄
mv rootfs_qtopia_qt4/*./ 將文件夾中的文件全部移出來
rm -rf rootfs_qtopia_qt4/ 刪除空文件夾
2)在kermit端通過設(shè)置環(huán)境變量讓bootloader掛載PC機的rootos。
set bootargs "root=/dev/nfs nfsroot=192.168.0.188:/rootos ip=192.168.0.187 console=ttySAC0,115200 lcd=S70"
3)取下網(wǎng)線,將開發(fā)板和PC機直連,將zImage發(fā)送到開發(fā)板,啟動內(nèi)核,若啟動沒有完成,檢查PC機防火墻是否關(guān)閉或者PC機NFS服務(wù)是否開啟成功。
4)將/dev/mmcblk0p2掛載到/mnt:mount /dev/mmcblk0p2 /mnt/;將內(nèi)核拷貝到/mnt目錄下
5)將/dev/mmcblk0p3掛載到/mn:tmount /dev/mmcblk0p3 /mnt/;將根文件拷貝到/mnt目錄下
6)重啟開發(fā)板。
7)在bootloader命令行修改環(huán)境變量
設(shè)置內(nèi)核的自啟動:set bootcmd "ext2load mmc 0:2 40008000 zImage;bootm 40008000"
設(shè)置內(nèi)核啟動后的文掛載:set bootargs "root=/dev/mmcblk0p3 console=ttySAC0,115200 lcd=S70"
8)重啟EXYNOS4412,若其成功啟動,則表明系統(tǒng)移植完成;若沒有成功啟動,則檢查環(huán)境變量等,如果還是不能進入系統(tǒng),則需要重新移植內(nèi)核和跟文件系統(tǒng)。
下載BOA服務(wù)器的源碼包boa-0.94.13.tar.tar,下載完成后解壓源碼包:tar xvf boa-0.94.13.tar.tar;進入到解壓好的目錄中cd boa-0.94.13/src;生成Makefile文件并對其進行修改,執(zhí)行.configure生成Makefile文件;修改 src/compt.h文件;修改/src/log.c;修改src/boa.c;BOA服務(wù)器的配置。
CGI,即公用網(wǎng)關(guān)接口,Web服務(wù)器調(diào)用其他可執(zhí)行程序的接口協(xié)議標(biāo)準(zhǔn)就是CGI來規(guī)定的。CGI工作過程如圖5所示。
圖5 CGI工作過程
通過網(wǎng)站現(xiàn)在mjpg-stream的源碼包jpegsrc.v8b.tar.gz;http://www.ijg.org/files/jpegsrc.v8b.tar.gz;解壓源碼包:tar xf jpegsrc.v8b.tar.gz;配置源碼包:cd jpeg-8b;編譯:make;安裝:make install;cp /jpeg/lib/libjpeg.* /rootfs/lib通過以上步驟,完成jpeg庫的移植。
通過http://sourceforge.net/projects/mjpg-streamer/下載并解壓源碼包;修改頂層makefile及plugins目錄中的各級makefile,將所有的CC=gcc修改為CC=arm-linux-gcc;修改 plugins/input_uvc/Makfile;編譯并移植庫文件:mkdir /rootfs/mjpg;cp *.so /rootfs/mjpg;cp mjpg-streamer /rootfs/bin.將攝像頭與EXYNOS4412連接,啟動網(wǎng)頁服務(wù)器/etc/boa/boa&;進入 mjpg_streamer 的文件夾,運行 mjpg_stream mjpg_streamer-i “/mjpg/input_uvc.so” -o “/mjpg/output_http.so -w./ www”& (注意:這里是板子的ip 192.168.0.168);瀏覽器上執(zhí)行:http://192.168.0.168:8080/?action=snapshot。
控制終端的主界面如圖6所示。
圖6 終端界面
其中左側(cè)溫度和濕度顯示當(dāng)前環(huán)境下的溫濕度度數(shù);房門、電燈、窗簾、安全模式和懶人模式分別顯示其對應(yīng)功能在終端上的開關(guān)狀態(tài),當(dāng)在終端上進行相應(yīng)的操作的時候,會顯示相應(yīng)功能是否打開。右側(cè)留下了門、智能模式、風(fēng)扇、安全模式、窗簾和燈的按鈕,點擊相應(yīng)的按鈕會進入到相應(yīng)的操作界面,通過點擊開和關(guān)會對相應(yīng)的傳感器進行操作。智能模式,打開智能模式后,當(dāng)人體紅外傳感器檢測到有人經(jīng)過時即打開燈光,延時4s關(guān)閉。安全模式。打開安全模式后,人體紅外傳感器,超聲波測距傳感器,煙霧傳感器開始工作。其中人體紅外傳感器是檢測是否有人非法進入到家中;超聲波測距模塊檢測窗口;煙霧傳感器檢測家中是否有火災(zāi)發(fā)生或者是可燃?xì)怏w的泄漏;若家中有危險產(chǎn)生,則觸發(fā)蜂鳴器報警,提示用戶注意防范。查看界面,如圖7所示。
通過本軟件的開發(fā),完成以下一些功能:
1) 家居控制系統(tǒng)
圖7 查看照片界面
通過終端上的提示按鍵或者網(wǎng)頁的提示來打開或者關(guān)閉燈光;通過終端屏幕上的提示按鍵或者網(wǎng)頁的提示來打開或者關(guān)閉窗簾;通過終端屏幕的提示按鍵或者網(wǎng)頁的提示按鈕來控制風(fēng)扇來模擬家具中的通風(fēng)系統(tǒng);通過溫濕度傳感器實現(xiàn)對家居中溫濕度的監(jiān)控,實現(xiàn)測量家居中溫濕度。
2) 安防系統(tǒng)
監(jiān)控模塊:在沒有人在家的時候,用戶可以通過攝像頭實現(xiàn)對家居狀態(tài)的監(jiān)控,以達(dá)到對家居的監(jiān)控,同時監(jiān)控系統(tǒng)有拍照功能;防火模塊:當(dāng)發(fā)生火災(zāi)時,必然有大量煙霧,通過煙霧傳感器的檢測來判斷當(dāng)前家具是否發(fā)生異常,當(dāng)發(fā)生異常時觸發(fā)蜂鳴器報警;防盜模塊:通過測量來人與窗口的距離來檢測它的安全狀態(tài),當(dāng)人體離窗戶距離過小時,會觸發(fā)蜂鳴器報警。
3) 網(wǎng)頁
當(dāng)用戶的手機或者電腦的網(wǎng)絡(luò)和網(wǎng)絡(luò)服務(wù)器在局域網(wǎng)內(nèi),就可以使用網(wǎng)頁對家居中設(shè)備進行操作。