基于S3C2440 微處理器的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)解決方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要: 以智能家居遠(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)交互操作,完成用戶認(rèn)證、門窗控制、照明控制、溫度監(jiān)測(cè)、視頻監(jiān)控等功能。遠(yuǎn)程用戶可以通過IE瀏覽器進(jìn)行實(shí)時(shí)監(jiān)視,并對(duì)監(jiān)測(cè)系統(tǒng)設(shè)備實(shí)現(xiàn)管理。
智能家居又稱為數(shù)字家庭, 一般是指以計(jì)算機(jī)接口技術(shù)和網(wǎng)絡(luò)技術(shù)為基礎(chǔ), 將各種家用數(shù)字化設(shè)備有機(jī)結(jié)合為一體的智能化的網(wǎng)絡(luò)系統(tǒng)。這些家用數(shù)字化設(shè)備包括電話、計(jì)算機(jī)、數(shù)字化的視聽設(shè)備、數(shù)字化的家用電器及安全監(jiān)控設(shè)備等, 通過有線或無線的方式將這些設(shè)備連接起來, 為家庭用戶提供簡(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 表單, 完成用戶認(rè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)警等功能模塊, 這些功能模塊通過Web 服務(wù)器接入Internet 網(wǎng), 用戶可通過計(jì)算機(jī)登錄因特網(wǎng), 遠(yuǎn)程監(jiān)控室內(nèi)情況, 同時(shí)室內(nèi)如檢測(cè)到火、盜等異常情況可通過Internet 向用戶報(bào)警。
2 系統(tǒng)硬件設(shè)計(jì)
智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的硬件系統(tǒng)由YC2440-F 開發(fā)板、網(wǎng)絡(luò)接口、門窗控制、照明設(shè)備、溫度傳感器、USB攝像頭等組成。YC2440-F 開發(fā)板作為整個(gè)系統(tǒng)的控制核心, 負(fù)責(zé)信息的采集和處理, 并控制各個(gè)模塊協(xié)調(diào)工作, 如圖2 所示。
[!--empirenews.page--]
控制核心采用YC2440-F 開發(fā)板。該開發(fā)板是揚(yáng)創(chuàng)科技公司使用三星S3C2440 處理器開發(fā)的ARM9 開發(fā)板。YC2440-F 開發(fā)板采用核心板+擴(kuò)展板的結(jié)構(gòu)。
門窗控制模塊可以讓用戶通過互聯(lián)網(wǎng)遠(yuǎn)程控制室內(nèi)門窗的開啟與關(guān)閉, 如有人以非正常方式通過門窗進(jìn)入室內(nèi), 可向用戶報(bào)警。在實(shí)驗(yàn)中選用一個(gè)步進(jìn)電機(jī)來模擬門窗控制, 電機(jī)正轉(zhuǎn)表示門窗開啟, 電機(jī)反轉(zhuǎn)表示門窗關(guān)閉, 步進(jìn)電機(jī)如強(qiáng)行被破壞則報(bào)警。步進(jìn)電機(jī)通過集成芯片ULN2003 驅(qū)動(dòng),門窗控制電路如圖3 所示。
照明控制模塊可以讓用戶通過互聯(lián)網(wǎng)遠(yuǎn)程控制室內(nèi)照明系統(tǒng)的打開與關(guān)閉。在實(shí)驗(yàn)中使用4 個(gè)發(fā)光二極管來模擬照明系統(tǒng), 圖4 為照明控制模塊硬件電路圖。
溫度監(jiān)測(cè)模塊可以實(shí)時(shí)監(jiān)測(cè)室內(nèi)溫度, 如果檢測(cè)到室內(nèi)溫度超過50℃則報(bào)警。溫度監(jiān)測(cè)電路采用DS18B20溫度傳感器來實(shí)現(xiàn)。DS18B20 使用1-Wire 技術(shù), 具有線路簡(jiǎn)單, 精度高、體積小、低功耗等特點(diǎn)。硬件電路只需將DS18B20 連接到通用I/O 端口GPB0 端即可。圖5 為溫度監(jiān)測(cè)模塊電路。視頻監(jiān)控系統(tǒng)可以通過攝像頭實(shí)時(shí)監(jiān)控室內(nèi)情況, 用戶可以通過互聯(lián)網(wǎng)隨時(shí)觀察室內(nèi)的情況。視頻監(jiān)控采用用普通USB 攝像頭實(shí)現(xiàn)。
[!--empirenews.page--]
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 下的開源軟件, 將源碼進(jìn)行適當(dāng)修改就可以移植到嵌入式系統(tǒng)中。
3.2 驅(qū)動(dòng)程序的開發(fā)
用戶進(jìn)程是通過設(shè)備驅(qū)動(dòng)文件控制硬件, 對(duì)設(shè)備文件的操作方式就是系統(tǒng)調(diào)用, 如open 、read 、write 、close等。編寫設(shè)備驅(qū)動(dòng)程序的主要工作就是編寫子函數(shù),并填充file_operations 結(jié)構(gòu)體的各個(gè)域。步進(jìn)電機(jī)、LED 和溫度傳感器DS18B20 都是通過通用I/O 控制的,做為字符型設(shè)備。USB 攝像頭屬于USB 設(shè)備。下面以步進(jìn)電機(jī)驅(qū)動(dòng)程序?yàn)槔f明Linux 驅(qū)動(dòng)程序的開發(fā)過程,具體步驟如下:
(1 ) 編寫驅(qū)動(dòng)程序源代碼, 將程序源文件motor.c , 添加到內(nèi)核的drivers/char 目錄下。
(2 ) 編輯drivers/char 目錄下的配置文件Kconfig,添加如下內(nèi)容:config MOTOR tristate"Motor Driver"
(3 ) 在char 目錄下打開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)模塊。通過NFS 方式傳到開發(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)可以通過Web 服務(wù)器為用戶提供簡(jiǎn)潔, 美觀的操作界面。網(wǎng)絡(luò)控制部分包括登錄界面、用戶認(rèn)證、主界面、門窗控制、照明控制、溫度監(jiān)測(cè)及視頻監(jiān)控。
用戶認(rèn)證是通過CGI 程序?qū)崿F(xiàn)的。首先在登錄界面中使用HTML 語言添加表單:
<form method="post" action="/cgi-bin/logon.cgi">
用戶名:<input type="text" name="user"><br>
密碼: <input type = "password" name = "pwd" ><br >
   <input type="submit" value=" 登錄"> </form>
參數(shù)action 指明處理該表單的CGI 程序, 此表單所填的內(nèi)容會(huì)通過Web 服務(wù)器以name=value1&pwd=value2的方式傳給logon.cgi 程序處理, 該程序?qū)τ脩裘兔艽a進(jìn)行認(rèn)證。用戶認(rèn)證界面如圖7 所示, 門窗控制界面如圖8 所示。使用表單在網(wǎng)頁中添加2 個(gè)按鈕, 分別控制門窗的打開和關(guān)閉。對(duì)應(yīng)的CGI 程序調(diào)用步進(jìn)電機(jī)的驅(qū)動(dòng)程序, 控制電機(jī)轉(zhuǎn)動(dòng), 模擬門窗控制。
[!--empirenews.page--]
照明控制界面如圖9 所示, 在網(wǎng)頁中添加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)頁顯示DS18B20 的信息和溫度。視頻監(jiān)控界面如圖11 所示, 在網(wǎng)頁中添加Java 插件, 接收并顯示視頻服務(wù)器Servfox發(fā)送的視頻數(shù)據(jù)。添加2 個(gè)按鈕控制視頻服務(wù)器的打開與關(guān)閉。
以S3C2440 微處理器為控制核心, 完成了智能家居硬件平臺(tái)的設(shè)計(jì)。實(shí)現(xiàn)了嵌入式Linux 操作系統(tǒng)在S3C2440 微處理器平臺(tái)上的移植。編寫了步進(jìn)電機(jī)、發(fā)光二極管以及DS18B20 溫度傳感器的驅(qū)動(dòng)程序。完成了Web 服務(wù)器Boa 和視頻服務(wù)器Servfox 的移植。使用HTML 語言編寫靜態(tài)網(wǎng)頁, 完成基于Web 的智能家居遠(yuǎn)程監(jiān)控部分的主體框架。使用CGI 技術(shù)處理HTML 表單, 控制系統(tǒng)硬件, 實(shí)現(xiàn)交互操作, 完成用戶認(rèn)證、門窗控制、照明控制、溫度監(jiān)測(cè)、視頻監(jiān)控等功能。