本文介紹了一種以ARM嵌入式開發板為核心、融合因特網通信和GPRS無線通信技術的,智能家居安防監控系統,給出了系統的功能和結構以及硬件原理框圖和軟件設計思路。該系統由傳感器采集信號,攝像頭采集圖像,經ARM開發板處理后,利用因特網和GPRS模塊傳輸到遠程的監控中心。使用Boa嵌入式Web服務器和SOLite數據庫搭建遠程監控系統,用戶通過點擊網頁上的按鈕遠程發送控制命令。實驗測試表明,該系統不僅有效地實現了快速報警、遠程監控功能,還實現的圖像的抓拍、打包下載等功能,滿足遠程監控的設計要求。
伴隨著數字化和網絡化的進程,智能化的浪潮席卷了世界的每一個角落,成為一種勢不可擋的歷史化大趨勢。面對當前犯罪分子作案手段日趨技能化、智能化、團伙化和暴力化的勢態,單靠傳統的“人防”一種途徑已遠不能適應新形式下斗爭的需要。
新型的安防監控系統利用安置在家中的不同功能的傳感器采集各類環境參數,傳輸到上位機,利用信息管理軟件進行數據存儲、顯示、分析處理等操作,對異常情況進行報警,并根據預置控制策略自動處理,及時消除安全隱患。
隨著網絡通訊技術及圖像壓縮處理技術以及傳輸技術的快速發展,使得家庭能夠采用最新的通訊和圖像處理技術,通過網絡傳輸數字圖像,可為實現家庭監控系統提供高效可行而且價格低廉的解決方案。
因此,開發和推廣遠程安防監控系統,使得人們在可以繁忙工作的同時,在遠程就了解自己家庭概況,及時做出分析與判斷,具有非常重要的實際意義。
1系統功能及總體結構設計
1.1系統實現的功能
該系統主要是針對家庭用戶而設計的,對家居的安全狀況進行監控。用戶可以根據自己需要進行用戶基本信息及監控狀態、監控參數等的設置。系統實現了以下功能:
1)用戶設置:可以在監控主頁面點擊用戶設置按鈕,設置登錄界面的用戶名、密碼;修改或新增接收告警信息的手機號碼、變更短信中心號碼、設置火災溫度上限。
2)家居安全狀況遠程實時監控與查詢:主人外出,可通過手機或其他聯網設備通過瀏覽網頁來查看家中的安全狀況。
同時主人可以點擊網頁上的相關按鈕,遠程發送控制命令。
3)家居安防監控:當小偷闖入住宅或有火災等違紀事件發生時,監控終端能實時地監測到險情,并自動采取相應處理措施,同時向監控中心發送告警信息,監控中心則以GSM短信的方式通知戶主。
4)現場圖像抓拍功能:在設防狀態下,當紅外傳感器或者門磁觸發告警時,攝像頭將自動抓拍圖像,通過在ARM開發板上搭建的MGPJ—Streamer服務器處理圖像,并以流的方式將圖像保存到SQLite數據庫中。
5)歷史照片的打包下載和定時刪除:為方便查看和快速傳輸歷史照片,所以將歷史照片以.tar.gz格式進行打包壓縮,同時為保證存儲空間的充裕,所以提供定時刪除過去一段時間的照片。
1.2系統總體結構
該系統以FS_S5PC100開發板和Linux操作系統作為實驗平臺,主要立足互聯網,采用攝像機采集圖像,經壓縮處理后傳到互聯網,遠端用戶可以通過瀏覽網頁或手機上網直接查看家中情況。利用市場上比較通用的GPRS模塊收發信息,利用Linux內核中的PPP撥號上網的方式;使用嵌入式Linux操作系統,通過交叉編譯模式,使用C語言編寫移植驅動和控制程序,并在Linux系統中搭建視頻服務器、WEB服務器和SQLite數據庫。系統的總體設計框架如圖1所示,整個系統分為以下3個模塊:
1)輸入模塊:包括兩類,一是監測參數的采集模塊,即火災的溫度采集模塊、防盜的攝像頭監測模塊,采集并無線發送監測參數;二是實現控制的模塊,即Internet或手機通過網絡實現對整個監測系統的用戶信息及監控參數的設置、監測參數的查詢、顯示及設防、撤防等控制指令下發;
2)處理模塊:以ARM開發板為核心的主控板,接收由輸入模塊采集的數據,并進行邏輯判斷,如果有異常發生,通知輸出模塊做出相應的處理;同時也能根據網頁上發送過來的各種設置和控制指令,然后調用相應的處理函數;
3)輸出模塊:解析處理模塊發出的信號,實施相應的異常處理措施;如果溫度傳感器測得的溫度高于預先設定的溫度或者紅外傳感器探測到有不法分子闖入,那么開啟相應的聲光報警和對應的異常處理,通過控制攝像頭來捕捉圖片,然后進行圖像處理并將數據保存在SQLite數據庫中。并通過GPRS模塊發送告警短信通知用戶家居現場情況,用戶根據具體情況點擊網頁上對應按鈕發送命令給系統,完成一個遠程監控的任務。
2系統硬件設計
根據系統的總體架構,分析遠程安防監控系統功能上的需求,得知相應的硬件需求如表1所示。
處理模塊處在系統中間層,既要處理輸入模塊采集的數據,又要控制輸出模塊的相應處理,同時還得與遠程監控中心進行數據交互,這就要求其具有較強的數據處理能力。基于此考慮,本系統選用了基于Samsllng公司的Cotex_A8內核的FS_S5PC100作為實驗平臺。考慮到市場的普及度與可靠性的要求,GPRS模塊選用SIEMENS公司的TC35i/MC35,該模塊內嵌強大的TCP/IP協議棧,低功耗,增強的AT控制指令。由于具體的硬件設計電路圖比較繁雜,在此給出系統硬件實現框圖,如圖2所示。
3系統軟件設計
系統軟件實現主要包括:S5PC100軟件編程,監控頁面的編程兩大部分,在此只介紹S5PC100微控制器的軟件編程部分。
3.1系統移植與驅動設計思想
考慮到系統的穩定性和可靠性,在S5PC100上采用Linux嵌入式實時操作系統,與傳統的實時操作系統(RTOS)相比,采用嵌入式Linux這樣的開放源碼的操作系統的另外一個好處是Linux開發團體看來會比RTOS的供應商更快地支持新的IP協議和其它協議。例如,用于Linux的設備驅動程序要比用于商業操作系統的設備驅動程序多,如網絡接口卡(NIC)驅動程序以及并口和串口驅動程序。
各種設備由于功能不同,驅動程序提供的函數接口也不相同,但Linux為能夠統一管理,規定了Linux下設備驅動程序必須使用統一的接口函數file_operations。根據功能填充對應的file_operations中的接口函數。為便于開機啟動,統一地將驅動程序靜態編譯到內核。
另外,涉及設備節點的創建,選擇了udev機制來自動創建設備節點,具體步驟如下:
1)在一開始定義一個類class,再在類下面定義一個設備class_dev;2)xx_init()函數中,使用class_creat()和device_creat()創建設備節點;3)xx_exit()函數中,使用class_destory()卸載設備節點。其中,設備號的選擇,通過查詢內核中Documents/device.txt選用空閑的設備號,當然也可以用major=register_chrdev(0,"name",&file_operation)自動生成。
3.2串口通信程序設計
系統的主要功能是實現家居環境參數的采集、上傳和監控頁面控制命令的下發,所以數據傳輸是整個應用程序的關鍵部分,即S5PC100與GPRS模塊的串口通信程序的設計。
在定義與串口相關寄存器地址的基礎上,以結構體構造新的串口數據類型,結構體成員為函數指針,它們指向編寫的具體實現函數,而函數體中的數據直接操作串口寄存器,實現了串口驅動程序,實際上就是上面驅動程序思想,填充對應的file_operations中的接口函數,實現我們自己的驅動程序。以下是實現串口數據類型的主要源代碼:
串口采用中斷方式接收數據,提高了串口數據處理的實時性和整個CPU的工作效率。具體來說,S5PC100的串口1收到輸入模塊發送的家居環境參數,進行邏輯判斷,結合輸出模塊處理后,傳輸到監控頁面,實現數據的上傳;S5PC100的串口1收到監控頁面發送的指令后,調用相應的處理函數,把指令同步到各個模塊,實現數據的下發。
3.3Web服務器的搭建
為方便用戶通過internet或GPRS網絡接入互聯網,遠程監控家里情況,提供遠程Web服務。本模塊主要包括2個部分:
1)BOA服務器模塊設計:在嵌入式系統中移植BOA服務器,提供Web服務;
2)cgi模塊詳細設計:根據監控頁面上的不同按鈕,發送不同信息給S5PC100,S5PC100調用相應的處理函數,執行網頁按鈕相應功能。
3.4應用程序整體設計
在搭建好系統環境,成功移植硬件驅動后,在Ubuntul2.04上Linux2.6內核環境下進行程序的開發調試。系統中主要的進程,包括3個線程等待控制命令,在代碼中采用輪詢的形式來對線程狀況進行檢測,發生問題的時候進行相應得處理,用戶可通過網絡訪問本系統并遠程進行控制操作。調用了兩個線程分別操作thief處理線程和fire處理線程。thief線程和fire線程分別調用GPRS模塊和攝像頭模塊進行短消息的發送和圖像的采集及保存。同時調用FS_S5PC100開發板自帶的,蜂鳴器模塊和LED模塊實現報警,另外利用流水燈模擬滅火的操作。具體框架如圖3所示。
輸入模塊和輸出模塊也是分別創建線程處理不同的任務,模塊之間通信選用了消息隊列,對于共享資源采用了互斥鎖和條件變量,保證資源的共享和原子操作。
4測試結果
整個系統在實驗室環境下進行了測試,利用S5PC100開發板上自帶的按鍵key1模擬外人闖入,按鍵key2模擬主人進入,溫度的采集使用了LM75溫度傳感器采集,同時為便于調試我們同時也利用ADC來模擬溫度變化。整個監控界面效果圖如圖4所示。
通過點擊頁面上的用戶設置按鈕,可以設置用戶名、密碼的修改及新用戶的增加;手機短信號碼的修改及新手機號碼的增加;短信中心號碼更改;報警溫度設置,這些參數設置好后都保存在數據庫中。點擊用戶基本信息按鈕,可以查看用戶信息,及報警功能的開關狀態等。點擊歷史照片查看,會跳轉到,頁面首先顯示第一張照片,可以在查看照片的頁面上點擊上一張、下一張、返回主頁面按鈕。點擊歷史照片下載按鈕,歷史照片會以_tar.gz格式打包。點擊連拍按鈕,攝像頭會自動連續拍照5張并存儲。另外,在開發板上配置并開啟crontab定時服務,實現歷史照片的定時刪除功能。
在測試報警功能時,先要點擊主頁面開報警功能按鈕,當按下S5PC100開發板上的key1鍵,蜂鳴器響,指定手機收到報警短信,抓拍的照片可以通過點擊頁面歷史照片查看按鈕查看。通過點擊主頁面關閉當前報警按鈕,關閉蜂鳴器。當調節電壓協調器使模擬的溫度過高時,蜂鳴器響,指定手機收到報警短信,流水燈不斷閃爍模擬滅火。點擊報警日志查看報警記錄,效果如圖5所示。
5結論
以上提出的基于ARM的智能家居安防監控系統的實現方案,有機結合了ARM高效的處理技術、GPRS可靠的遠程數據傳輸技術、動態網頁設計等技術,不僅實現了安防方面的迅速報警、記錄證據和遠程監控等功能,而且誤報率低、成本低。實驗證明,該系統運行可靠,達到了遠程監控的要求。另外,本系統還需繼續改進,比如,將開發板上時間調整到標準時間;增加利用tftp實現遠程更新應用程序等功能。
(審核編輯: 小王子)
分享