一種智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的解決方案
以智能家居遠(yuǎn)程監(jiān)控系統(tǒng)為例,設(shè)計(jì)了一種以Web 技術(shù)為核心的遠(yuǎn)程監(jiān)控系統(tǒng)解決方案, 并實(shí)施建立在基于S3C2440 微處理器和嵌入式Linux 操作系統(tǒng)的軟硬件平臺(tái)上。在嵌入式Linux操作系統(tǒng)中構(gòu)建了Web 服務(wù)器和視頻服務(wù)器。在此基礎(chǔ)上使用CGI 技術(shù)處理HTML 表單,控制系統(tǒng)硬件,實(shí)現(xiàn)交互操作,完成用戶(hù)認(rèn)證、門(mén)窗控制、照明控制、溫度監(jiān)測(cè)、視頻監(jiān)控等功能。遠(yuǎn)程用戶(hù)可以通過(guò)IE瀏覽器進(jìn)行實(shí)時(shí)監(jiān)視,并對(duì)監(jiān)測(cè)系統(tǒng)設(shè)備實(shí)現(xiàn)管理。
本文引用地址:http://www.ex-cimer.com/article/201611/340394.htm智能家居又稱(chēng)為數(shù)字家庭, 一般是指以計(jì)算機(jī)接口技術(shù)和網(wǎng)絡(luò)技術(shù)為基礎(chǔ), 將各種家用數(shù)字化設(shè)備有機(jī)結(jié)合為一體的智能化的網(wǎng)絡(luò)系統(tǒng)。這些家用數(shù)字化設(shè)備包括電話(huà)、計(jì)算機(jī)、數(shù)字化的視聽(tīng)設(shè)備、數(shù)字化的家用電器及安全監(jiān)控設(shè)備等, 通過(guò)有線(xiàn)或無(wú)線(xiàn)的方式將這些設(shè)備連接起來(lái), 為家庭用戶(hù)提供簡(jiǎn)單、安全、可靠、智能化的綜合服務(wù)。本文以Web 技術(shù)為核心, 在基于S3C2440 微處理器和嵌入式Linux 操作系統(tǒng)的軟硬件平臺(tái)上構(gòu)建了Web 服務(wù)器和視頻服務(wù)器,Web 服務(wù)器采用Boa, 視頻服務(wù)器采用Servfox, 結(jié)合CGI 技術(shù)處理HTML 表單, 完成用戶(hù)認(rèn)證, 門(mén)窗控制等家居監(jiān)控功能。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
圖1 為智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的總體結(jié)構(gòu)圖。室內(nèi)部分主要包括家電控制、防盜報(bào)警、遠(yuǎn)程監(jiān)控、防火報(bào)警等功能模塊, 這些功能模塊通過(guò)Web 服務(wù)器接入Internet 網(wǎng), 用戶(hù)可通過(guò)計(jì)算機(jī)登錄因特網(wǎng), 遠(yuǎn)程監(jiān)控室內(nèi)情況, 同時(shí)室內(nèi)如檢測(cè)到火、盜等異常情況可通過(guò)Internet 向用戶(hù)報(bào)警。

2 系統(tǒng)硬件設(shè)計(jì)
智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的硬件系統(tǒng)由YC2440-F 開(kāi)發(fā)板、網(wǎng)絡(luò)接口、門(mén)窗控制、照明設(shè)備、溫度傳感器、USB攝像頭等組成。YC2440-F 開(kāi)發(fā)板作為整個(gè)系統(tǒng)的控制核心, 負(fù)責(zé)信息的采集和處理, 并控制各個(gè)模塊協(xié)調(diào)工作, 如圖2 所示。

控制核心采用YC2440-F 開(kāi)發(fā)板。該開(kāi)發(fā)板是使用三星S3C2440 處理器開(kāi)發(fā)的ARM9 開(kāi)發(fā)板。YC2440-F 開(kāi)發(fā)板采用核心板+擴(kuò)展板的結(jié)構(gòu)。
門(mén)窗控制模塊可以讓用戶(hù)通過(guò)互聯(lián)網(wǎng)遠(yuǎn)程控制室內(nèi)門(mén)窗的開(kāi)啟與關(guān)閉, 如有人以非正常方式通過(guò)門(mén)窗進(jìn)入室內(nèi), 可向用戶(hù)報(bào)警。在實(shí)驗(yàn)中選用一個(gè)步進(jìn)電機(jī)來(lái)模擬門(mén)窗控制, 電機(jī)正轉(zhuǎn)表示門(mén)窗開(kāi)啟, 電機(jī)反轉(zhuǎn)表示門(mén)窗關(guān)閉, 步進(jìn)電機(jī)如強(qiáng)行被破壞則報(bào)警。步進(jìn)電機(jī)通過(guò)集成芯片ULN2003 驅(qū)動(dòng),門(mén)窗控制電路如圖3 所示。

照明控制模塊可以讓用戶(hù)通過(guò)互聯(lián)網(wǎng)遠(yuǎn)程控制室內(nèi)照明系統(tǒng)的打開(kāi)與關(guān)閉。在實(shí)驗(yàn)中使用4 個(gè)發(fā)光二極管來(lái)模擬照明系統(tǒng), 圖4 為照明控制模塊硬件電路圖。

溫度監(jiān)測(cè)模塊可以實(shí)時(shí)監(jiān)測(cè)室內(nèi)溫度, 如果檢測(cè)到室內(nèi)溫度超過(guò)50℃則報(bào)警。溫度監(jiān)測(cè)電路采用DS18B20溫度傳感器來(lái)實(shí)現(xiàn)。DS18B20 使用1-Wire 技術(shù), 具有線(xiàn)路簡(jiǎn)單, 精度高、體積小、低功耗等特點(diǎn)。硬件電路只需將DS18B20 連接到通用I/O 端口GPB0 端即可。圖5 為溫度監(jiān)測(cè)模塊電路。視頻監(jiān)控系統(tǒng)可以通過(guò)攝像頭實(shí)時(shí)監(jiān)控室內(nèi)情況, 用戶(hù)可以通過(guò)互聯(lián)網(wǎng)隨時(shí)觀察室內(nèi)的情況。視頻監(jiān)控采用用普通USB 攝像頭實(shí)現(xiàn)。

3 系統(tǒng)的軟件設(shè)計(jì)
3.1 智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的軟件組成
智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的軟件系統(tǒng)由設(shè)備驅(qū)動(dòng)程序、嵌入式Linux 操作系統(tǒng)和應(yīng)用程序構(gòu)成,如圖6所示。其中嵌入式Linux 操作系統(tǒng)采用2.6 版本的內(nèi)核。

Web 服務(wù)器使用Boa , 視頻服務(wù)器使用Servfox5 , 這是兩款Linux 下的開(kāi)源軟件, 將源碼進(jìn)行適當(dāng)修改就可以移植到嵌入式系統(tǒng)中。
3.2 驅(qū)動(dòng)程序的開(kāi)發(fā)
用戶(hù)進(jìn)程是通過(guò)設(shè)備驅(qū)動(dòng)文件控制硬件, 對(duì)設(shè)備文件的操作方式就是系統(tǒng)調(diào)用, 如open 、read 、write 、close等。編寫(xiě)設(shè)備驅(qū)動(dòng)程序的主要工作就是編寫(xiě)子函數(shù),并填充file_operations 結(jié)構(gòu)體的各個(gè)域。步進(jìn)電機(jī)、LED 和溫度傳感器DS18B20 都是通過(guò)通用I/O 控制的,做為字符型設(shè)備。USB 攝像頭屬于USB 設(shè)備。下面以步進(jìn)電機(jī)驅(qū)動(dòng)程序?yàn)槔f(shuō)明Linux 驅(qū)動(dòng)程序的開(kāi)發(fā)過(guò)程,具體步驟如下:
(1 ) 編寫(xiě)驅(qū)動(dòng)程序源代碼, 將程序源文件motor.c , 添加到內(nèi)核的drivers/char 目錄下。
(2 ) 編輯drivers/char 目錄下的配置文件Kconfig,添加如下內(nèi)容:config MOTOR tristate"Motor Driver"
(3 ) 在char 目錄下打開(kāi)Makefile , 添加obj -$ (CONFIG_MOTOR)+=motor.o
(4 ) 在內(nèi)核目錄下執(zhí)行make menuconfig 命令, 進(jìn)行內(nèi)核配置: 在Device Driver -Character Driver 下將MOTOR 選為M, 模塊方式, 退出保存設(shè)置。
(5 ) 執(zhí)行命令make modules , 編譯驅(qū)動(dòng)模塊。在char目錄下產(chǎn)生motor.ko 的文件, 即所需的步進(jìn)電機(jī)驅(qū)動(dòng)模塊。通過(guò)NFS 方式傳到開(kāi)發(fā)板上。
(6) 加載驅(qū)動(dòng)模塊, 執(zhí)行insmod motor.ko .
(7 ) 建立文件節(jié)點(diǎn), 執(zhí)行mknod/dev/MOTOR_Driver c228 0 .
3.3 實(shí)現(xiàn)基于Web 的遠(yuǎn)程監(jiān)控
智能家居遠(yuǎn)程監(jiān)控系統(tǒng)可以通過(guò)Web 服務(wù)器為用戶(hù)提供簡(jiǎn)潔, 美觀的操作界面。網(wǎng)絡(luò)控制部分包括登錄界面、用戶(hù)認(rèn)證、主界面、門(mén)窗控制、照明控制、溫度監(jiān)測(cè)及視頻監(jiān)控。
用戶(hù)認(rèn)證是通過(guò)CGI 程序?qū)崿F(xiàn)的。首先在登錄界面中使用HTML 語(yǔ)言添加表單:
用戶(hù)名:
密碼:
參數(shù)action 指明處理該表單的CGI 程序, 此表單所填的內(nèi)容會(huì)通過(guò)Web 服務(wù)器以name=value1&pwd=value2的方式傳給logon.cgi 程序處理, 該程序?qū)τ脩?hù)名和密碼進(jìn)行認(rèn)證。用戶(hù)認(rèn)證界面如圖7 所示, 門(mén)窗控制界面如圖8 所示。使用表單在網(wǎng)頁(yè)中添加2 個(gè)按鈕, 分別控制門(mén)窗的打開(kāi)和關(guān)閉。對(duì)應(yīng)的CGI 程序調(diào)用步進(jìn)電機(jī)的驅(qū)動(dòng)程序, 控制電機(jī)轉(zhuǎn)動(dòng), 模擬門(mén)窗控制。


照明控制界面如圖9 所示, 在網(wǎng)頁(yè)中添加4 個(gè)復(fù)選框, 分別配有4 個(gè)發(fā)光二極管。對(duì)應(yīng)的CGI 程序調(diào)用LED 的驅(qū)動(dòng)程序, 控制發(fā)光二極管。溫度控制界面如圖10 所示。CGI 程序調(diào)用DS18B20 的驅(qū)動(dòng)程序, 讀取溫度傳感器的值, 然后計(jì)算溫度, 最后返回一個(gè)網(wǎng)頁(yè)顯示DS18B20 的信息和溫度。視頻監(jiān)控界面如圖11 所示, 在網(wǎng)頁(yè)中添加Java 插件, 接收并顯示視頻服務(wù)器Servfox發(fā)送的視頻數(shù)據(jù)。添加2 個(gè)按鈕控制視頻服務(wù)器的打開(kāi)與關(guān)閉。



以S3C2440 微處理器為控制核心, 完成了智能家居硬件平臺(tái)的設(shè)計(jì)。實(shí)現(xiàn)了嵌入式Linux 操作系統(tǒng)在S3C2440 微處理器平臺(tái)上的移植。編寫(xiě)了步進(jìn)電機(jī)、發(fā)光二極管以及DS18B20 溫度傳感器的驅(qū)動(dòng)程序。完成了Web 服務(wù)器Boa 和視頻服務(wù)器Servfox 的移植。使用HTML 語(yǔ)言編寫(xiě)靜態(tài)網(wǎng)頁(yè), 完成基于Web 的智能家居遠(yuǎn)程監(jiān)控部分的主體框架。使用CGI 技術(shù)處理HTML 表單, 控制系統(tǒng)硬件, 實(shí)現(xiàn)交互操作, 完成用戶(hù)認(rèn)證、門(mén)窗控制、照明控制、溫度監(jiān)測(cè)、視頻監(jiān)控等功能。
評(píng)論