?

基于GPRS與ARM的智能安防系統的設計與實現

2014-06-12 02:04董喜慧
通化師范學院學報 2014年12期
關鍵詞:彩信短信攝像頭

張 如,董喜慧

(福州職業技術學院 計算機系,福建 福州 350108)

隨著科技的迅猛發展和人們生活水平的提高,人類已經進入了網絡化、數字化的智能社會階段,人們對于保護自身財產與人身安全也有了新的要求.隨著人們生活節奏的不斷加快,迫切需要一種遠程智能安防系統,能讓出門在外的業主及時了解和處理物業中的突發安防事件,全面實現遠程監控,為自己的物業提供最全面的保護.針對現代安防的實際要求,本研究結合了功能強大的ARM處理器、GPRS無線通信技術、無線組網的ZigBee技術,設計了一套基于無線傳輸的嵌入式智能安防系統.

1 系統功能與體系結構

本系統擁有全面的防盜功能,能實現門、窗、陽臺等進出門戶的監控報警;實現火災與有毒氣體泄漏的檢測;實現重要地點或重要物品的監控保護,具有攝像頭抓拍功能;實現對某些特殊人員的人身安全的保護;實現積水報警;在出現火災時能對一些危險電器的電源實現遠程關閉;實現安全狀況的遠程實時查詢與報警.

本系統主要由兩部分組成:控制傳輸部分與內網采集部分.內網采集部分主要由安防監控模塊、ZigBee終端節點、ZigBee協調器組成;控制傳輸部分主要由ARM主處理器平臺、GPRS無線通信模塊、USB監控攝像頭等部分組成.系統結構圖如圖1所示.安防監控模塊由不同功能的傳感器處理模塊及電源開關繼電器控制模塊組成,它們各自連接一個ZigBee無線收發模塊.這些ZigBee終端節點會在ZigBee協調器開啟后陸續加入到協調器建立的ZigBee網絡中,并由協調器賦予各節點以網絡地址.這些節點通過ZigBee無線自組網與ARM主處理器平臺進行無線通信連接,ARM就可通過地址來判斷是何節點傳來的信號.ARM主處理器平臺同時連接USB監控攝像頭,當發生安全隱患時會對物業相關部位進行實時抓拍.ARM主處理器平臺可通過相連的GPRS模塊與業主手機進行遠程連接,實現安防系統的遠程監控.當物業出現安防問題時,ARM向業主發送短信并進行報警,控制攝像頭進行抓拍,并將圖像數據轉成彩信經由GPRS網絡發送給業主手機.當然,出現安全隱患時,業主也可通過手機發送控制短信來控制物業中電源設備的繼電器開關.

圖1 系統結構圖

2 系統硬件設計

本系統硬件主要由ARM主處理器平臺,USB紅外攝像頭,GPRS模塊,ZigBee無線收發模塊(協調器與終端節點)、安防監控模塊(各個傳感器模塊,以及繼電器控制模塊組成).

2.1 ARM主處理器平臺

ARM主處理器平臺主要由ARM11主處理器、FLASH、SDRAM、電源復位模塊、LCD觸摸屏及相關外圍電路組成.本系統選用SAMSUNG公司的基于ARM1176JZF-S 內核的16/32位RISC微處理器的S3C6410作為主處理器.S3C6410采用了64/32位內部總線架構,為2.5G和3G通信服務提供優化的H/W性能,具有4通道UART,為與ZigBee模塊和GPRS模塊通信提供了方便,支持修剪過的嵌入式操作系統,具有低功率、高性價比、高性能的優點[1].

2.2 GSM/ GPRS模塊

GPRS—General Packet Radio Service,是通用分組無線業務的簡稱,由歐洲電信協會GSM系統中有關分組數據所規定的標準[2].GPRS基于GSM網,提供端到端的、廣域的無線IP連接.GPRS以封包(Packet)式來傳輸,計費只以流量計算,提高了資源利用率,而且始終在線[2].在嵌入式系統的應用開發中使用GPRS無線數據傳輸技術是較優選擇.GPRS 模塊的功能是通過GPRS網絡實現ARM主處理器平臺與業主手機間的數據傳輸.經選擇,本系統選用SIMCom的SIM900模塊.SIM900屬于四頻850/900/1800/1900MHz的GSM/GPRS模塊,完全采用SMT封裝形式,支持數據、語音、短消息和傳真等多種通信方式,內置TCP/IP協議,具有MMS(彩信)功能.GPRS模塊與ARM主處理器平臺采用AT指令集通過串口進行數據通信.

2.3 ZigBee無線收發模塊

ZigBee無線收發模塊使用基于IEEE802.15.4協議的TI公司的CC2530芯片.系統采用一個ZigBee協調器節點與多個ZigBee終端節點組成的星形網絡結構.系統通過Z-Stack協議棧實現整個網絡的啟動自組,在網絡中協調器節點是整個網絡的管理者,它負責啟動整個網絡,將終端節點加入到網絡中,并為它們配置網絡地址.協調器節點與各終端節點間通過無線通信方式進行數據傳輸,而協調器與S3C6410間采用串口通信.終端節點將信息傳輸給協調器后,再由協調器傳到S3C6410,S3C6410會對接收到的信息進行解析,通過網絡地址判斷是哪個終端節點發送來的信息.

2.4 傳感器模塊

根據安防要求,系統要實現防火、防有毒氣體泄漏、防盜、防水淹等功能.根據不同的檢測內容設置不同的傳感器.為了提高檢測的準確度,本系統采用多種傳感器結合的方法進行某一種項目的檢測.

火災中會有煙霧與溫度的上升,因而由MQ2煙霧傳感器和數字型溫濕度傳感器SHT10組成檢測元件,兩者均檢測到信號時才確認有火災發生,這樣精確度較高.

有毒氣體泄漏檢測采用MQ5氣體傳感器,它對煤氣、天然氣、液化氣有較好靈敏度,抗乙醇、煙霧的干擾.

防盜方面的檢測主要根據不同環境來設置對應的傳感器.比如在窗戶處的防盜采用兩種傳感器進行雙保險感應.在窗戶外圍布置主動式紅外對射傳感器,主動式紅外對射傳感器可采用多束紅外線射束構成多束的密集防衛,可設定規定的若干射束被侵入者阻斷多少時間后產生報警輸出,它構成對窗、陽臺等出入口的封閉式防范,御賊于戶外但又不妨礙業主在室內的活動.對于盜賊可能通過砸玻璃進入室內的安全隱患,采用聲控——震動型雙技術玻璃破碎傳感器,只有同時探測到玻璃破碎時發出的高頻聲和敲玻璃時的震動才輸出報警信號,此類傳感器監測整個房間,與窗戶多少無關.當業主在外時,對于入戶門的安防工作,采用振動傳感器結合門磁傳感器對門進行安防感應.同時還可在室內安裝紅外感應器感應人員闖入,此感應器是靠探測人體發射的10um左右的紅外線進行感應報警的.

對于要求積水報警的場所,將點式水浸傳感器的探頭面平行安裝于被檢測的區域處,使水浸傳感器平行于地面.此傳感器是應用電極浸水阻值變化的原理來進行水浸檢測的,其探針有防電蝕設計.

3 系統軟件設計

3.1 系統軟件環境

Linux 操作系統具有完整的TCP/IP協議,有易于裁減移植、內核小、源代碼開放等優點,為本系統的開發提供了技術支持.本系統軟件設計主要是基于ARM-Linux操作系統,ARM-Linux是裁剪了的Linux 操作系統,基于ARM體系,易于移植[3-4].

建立本ARM系統的開發環境就是將ARM-Linux移植到ARM主處理器平臺,并搭建移植QT/Embedded環境.首先建立交叉編譯環境,然后引導Bootloader實現系統的快速引導,將Linux內核載到內存并進行內核初始化(系統采用的交叉編譯器為arm-linux-gcc-4.5.1,Linux內核版本為Linux-2.6.36,Bootloader采用U-boot.),移植操作系統,裝載文件系統[3-4].然后完成QT/E環境的搭建,將QT/E移植到ARM11上,開發圖形界面,進行應用程序的編寫[5].

3.2 系統主程序

系統主程序根據系統具體功能由多個功能子程序組成.子程序主要包括GPRS無線通信程序、圖像采集程序、ZigBee通信程序、各智能安防模塊程序、QT /E用戶界面等.系統主程序流程圖如圖2所示.

圖2 系統主程序流程圖

系統啟動時首先對S3C6410進行初始化,通過按鍵值來判斷運行狀態,當被定義為設防狀態時,分別建立ZigBee模塊和GPRS模塊的操作線程.首先S3C6410通過串口向ZigBee協調器發送查詢指令,由ZigBee協調器通過ZigBee無線網絡轉發給各終端節點,查詢ZigBee各終端節點的信息.終端節點將當前的采集數據通過ZigBee無線網絡經由協調器返回給S3C6410.S3C6410收到ZigBee信息后,對數據進行判析,若是普通信息,則在界面上實時顯示;若發生異常安防問題時,系統判斷是何種事件,則界面圖標閃爍,啟動對應的報警安防措施,并發送GPRS短信、GPRS彩信通知業主.若S3C6410收到GPRS短信,解析短信是否是控制短信,如果是則向ZigBee協調器發送控制命令,經由ZigBee無線網絡轉發給對應終端節點,最終實現對終端節點的遠程控制.

3.3 GPRS 模塊程序

GPRS 模塊程序設計主要結合函數調用AT指令實現串口初始化、GPRS模塊的初始化、網絡參數配置、短信收發和發送彩信等操作.

(1) GPRS模塊的初始化與模塊的短信收發.系統啟動時,通過調用Equipinit_sp()、Equipinit _gprs()等函數實現基本的初始化配置工作.S3C6410通過串口發送AT指令到GPRS模塊并讀取GPRS 模塊的回饋.S3C6410通過調用int sendgprs(int fd,char*s_buffer)函數發送AT命令到GPRS 模塊,并通過int readgprs (int fd,char*r_buffer)函數讀取GPRS模塊的數據.

系統通過AT指令實現短信接收與發送.當出現突發情況時,系統只要調用對應的AT指令即可完成短信的收發.當系統要向業主手機發送短信時,首先會向GPRS模塊發送“AT”命令,設備串口通訊正常會回饋“OK”后,再發送命令“AT+CSCA=SIM卡歸屬地短信中心號碼”及“AT+CMGF= 1(1表示為文本格式)”,均回饋“OK”后,再向GPRS模塊發送命令“AT+CMGS=業主手機號”,GPRS模塊將返回“>”,這時就可將要指定格式的短信內容輸入,發送成功后將返回“OK”,而業主手機上就能收到對應的短信.

對于接收短信的情況,先使用AT+CNMI=2,1設置接收短信的模式后,當GPRS模塊接收到業主手機發來的信息時,短信會存儲在SIM卡中,并通知串口有新消息:+CMTI:“SM”,6.系統得到提示后會向GPRS模塊發送讀短信命令“AT+CMGR =6”,GPRS模塊就返回指定格式的數據+CMGR: "REC UNREAD"," 手機號","","14/01/27,15:30:21+32"closepower1!.可以通過返回的數據得出短消息內容.然后ARM將根據收到的指令要求控制節點完成指定任務.

(2)彩信的發送.彩信的作用是當物業內發生突發情況時,啟動攝像頭進行抓拍,并將截圖以彩信形式發送到用戶手機.

當保存好的抓圖圖片需要通過GPRS模塊發送出去時,系統同樣調用對應的AT指令進行發送.發送AT+CMMSEDIT=1 、AT+CMMSDOWN="PIC",12836,40000 、AT+CMMSRECP="手機號"等指令,通知SIM900創建一條彩信及設置好彩信接收手機號并通知SIM900準備傳輸大小為12836字節的圖片.最后通過AT+CMMSSEND這條指令通知GPRS模塊可以發送這條彩信了.

3.4 圖像采集程序

Video for Linux Two(V4L2)是Linux為圖像視頻采集設備驅動程序的編寫提供的統一接口,本系統的USB攝像頭的圖像采集是基于V4L2實現的.攝像頭的文件名為/dev/video0,在程序中對文件video0進行讀操作就是對攝像頭的操作.系統通過ioctl給驅動發送命令、設置不同的參數,來實現采集過程.當ARM收到報警信息后,調用capture函數對USB攝像頭驅動并捕抓圖像.

(1)在capture函數中先調用int fd=open(“/dev/video0,O_RDWR|O_NONBLOCK,0)函數打開攝像頭,通過返回的文件描述符fd對攝像頭進行操作.

(2)通過 ioctl (int fd, VIDIOC_QUERYCAP, &cap) 查詢攝像頭屬性、配置和驅動功能;通過fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV; ioctl(fd, VIDIOC_S_FMT, &fmt)等設置捕獲格式.

(3)捕捉攝像頭數據,在V42L接口中設定應用程序與攝像頭驅動之間提取數據的交互方式為mmap映射方式.這種方式是驅動將內部數據空間映射到應用程序空間上,兩者直接在這個空間上交換數據.通過ioctl(fd, VIDIOC_REQBUFS, &req)為捕獲的視頻申請了req. count個緩存;通過buffers = calloc (req.count, sizeof (*buffers))在內存中建立對應空間;通過int ioctl(fd, VIDIOC_QUERYBUF, &buf) 獲取這些緩存的地址;用buffers[n_buffers].start = mmap(NULL, buf.length, PROT_READ | PROT_WRITE, MAP_SHARED, fd, buf.m.offset)將設備緩存和應用程序分配內存發生映射.

(4)ioctl(fd, VIDIOC_QBUF, &buf)將這段所映射緩存加入隊列,然后通過ioctl (fd, VIDIOC_STREAMON, &type)開始捕捉圖像數據,并進入循環.在循環中通過select函數判斷攝像頭是否可讀,如可讀則執行read_frame()函數讀取一幀數據.完成采集處理后,解除映射釋放內存源,關閉設備文件.

3.5 ZigBee通信程序與智能安防模塊程序

ZigBee通信程序設計基于ZStack2006 協議棧,由協調器和各終端節點兩大模塊設計組成.協調器負責ZigBee網絡的建立維護,啟動后的協調器初始化并按設好的參數構建ZigBee網絡,終端節點繼而申請入網,協調器分配網絡地址給終端節點,ZigBee網絡組建成功.ZigBee組網成功后,協調器進入ZigBee協議棧事件處理循環中,輪詢所有觸發事件后調用任務處理函數,無任務則休眠.觸發事件包括節點加入、查詢采集數據、向控制節點傳遞控制指令.ZigBee終端節點初始化后搜索網,申請入網成功后得到網絡地址.終端采集節點定時調用采集程序進行采集,并將信息發送給協調器,并由協調器發給ARM;控制節點在接到協調器轉來的控制命令后,調用對應控制程序對設備進行控制.

智能安防模塊程序的功能是完成數據采集或設備控制,其軟件開發必須根據各終端實際實現的功能進行設計,這里不再詳述.

4 測試與總結

當開啟設防后,依次對每個智能安防模塊進行測試.比如火災測試中,當MQ2煙霧傳感器感應到煙霧時,系統界面提示有煙霧,僅根據預設的應急處理程序自動做出對應處理,但并未觸動火災報警,這時將溫度傳感器加溫到較高溫度時,系統的火災報警被啟動,過一會兒在遠處的業主手機收到“Fire Alarm”;當物業出現水漫情況時,業主手機得到“Water Alarm”后,業主為了保證家里電器安全要及時切斷部分電器的電源時,可以向系統發短信“closepower1”,系統將指定電器連接的電源斷電;當人接近紅外感應器時,入侵警報啟動,攝像頭進行抓圖,遠處的業主手機得到報警短信并得到攝像截圖彩信;其他智能安防模塊均一一進行測試,都按系統要求完成報警操作.

本文設計了一種基于GPRS與ARM技術的智能安防系統,該系統應用ZigBee自組網技術組建了無線傳感網絡,實現了各安防終端模塊與ARM嵌入式網關的無線通信;利用GPRS技術實現了手機遠程監控安防系統.經測試,該系統能及時將安防系統的報警信息通過GPRS網絡傳輸到業主手機,實現了業主對安防系統的遠程實時監測,并能根據實際需要進行遠程控制.測試結果表明,該系統報警及時,誤報率低,擴展方便,操作性強,具有較廣闊的市場空間.

參考文獻:

[1]杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003:1-80.

[2]文志成.GPRS網絡技術[M].北京:電子工業出版社,2005:30-100.

[3]周立功.ARM嵌入式linux系統構建與驅動開發范例[M].北京:北京航空航天大學出版社,2006:110-218.

[4]韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2008:37-124.

[5]方雙蓮,李小力.基于ARM單片機的溫度控制系統的設計與實現[J].無線互聯科技,2014(5):66.

猜你喜歡
彩信短信攝像頭
浙江首試公路非現場執法新型攝像頭
攝像頭連接器可提供360°視角圖像
道歉短信
代發短信
奔馳360°攝像頭系統介紹
山東省氣象彩信平臺本地化設計與實現
FunMail.com:讓文字通信更有趣
“八一”節日短信之一
江蘇 大學生有了創業新平臺
找出攝像頭花屏的“罪魁禍首”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合