鄭 娟,王建華
(江蘇科技大學(xué) 電子信息學(xué)院,江蘇 鎮(zhèn)江 212003)
伴隨著數(shù)字化和網(wǎng)絡(luò)化的進(jìn)程,智能化的浪潮席卷了世界的每一個角落,成為一種勢不可擋的歷史化大趨勢。面對當(dāng)前犯罪分子作案手段日趨技能化、智能化、團(tuán)伙化和暴力化的勢態(tài),單靠傳統(tǒng)的“人防”一種途徑已遠(yuǎn)不能適應(yīng)新形式下斗爭的需要。
新型的安防監(jiān)控系統(tǒng)利用安置在家中的不同功能的傳感器采集各類環(huán)境參數(shù),傳輸?shù)缴衔粰C(jī),利用信息管理軟件進(jìn)行數(shù)據(jù)存儲、顯示、分析處理等操作,對異常情況進(jìn)行報警,并根據(jù)預(yù)置控制策略自動處理,及時消除安全隱患。
隨著網(wǎng)絡(luò)通訊技術(shù)及圖像壓縮處理技術(shù)[1]以及傳輸技術(shù)的快速發(fā)展,使得家庭能夠采用最新的通訊和圖像處理技術(shù),通過網(wǎng)絡(luò)傳輸數(shù)字圖像,可為實現(xiàn)家庭監(jiān)控系統(tǒng)提供高效可行而且價格低廉的解決方案。
因此,開發(fā)和推廣遠(yuǎn)程安防監(jiān)控系統(tǒng),使得人們在可以繁忙工作的同時,在遠(yuǎn)程就了解自己家庭概況,及時做出分析與判斷,具有非常重要的實際意義。
該系統(tǒng)主要是針對家庭用戶而設(shè)計的,對家居的安全狀況進(jìn)行監(jiān)控。用戶可以根據(jù)自己需要進(jìn)行用戶基本信息及監(jiān)控狀態(tài)、監(jiān)控參數(shù)等的設(shè)置。系統(tǒng)實現(xiàn)了以下功能:
1)用戶設(shè)置:可以在監(jiān)控主頁面點擊用戶設(shè)置按鈕,設(shè)置登錄界面的用戶名、密碼;修改或新增接收告警信息的手機(jī)號碼、變更短信中心號碼、設(shè)置火災(zāi)溫度上限。
2)家居安全狀況遠(yuǎn)程實時監(jiān)控與查詢:主人外出,可通過手機(jī)或其他聯(lián)網(wǎng)設(shè)備通過瀏覽網(wǎng)頁來查看家中的安全狀況。同時主人可以點擊網(wǎng)頁上的相關(guān)按鈕,遠(yuǎn)程發(fā)送控制命令。
3)家居安防監(jiān)控:當(dāng)小偷闖入住宅或有火災(zāi)等違紀(jì)事件發(fā)生時,監(jiān)控終端能實時地監(jiān)測到險情,并自動采取相應(yīng)處理措施,同時向監(jiān)控中心發(fā)送告警信息,監(jiān)控中心則以GSM短信的方式通知戶主。
4)現(xiàn)場圖像抓拍功能:在設(shè)防狀態(tài)下,當(dāng)紅外傳感器或者門磁觸發(fā)告警時,攝像頭將自動抓拍圖像,通過在ARM開發(fā)板上搭建的MGPJ-Streamer服務(wù)器處理圖像,并以流的方式將圖像保存到SQLite數(shù)據(jù)庫中。
5)歷史照片的打包下載和定時刪除:為方便查看和快速傳輸歷史照片,所以將歷史照片以.tar.gz格式進(jìn)行打包壓縮,同時為保證存儲空間的充裕,所以提供定時刪除過去一段時間的照片。
該系統(tǒng)以FS_S5PC100開發(fā)板和Linux操作系統(tǒng)作為實驗平臺,主要立足互聯(lián)網(wǎng),采用攝像機(jī)采集圖像,經(jīng)壓縮處理后傳到互聯(lián)網(wǎng),遠(yuǎn)端用戶可以通過瀏覽網(wǎng)頁或手機(jī)上網(wǎng)直接查看家中情況。利用市場上比較通用的GPRS模塊收發(fā)信息,利用Linux內(nèi)核中的PPP撥號上網(wǎng)的方式;使用嵌入式Linux操作系統(tǒng),通過交叉編譯模式,使用C語言編寫移植驅(qū)動和控制程序,并在Linux系統(tǒng)中搭建視頻服務(wù)器、WEB服務(wù)器和SQLite數(shù)據(jù)庫。系統(tǒng)的總體設(shè)計框架如圖1所示,整個系統(tǒng)分為以下3個模塊:
1)輸入模塊:包括兩類,一是監(jiān)測參數(shù)的采集模塊,即火災(zāi)的溫度采集模塊、防盜的攝像頭監(jiān)測模塊,采集并無線發(fā)送監(jiān)測參數(shù);二是實現(xiàn)控制的模塊,即Internet或手機(jī)通過網(wǎng)絡(luò)實現(xiàn)對整個監(jiān)測系統(tǒng)的用戶信息及監(jiān)控參數(shù)的設(shè)置、監(jiān)測參數(shù)的查詢、顯示及設(shè)防、撤防等控制指令下發(fā);
2)處理模塊:以ARM開發(fā)板為核心的主控板,接收由輸入模塊采集的數(shù)據(jù),并進(jìn)行邏輯判斷,如果有異常發(fā)生,通知輸出模塊做出相應(yīng)的處理;同時也能根據(jù)網(wǎng)頁上發(fā)送過來的各種設(shè)置和控制指令,然后調(diào)用相應(yīng)的處理函數(shù);
3)輸出模塊:解析處理模塊發(fā)出的信號,實施相應(yīng)的異常處理措施;如果溫度傳感器測得的溫度高于預(yù)先設(shè)定的溫度或者紅外傳感器探測到有不法分子闖入,那么開啟相應(yīng)的聲光報警和對應(yīng)的異常處理,通過控制攝像頭來捕捉圖片,然后進(jìn)行圖像處理并將數(shù)據(jù)保存在SQLite數(shù)據(jù)庫中。并通過GPRS模塊發(fā)送告警短信通知用戶家居現(xiàn)場情況,用戶根據(jù)具體情況點擊網(wǎng)頁上對應(yīng)按鈕發(fā)送命令給系統(tǒng),完成一個遠(yuǎn)程監(jiān)控的任務(wù)。
圖1 系統(tǒng)總體結(jié)構(gòu)圖Fig. 1 Structure diagram of monitoring system
根據(jù)系統(tǒng)的總體架構(gòu),分析遠(yuǎn)程安防監(jiān)控系統(tǒng)功能上的需求,得知相應(yīng)的硬件需求如表1所示。
處理模塊處在系統(tǒng)中間層,既要處理輸入模塊采集的數(shù)據(jù),又要控制輸出模塊的相應(yīng)處理,同時還得與遠(yuǎn)程監(jiān)控中心進(jìn)行數(shù)據(jù)交互,這就要求其具有較強(qiáng)的數(shù)據(jù)處理能力?;诖丝紤],本系統(tǒng)選用了基于SamSung公司的Cotex_A8內(nèi)核[2]的FS_S5PC100作為實驗平臺??紤]到市場的普及度與可靠性的要求,GPRS模塊選用SIEMENS 公司的TC35i/MC35[3-4],該模塊內(nèi)嵌強(qiáng)大的TCP/IP協(xié)議棧,低功耗,增強(qiáng)的AT控制指令。由于具體的硬件設(shè)計電路圖比較繁雜,在此給出系統(tǒng)硬件實現(xiàn)框圖,如圖2所示。
表1 硬件需求列表Tab.1 Hardware requirements list
圖2 系統(tǒng)硬件結(jié)構(gòu)圖Fig. 2 Structure diagram of the hardware system
系統(tǒng)軟件實現(xiàn)主要包括:S5PC100軟件編程,監(jiān)控頁面的編程兩大部分,在此只介紹S5PC100微控制器的軟件編程部分。
考慮到系統(tǒng)的穩(wěn)定性和可靠性,在S5PC100上采用Linux嵌入式實時操作系統(tǒng)[5-6],與傳統(tǒng)的實時操作系統(tǒng)(RTOS)相比,采用嵌入式 Linux 這樣的開放源碼的操作系統(tǒng)的另外一個好處是 Linux 開發(fā)團(tuán)體看來會比 RTOS 的供應(yīng)商更快地支持新的 IP 協(xié)議和其它協(xié)議。例如,用于Linux 的設(shè)備驅(qū)動程序要比用于商業(yè)操作系統(tǒng)的設(shè)備驅(qū)動程序多,如網(wǎng)絡(luò)接口卡(NIC)驅(qū)動程序以及并口和串口驅(qū)動程序。
各種設(shè)備由于功能不同,驅(qū)動程序提供的函數(shù)接口也不相同,但Linux為能夠統(tǒng)一管理,規(guī)定了Linux下設(shè)備驅(qū)動程序必須使用統(tǒng)一的接口函數(shù)file_operations。根據(jù)功能填充對應(yīng)的file_operations中的接口函數(shù)。為便于開機(jī)啟動,統(tǒng)一地將驅(qū)動程序靜態(tài)編譯到內(nèi)核。
另外,涉及設(shè)備節(jié)點的創(chuàng)建,選擇了udev機(jī)制來自動創(chuàng)建設(shè)備節(jié)點,具體步驟如下:
1)在一開始定義一個類 class,再在類下面定義一個設(shè) 備 class_dev;2)xx_init( )函 數(shù) 中, 使 用 class_creat( )和device_creat( )創(chuàng)建設(shè)備節(jié)點;3)xx_exit( )函數(shù)中,使用class_destory( )卸載設(shè)備節(jié)點。其中,設(shè)備號的選擇,通過查詢內(nèi)核中Documents/device.txt 選用空閑的設(shè)備號,當(dāng)然也可以用major=register_chrdev(0,"name",&file_operation)自動生成。
系統(tǒng)的主要功能是實現(xiàn)家居環(huán)境參數(shù)的采集、上傳和監(jiān)控頁面控制命令的下發(fā),所以數(shù)據(jù)傳輸是整個應(yīng)用程序的關(guān)鍵部分,即S5PC100與GPRS模塊[7]的串口通信程序的設(shè)計。
在定義與串口相關(guān)寄存器地址的基礎(chǔ)上,以結(jié)構(gòu)體構(gòu)造新的串口數(shù)據(jù)類型,結(jié)構(gòu)體成員為函數(shù)指針,它們指向編寫的具體實現(xiàn)函數(shù),而函數(shù)體中的數(shù)據(jù)直接操作串口寄存器,實現(xiàn)了串口驅(qū)動程序,實際上就是上面驅(qū)動程序思想,填充對應(yīng)的file_operations中的接口函數(shù),實現(xiàn)我們自己的驅(qū)動程序。以下是實現(xiàn)串口數(shù)據(jù)類型的主要源代碼:
typedef struct{
serial_init_func_t init; //串口初始化
serial_open_func_t open; //設(shè)置串口中斷
serial_read_func_t read; //串口讀取數(shù)據(jù)
serial_write_func_t write; //串口發(fā)送數(shù)據(jù)
serial_poll_func_t poll; //串口接收數(shù)據(jù)查詢
serial_flush_input_func_t flush_input ; //清空串口接
收FIFO
serial_flush_output_func_t flush_output ; //清空串口發(fā)送FIFO
}serial_driver_t;
串口采用中斷方式接收數(shù)據(jù),提高了串口數(shù)據(jù)處理的實時性和整個CPU的工作效率。具體來說,S5PC100的串口1收到輸入模塊發(fā)送的家居環(huán)境參數(shù),進(jìn)行邏輯判斷,結(jié)合輸出模塊處理后,傳輸?shù)奖O(jiān)控頁面,實現(xiàn)數(shù)據(jù)的上傳;S5PC100的串口1收到監(jiān)控頁面發(fā)送的指令后,調(diào)用相應(yīng)的處理函數(shù),把指令同步到各個模塊,實現(xiàn)數(shù)據(jù)的下發(fā)。
為方便用戶通過internet或GPRS網(wǎng)絡(luò)接入互聯(lián)網(wǎng),遠(yuǎn)程監(jiān)控家里情況,提供遠(yuǎn)程Web服務(wù)。本模塊主要包括2個部分:
1) BOA服務(wù)器模塊設(shè)計:在嵌入式系統(tǒng)中移植BOA服務(wù)器,提供Web服務(wù);
2) cgi模塊詳細(xì)設(shè)計:根據(jù)監(jiān)控頁面上的不同按鈕,發(fā)送不同信息給S5PC100,S5PC100調(diào)用相應(yīng)的處理函數(shù),執(zhí)行網(wǎng)頁按鈕相應(yīng)功能。
在搭建好系統(tǒng)環(huán)境,成功移植硬件驅(qū)動后,在Ubuntu12.04上Linux2.6內(nèi)核環(huán)境下進(jìn)行程序的開發(fā)調(diào)試。系統(tǒng)中主要的進(jìn)程,包括3個線程等待控制命令,在代碼中采用輪詢的形式來對線程狀況進(jìn)行檢測,發(fā)生問題的時候進(jìn)行相應(yīng)得處理,用戶可通過網(wǎng)絡(luò)訪問本系統(tǒng)并遠(yuǎn)程進(jìn)行控制操作。調(diào)用了兩個線程分別操作thief處理線程和fire處理線程。thief線程和fire線程分別調(diào)用GPRS模塊和攝像頭模塊進(jìn)行短消息的發(fā)送和圖像的采集及保存。同時調(diào)用FS_S5PC100開發(fā)板自帶的,蜂鳴器模塊和LED模塊實現(xiàn)報警,另外利用流水燈模擬滅火的操作。具體框架如圖3所示。
圖3 應(yīng)用程序設(shè)計結(jié)構(gòu)圖Fig. 3 Schematic diagram of application program
輸入模塊和輸出模塊也是分別創(chuàng)建線程處理不同的任務(wù),模塊之間通信選用了消息隊列,對于共享資源采用了互斥鎖和條件變量,保證資源的共享和原子操作。
整個系統(tǒng)在實驗室環(huán)境下進(jìn)行了測試,利用S5PC100開發(fā)板上自帶的按鍵key1模擬外人闖入,按鍵key2模擬主人進(jìn)入,溫度的采集使用了LM75溫度傳感器采集,同時為便于調(diào)試我們同時也利用ADC來模擬溫度變化。整個監(jiān)控界面效果圖如圖4所示。
圖4 監(jiān)控測試主界面Fig. 4 Main interface of monitoring test
通過點擊頁面上的用戶設(shè)置按鈕,可以設(shè)置用戶名、密碼的修改及新用戶的增加;手機(jī)短信號碼的修改及新手機(jī)號碼的增加;短信中心號碼更改;報警溫度設(shè)置,這些參數(shù)設(shè)置好后都保存在數(shù)據(jù)庫中。點擊用戶基本信息按鈕,可以查看用戶信息,及報警功能的開關(guān)狀態(tài)等。點擊歷史照片查看,會跳轉(zhuǎn)到,頁面首先顯示第一張照片,可以在查看照片的頁面上點擊上一張、下一張、返回主頁面按鈕。點擊歷史照片下載按鈕,歷史照片會以.tar.gz格式打包。點擊連拍按鈕,攝像頭會自動連續(xù)拍照5張并存儲。另外,在開發(fā)板上配置并開啟crontab定時服務(wù),實現(xiàn)歷史照片的定時刪除功能。
在測試報警功能時,先要點擊主頁面開報警功能按鈕,當(dāng)按下S5PC100開發(fā)板上的key1鍵,蜂鳴器響,指定手機(jī)收到報警短信,抓拍的照片可以通過點擊頁面歷史照片查看按鈕查看。通過點擊主頁面關(guān)閉當(dāng)前報警按鈕,關(guān)閉蜂鳴器。當(dāng)調(diào)節(jié)電壓協(xié)調(diào)器使模擬的溫度過高時,蜂鳴器響,指定手機(jī)收到報警短信,流水燈不斷閃爍模擬滅火。點擊報警日志查看報警記錄,效果如圖5所示。
圖5 報警日記效果圖Fig. 5 Demonstration of alarm log
以上提出的基于ARM的智能家居安防監(jiān)控系統(tǒng)的實現(xiàn)方案,有機(jī)結(jié)合了ARM高效的處理技術(shù)、GPRS可靠的遠(yuǎn)程數(shù)據(jù)傳輸技術(shù)、動態(tài)網(wǎng)頁設(shè)計等技術(shù),不僅實現(xiàn)了安防方面的迅速報警、記錄證據(jù)和遠(yuǎn)程監(jiān)控等功能,而且誤報率低、成本低。實驗證明,該系統(tǒng)運(yùn)行可靠,達(dá)到了遠(yuǎn)程監(jiān)控的要求。另外,本系統(tǒng)還需繼續(xù)改進(jìn),比如,將開發(fā)板上時間調(diào)整到標(biāo)準(zhǔn)時間;增加利用tftp實現(xiàn)遠(yuǎn)程更新應(yīng)用程序等功能。
[1] 王陸林,劉貴如,蔣朝根. 基于WLAN的嵌入式視頻監(jiān)控系統(tǒng)的研究與設(shè)計[J]. 安防科技,2008,1(5):24-27.WANG Lu-lin, LIU Gui-ru, JIANG Chao-gen. Research and design of embedded video monitoring system based on WLAN [J].Security and Safety Technology, 2008,1(5):24-27.
[2] 韋東山. 嵌入式Linux應(yīng)用開發(fā)完全手冊[M]. 人民郵電出版社,2008.
[3] Germany SIEMENS Com Co. V04.00.Siemens MC35i hardware interface Description [S].Berlin: Siemens Ltd,2003.
[4] 李建勇,伍光勝,劉艷中. 基于MC35i模塊的短信報警終端的設(shè)計[J]. 氣象水文海洋儀器,2012,1(1):53-56.LI Jian-yong,WU Guang-sheng,LIU yan-zhong.Design of SMS alarm terminal based on MC35i module [J].Meteorological,Hydrological and Marine Instruments,2012,1(1):53-56.
[5] 林曉飛. 嵌入式Linux應(yīng)用開發(fā)與實例教程[M]. 清華大學(xué)出版社,2007.
[6] 田澤. 嵌入式系統(tǒng)開發(fā)與應(yīng)用教程[M]. 北京航空航天大學(xué)出版社,2007.
[7] 余啟家,尹瑞祥. 基于ARM及GPRS的智能家居系統(tǒng)的實現(xiàn)[J]. 微型計算機(jī)信息(嵌入式與SOC),2007,23(7):119-121.YU Qi-jia, YIN Rui-xiang. The implementation of smart home system based on ARM and GPRS network [J]. Micro Computer Information (Embedded and SOC), 2007, 23(7):119-121.