APP下载

采用开源路由器实现多功能智能监控报警系统

2016-11-25陈建刚陈伟蔡鸿鑫谭国龙

电脑知识与技术 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].

猜你喜欢

微信公众号
新闻类微信公众号的新闻传播价值探析
江苏生鲜产品微信公众号营销问题及对策研究
微信公众号在高校“Photoshop图像处理”课程中的应用