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