一種智能家居遠程監(jiān)控系統(tǒng)的解決方案
以智能家居遠程監(jiān)控系統(tǒng)為例,設計了一種以Web 技術為核心的遠程監(jiān)控系統(tǒng)解決方案, 并實施建立在基于S3C2440 微處理器和嵌入式Linux 操作系統(tǒng)的軟硬件平臺上。在嵌入式Linux操作系統(tǒng)中構建了Web 服務器和視頻服務器。在此基礎上使用CGI 技術處理HTML 表單,控制系統(tǒng)硬件,實現(xiàn)交互操作,完成用戶認證、門窗控制、照明控制、溫度監(jiān)測、視頻監(jiān)控等功能。遠程用戶可以通過IE瀏覽器進行實時監(jiān)視,并對監(jiān)測系統(tǒng)設備實現(xiàn)管理。
本文引用地址:http://cafeforensic.com/article/201611/340394.htm智能家居又稱為數(shù)字家庭, 一般是指以計算機接口技術和網絡技術為基礎, 將各種家用數(shù)字化設備有機結合為一體的智能化的網絡系統(tǒng)。這些家用數(shù)字化設備包括電話、計算機、數(shù)字化的視聽設備、數(shù)字化的家用電器及安全監(jiān)控設備等, 通過有線或無線的方式將這些設備連接起來, 為家庭用戶提供簡單、安全、可靠、智能化的綜合服務。本文以Web 技術為核心, 在基于S3C2440 微處理器和嵌入式Linux 操作系統(tǒng)的軟硬件平臺上構建了Web 服務器和視頻服務器,Web 服務器采用Boa, 視頻服務器采用Servfox, 結合CGI 技術處理HTML 表單, 完成用戶認證, 門窗控制等家居監(jiān)控功能。
1 系統(tǒng)總體結構設計
圖1 為智能家居遠程監(jiān)控系統(tǒng)的總體結構圖。室內部分主要包括家電控制、防盜報警、遠程監(jiān)控、防火報警等功能模塊, 這些功能模塊通過Web 服務器接入Internet 網, 用戶可通過計算機登錄因特網, 遠程監(jiān)控室內情況, 同時室內如檢測到火、盜等異常情況可通過Internet 向用戶報警。
2 系統(tǒng)硬件設計
智能家居遠程監(jiān)控系統(tǒng)的硬件系統(tǒng)由YC2440-F 開發(fā)板、網絡接口、門窗控制、照明設備、溫度傳感器、USB攝像頭等組成。YC2440-F 開發(fā)板作為整個系統(tǒng)的控制核心, 負責信息的采集和處理, 并控制各個模塊協(xié)調工作, 如圖2 所示。
控制核心采用YC2440-F 開發(fā)板。該開發(fā)板是使用三星S3C2440 處理器開發(fā)的ARM9 開發(fā)板。YC2440-F 開發(fā)板采用核心板+擴展板的結構。
門窗控制模塊可以讓用戶通過互聯(lián)網遠程控制室內門窗的開啟與關閉, 如有人以非正常方式通過門窗進入室內, 可向用戶報警。在實驗中選用一個步進電機來模擬門窗控制, 電機正轉表示門窗開啟, 電機反轉表示門窗關閉, 步進電機如強行被破壞則報警。步進電機通過集成芯片ULN2003 驅動,門窗控制電路如圖3 所示。
照明控制模塊可以讓用戶通過互聯(lián)網遠程控制室內照明系統(tǒng)的打開與關閉。在實驗中使用4 個發(fā)光二極管來模擬照明系統(tǒng), 圖4 為照明控制模塊硬件電路圖。
溫度監(jiān)測模塊可以實時監(jiān)測室內溫度, 如果檢測到室內溫度超過50℃則報警。溫度監(jiān)測電路采用DS18B20溫度傳感器來實現(xiàn)。DS18B20 使用1-Wire 技術, 具有線路簡單, 精度高、體積小、低功耗等特點。硬件電路只需將DS18B20 連接到通用I/O 端口GPB0 端即可。圖5 為溫度監(jiān)測模塊電路。視頻監(jiān)控系統(tǒng)可以通過攝像頭實時監(jiān)控室內情況, 用戶可以通過互聯(lián)網隨時觀察室內的情況。視頻監(jiān)控采用用普通USB 攝像頭實現(xiàn)。
3 系統(tǒng)的軟件設計
3.1 智能家居遠程監(jiān)控系統(tǒng)的軟件組成
智能家居遠程監(jiān)控系統(tǒng)的軟件系統(tǒng)由設備驅動程序、嵌入式Linux 操作系統(tǒng)和應用程序構成,如圖6所示。其中嵌入式Linux 操作系統(tǒng)采用2.6 版本的內核。
Web 服務器使用Boa , 視頻服務器使用Servfox5 , 這是兩款Linux 下的開源軟件, 將源碼進行適當修改就可以移植到嵌入式系統(tǒng)中。
3.2 驅動程序的開發(fā)
用戶進程是通過設備驅動文件控制硬件, 對設備文件的操作方式就是系統(tǒng)調用, 如open 、read 、write 、close等。編寫設備驅動程序的主要工作就是編寫子函數(shù),并填充file_operations 結構體的各個域。步進電機、LED 和溫度傳感器DS18B20 都是通過通用I/O 控制的,做為字符型設備。USB 攝像頭屬于USB 設備。下面以步進電機驅動程序為例說明Linux 驅動程序的開發(fā)過程,具體步驟如下:
(1 ) 編寫驅動程序源代碼, 將程序源文件motor.c , 添加到內核的drivers/char 目錄下。
(2 ) 編輯drivers/char 目錄下的配置文件Kconfig,添加如下內容:config MOTOR tristate"Motor Driver"
(3 ) 在char 目錄下打開Makefile , 添加obj -$ (CONFIG_MOTOR)+=motor.o
(4 ) 在內核目錄下執(zhí)行make menuconfig 命令, 進行內核配置: 在Device Driver -Character Driver 下將MOTOR 選為M, 模塊方式, 退出保存設置。
(5 ) 執(zhí)行命令make modules , 編譯驅動模塊。在char目錄下產生motor.ko 的文件, 即所需的步進電機驅動模塊。通過NFS 方式傳到開發(fā)板上。
(6) 加載驅動模塊, 執(zhí)行insmod motor.ko .
(7 ) 建立文件節(jié)點, 執(zhí)行mknod/dev/MOTOR_Driver c228 0 .
3.3 實現(xiàn)基于Web 的遠程監(jiān)控
智能家居遠程監(jiān)控系統(tǒng)可以通過Web 服務器為用戶提供簡潔, 美觀的操作界面。網絡控制部分包括登錄界面、用戶認證、主界面、門窗控制、照明控制、溫度監(jiān)測及視頻監(jiān)控。
用戶認證是通過CGI 程序實現(xiàn)的。首先在登錄界面中使用HTML 語言添加表單:
用戶名:
密碼:
參數(shù)action 指明處理該表單的CGI 程序, 此表單所填的內容會通過Web 服務器以name=value1&pwd=value2的方式傳給logon.cgi 程序處理, 該程序對用戶名和密碼進行認證。用戶認證界面如圖7 所示, 門窗控制界面如圖8 所示。使用表單在網頁中添加2 個按鈕, 分別控制門窗的打開和關閉。對應的CGI 程序調用步進電機的驅動程序, 控制電機轉動, 模擬門窗控制。
照明控制界面如圖9 所示, 在網頁中添加4 個復選框, 分別配有4 個發(fā)光二極管。對應的CGI 程序調用LED 的驅動程序, 控制發(fā)光二極管。溫度控制界面如圖10 所示。CGI 程序調用DS18B20 的驅動程序, 讀取溫度傳感器的值, 然后計算溫度, 最后返回一個網頁顯示DS18B20 的信息和溫度。視頻監(jiān)控界面如圖11 所示, 在網頁中添加Java 插件, 接收并顯示視頻服務器Servfox發(fā)送的視頻數(shù)據(jù)。添加2 個按鈕控制視頻服務器的打開與關閉。
以S3C2440 微處理器為控制核心, 完成了智能家居硬件平臺的設計。實現(xiàn)了嵌入式Linux 操作系統(tǒng)在S3C2440 微處理器平臺上的移植。編寫了步進電機、發(fā)光二極管以及DS18B20 溫度傳感器的驅動程序。完成了Web 服務器Boa 和視頻服務器Servfox 的移植。使用HTML 語言編寫靜態(tài)網頁, 完成基于Web 的智能家居遠程監(jiān)控部分的主體框架。使用CGI 技術處理HTML 表單, 控制系統(tǒng)硬件, 實現(xiàn)交互操作, 完成用戶認證、門窗控制、照明控制、溫度監(jiān)測、視頻監(jiān)控等功能。
評論