?

采用開源路由器實現多功能智能監控報警系統

2016-11-25 00:00陳建剛陳偉蔡鴻鑫譚國龍
電腦知識與技術 2016年26期
關鍵詞:微信公眾號

陳建剛++陳偉++蔡鴻鑫++譚國龍++林加群

摘要:基于WRTnode開源智能路由器技術實現多功能智能監控報警系統,監控方式包括移動偵測和用戶源wifi探針信號檢測,能夠將監控結果發送給綁定該系統的關注微信公眾號的特定用戶,并產生報警信息,用戶通過報警信息能登錄平臺查詢監測結果,包括查看報警圖像、wifi探針的MAC地址及信號強度變化等。

關鍵詞:WRTnode; 微信公眾號; 移動偵測; wifi探針

中圖分類號:TP39/TP312 文獻標識碼:A 文章編號:1009-3044(2016)26-0221-03

Multi-function Intelligent Monitoring and Warning System Based on Open-Source Router

CHEN Jian-gang1,CHEN Wei2 , CAI Hong-xin1,TAN Guo-long1, LIN Jia-qun1

(1.Dep of Computer Applications, Shenzhen Institute of Information Technology, Shenzhen 518172, China;2.Shenzhen Qing Luan Software Technology Co. Ltd. Shenzhen 518000, China)

Abstract: The multi-functional intelligent monitoring system including motion detection and WiFi probe signal detection is implement,based on WRTnode -open source intelligence router technology.The system can send monitoring result to Cloud platform. The platform will generate an alarm information to specific user who is bound with the WRTnode device through WeChat Public Platform.The user can login platform through the alarm information to query monitoring results, including alarming image, WiFi probe of MAC address and signal intensity changes.

Key words: WRTnode; WeChat Public Platform; motion detection; WiFi Probe

1 引言

當前智能監控有多種實現技術[1,2] ,智能監控系統也有多個品牌,比較著名的包括螢石,小米,360,小蟻等,功能和市場都很成熟,這類產品在物聯網和智能家居概念下需求量大。但這些廠商都是基于攝像頭實現的視頻監控和移動偵測功能,而攝像頭的監控范圍受限,不能偵測到攝像頭可視范圍外部信息。

WRTnode[3]是一款由北京豌豆機器小組發布的基于OpenWrt開源路由器系統的開源硬件,WRTnode引出芯片所有接口,能方便的連接和驅動USB設備,比如攝像頭、聲卡,能夠實現無線中繼功能,其強大的網絡交互能力,加上功耗低、性價比高、計算能力強等一系列優勢,一面市就受到廣泛關注,作為物聯網硬件平臺大有可為。

本文采用WRTnode作為主控板掛載usb攝像頭,利用WRTnode的無線中繼功能,實現移動偵測功能外,還實現用戶源wifi探針信號檢測的監控手段,通過這兩種監控手段互補,能夠進一步鎖定監控目標。所監控信息通過阿里云平臺推送給公眾號的綁定用戶,從而實現完整的多功能監控系統。

2 系統設計

本系統由多功能智能監控設備、管理平臺、微信公眾號組成。其中多功能智能監控設備負責產生監控數據,并上傳給管理平臺,而管理平臺作為多功能監控系統微信公眾號的第三方服務器,產生報警消息并通過公眾號推送給與該監控設備綁定的用戶。用戶收到報警消息后可在公眾號中打開消息鏈接,查看對應的監控數據。監控系統的交互過程如圖1所示。下面對系統所涉及的功能模塊的設計實現進行展開論述。

2.1 多功能智能監控設備

如圖2所示,多功能智能監控設備由WRTnode和攝像頭組成,其中WRTnode需要實現的功能模塊包括:

1)移動偵測功能

移動偵測允許在指定區域識別圖像的變化,檢測運動物體的存在。Openwrt的motion插件可用于移動偵測功能,借助于motion插件能實現當攝像頭中的監控畫面有變化時,自動拍照保存。實現方式為[4]:

在安裝好motion插件后,對配置文件motion.conf中的on_picture_save屬性進行設置:on_picture_save /root/uppic.sh %f 該配置項含義為發生移動偵測后motion產生拍照行為并執行腳本uppic.sh,該腳本文件通過curl命令以post方式向云平臺(如阿里云服務器)上傳發生移動偵測時所生成的圖片文件。在云平臺中保存圖片,方便后續報警圖片管理。啟用motion的命令為:

root@OpenWrt:~# motion -c /etc/motion.conf

2)Wifi探針功能

工作站(STA)啟動開啟wifi功能后,要經過三個階段才能接入無線接入點AP(AccessPoint):掃描階段(SCAN)、認證階段 (Authentication)、關聯(Association),如下圖3所示:

在掃描階段,STA一般會發起主動掃描,不斷地向周圍發出probe request請求包,搜索AP并進行后續接入過程。在AP端采用工作于monitor模式的無線網卡來檢測周圍STA的wifi通信消息,捕捉到其中的probe request數據包,并提取出其中的MAC地址和信號強度,進行下一步分析。

目前wifi探針由于能夠檢測到用戶手機的mac地址等信息,被應用于商家收集用戶信息并分析人流量。我們將wifi探針用于監控周邊用戶,結合移動偵測形成多功能監測效果。實現方式為:

1) 通過openwrt自帶的iw工具創建 一個處于monitor模式的虛網卡;

2) 在iwcap插件的源代碼中增加抓取特定的probe request數據包,并截取包中的源MAC地址和信號強度數據,將這些數據作為參數傳遞給shell腳本,該腳本通過curl將抓取的數據上傳給阿里云服務器。

3) 通過如下腳本[5]啟動wifi探針功能:

#!/bin/sh

grep -q mon0 /proc/net/dev || /usr/sbin/iw phy phy0 interface add mon0 type monitor

/sbin/ifconfig mon0 up

/usr/sbin/iwcap -i mon0 -o aa -f -P

其中-P參數表示用于啟用抓取源MAC地址和信號強度數據功能。

4)無線中繼功能

WRTnode除了開啟自身wifi形成AP搜集wifi探針信號,還需要中繼到無線網關wifi信號,使得能夠將捕獲到的wifi探針信號和移動偵測的報警圖片上傳給云平臺。

無線中繼功能實現以WRTnode為STA(客戶端),接入上一級無線路由器。通過增加wifi-iface實現[4],增加后系統就有兩個wifi-iface配置,一個提供wifi供設備接入,另一個用來中繼上一級路由。

主要實施步驟為:

1)增加wwan接口。

2)確定需要無線中繼的上一級wifi信息,包括ssid,mac和加密方式等,在WRTnode中可通過iwinfo命令搜索到。

3)修改配置文件/etc/config/wireless,增加需要中繼的上一級路由的wifi信息屬性

4)重啟openwrt系統的wifi,就能中繼到上一級路由。

2.2 云平臺及微信公眾號功能

1)生成監控設備的帶參數二維碼

微信公眾平臺[6]提供了生成帶參數二維碼的接口,使用該接口可以獲得多個帶不同場景值的二維碼,用戶掃描后,公眾號可以接收到事件推送。由于WRTnode中的BSSID值(48bit)即路由器無線MAC地址各不相同,因而以該BSSID值作為設備標識參數,用來生成帶有該參數的二維碼。根據公眾號帶參數二維碼實現接口,以json格式定義:

$qrcode = {"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "Car0164:51:7E:80:19:4B"}}};

調用url:https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN

獲取生成的二維碼ticket,再使用該ticket調用url:

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

生成對應的二維碼圖片。

2)用戶掃描帶參數二維碼即完成用戶openid與設備的綁定關系

掃描上述二維碼圖片時,根據用戶關注公眾號情況,會推送以下兩種事件[6]:

如果用戶還未關注公眾號,則用戶可以關注公眾號,關注后微信會將帶場景值關注事件推送給開發者。

如果用戶已經關注公眾號,在用戶掃描后會自動進入會話,微信也會將帶場景值掃描事件推送給開發者。

在此,將用戶的openid和二維碼中的參數提取出來,并寫入對應的數據庫表項中,將關注該公眾號的用戶openid和設備的無線MAC地址進行綁定,這樣后續設備發生監控報警事件時就能夠將報警消息推送給綁定用戶。用戶掃描帶設備參數二維碼后的綁定信息如圖4所示。

3)制作監控報警的模板消息

模板消息僅用于公眾號向用戶發送重要的服務通知,只能用于符合其要求的服務場景中,如信用卡刷卡通知,商品購買成功通知等。在微信公眾平臺的模板庫中有一類監控報警消息,我們采用該模板制作了系統所需的監控報警消息,如圖5所示。

發送模板消息的接口為https://api.weixin.qq.com/cgi-bin/message/template/send? access_token=ACCESS_TOKEN。啟動設備后,若WRTnode檢測到攝像頭有移動偵測發生或者是檢測到wifi探針信號,就會把移動偵測產生的圖片和WiFi探針信號中的mac地址和rssi發送給云平臺,云平臺將根據該模板消息格式組裝對應的監控報警消息,包括監控報警類型:移動偵測或wifi探針觸發的報警、報警產生的時間等。并通過微信公眾號推送報警消息給綁定的用戶,這樣用戶微信就能及時收到該報警消息,產生的報警消息如圖6所示。

4)報警信息展示

用戶收到報警消息后,可打開消息鏈接查看報警數據。由于報警圖片的數據量大,在平臺根據報警日期通過文件進行分類保存,而對于WiFi探針上報的mac地址和對應的rssi則保存在mysql數據庫中。采用jquery+bootstrap搭建wifi探針報警顯示和移動偵測的報警圖片顯示,如圖7所示,移動偵測報警上面一欄顯示當前報警圖片,下面一欄通過輪播的方式顯示當前日期的報警圖片。Wifi探針報警消息則根據日期查詢方式顯示符合時間段的wifi探針報警數據。

3 結論

本文采用開源的openwrt系統-WRTnode搭建多功能智能監控系統,實現移動偵測和wifi探針報警功能,報警數據上傳到云平臺存儲并將報警消息推送給微信公眾號與該設備綁定的用戶。本系統除了滿足當前市面上的監控設備功能外,還增加了wifi探針的監控報警功能,具有一定的新穎性。下一步將實現把WRTnode監控設備搭建在智能小車上,實現可通過APP控制的可移動多功能監控系統。

參考文獻:

[1]黃凱奇,陳曉棠,康運鋒,譚鐵牛.智能視頻監控技術綜述[J].計算機學報,2015(6).

[2]羅回彬,巫敏鋒. 基于WiFi的可實時視頻同傳的探測設備[J].單片機與嵌入式系統應用,2015(6).

[3]wrtnode官網.http://wrtnode.cc/[EB/OL].

[4]陳建剛,紀嘉銘,葉森,等. 采用WRTnode開源硬件實現多功能智能小車[J].單片機與嵌入式系統應用, 2016,16(3):34-36.

[5]wifi無線指標提取 http://bluedream.me/post/ji-zhu/wifi_wireless#content [EB/OL].

[6]微信公眾平臺開發者文檔 http://mp.weixin.qq.com/wiki/home/ [EB/OL].

猜你喜歡
微信公眾號
新聞類微信公眾號的新聞傳播價值探析
江蘇生鮮產品微信公眾號營銷問題及對策研究
微信公眾號在高?!癙hotoshop圖像處理”課程中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合