基于MQTT协议与开源硬件的智能监控系统*

2017-11-09 01:11,,,,
单片机与嵌入式系统应用 2017年10期
关键词:控制指令功能模块摄像头

,,,,

(深圳信息职业技术学院 计算机学院,深圳 518172)

基于MQTT协议与开源硬件的智能监控系统*

陈建刚,黄国伟,刘星明,丘晓彬,李子贤

(深圳信息职业技术学院 计算机学院,深圳 518172)

实现一种采用MQTT协议、通过安卓/iOS APP对基于开源硬件-WRTnode的移动智能监控设备(如智能设备,机器人等)进行远程控制的方案。采用开源MQTT服务器框架-mosquitto作为MQTT broker,通过APP发布控制指令主题,监控设备订阅该主题并根据控制指令执行操作,监控设备发布需要上报的监控数据主题,APP订阅该主题后将接收到监控数据。通过双向的发布-订阅模式,实现多功能智能监控过程。

WRTnode;MQTT; 发布-订阅;监控设备

引 言

当前市面上的智能监控大都是固定式放置,监测方式为摄像头的视频监控和移动侦测,监控手段较单一,不能满足移动安防应用需求,尤其是在厂矿、商场等大型空旷场所。本文通过在移动设备上设计多功能监控方式,包括移动侦测、检测到覆盖区域有WiFi探针信号、人体红外感应等,从而比已有设备监控手段更丰富、更实用。另外,还可将MQTT运用于多功能监控设备,实现智能手机APP与移动监控设备的远程双向通信过程。

1 多功能智能监控设备设计

通过在购买的WiFi设备的基础上实现多功能智能监控设备[7],设备结构如图1所示,硬件部分由WRTnode[8]主控板、视频监控摄像头及云台、Arduino单片机及扩展板、无线充电模块、设备控制模块、传感器数据采集模块所组成。实现的监控功能包括:

图1 多功能智能监控设备结构

① 视频监控/移动侦测。通过WRTnode的mjpg-streamer软件包实现视频监控功能,将摄像头产生的帧通过其output_file模块发布出去。通过motion软件包实现移动侦测功能,当监控设备处于静止状态,摄像头检测到移动物体时生成图片。

② WiFi探针。在WRTnode中移植开源无线驱动,通过iwcap软件包提取移动终端主动发出的WiFi探针信号中的mac地址和信号强度(RSSI)。这样,若有人携带手机并开启了WiFi功能,就能被监控设备探测到,生成WiFi探针报警消息。

③ 红外热释电感应。通过Arduino外接人体红外热释电传感器,人体靠近时触发感应,生成红外热释电报警消息。

通过上述多种不同类型的监控方式,增加监控的准确度。另外设备还可以搭建温湿度传感器,用来检测环境的温湿度数据。设计的监控设备实物图如图2所示。

图2 多功能智能监控设备实物图

2 MQTT交互设计

上述监控方式产生的监测数据通过MQTT协议推送消息给监控设备的用户手机。MQTT协议定义完善的通信方式,包括QoS、安全认证等,用户只需专注于应用实现。由于采用发布-订阅模式,数据分发方式多样化,可以是一对一或一对多等, 相比请求-响应模式,更能满足物联网应用需求,如监控数据可以上报给多个订阅的用户。主题(topic)是MQTT用来标识已发布消息的信息渠道,采用分层结构,用斜线“/”作为分隔符。定义了两种通配符:“#”和“+”, “#”通配多层结构,而“+”只能通配一层结构。

采用MQTT的多功能监控系统交互过程如图3所示,实现了与监控设备配套的手机APP,主要功能包括控制设备移动和接收监控数据等,在阿里云上采用开源Mosquitto搭建MQTT broker,作为手机APP与监控设备之间发布-订阅控制指令及上传监控数据的中间件。手机APP和监控设备作为MQTT客户端,都先与MQTT broker建立连接, 手机APP将控制指令发布到指定主题,监控设备订阅相应主题以获得控制指令,并根据指令执行操作。而监控设备产生的监控数据同样发布到指定主题,手机APP则订阅该主题获得监控数据。

图3 多功能监控系统交互过程

Mosquitto通过订阅树机制管理所有主题及客户端对主题的订阅关系[9],订阅树采用二叉树结构,使用孩子兄弟链表法进行二叉树节点存储,Mosquitto根据MQTT协议所定义的主题格式,将主题根据“/”分割并组织成一棵二叉树,从根节点沿着连线到树中的任意一节点即组成该节点所对应的主题,每个节点都保存一个订阅列表,该订阅列表中保存了所有订阅当前主题的客户端信息。

监控设备启动后即订阅由APP发布的控制指令主题,控制指令内容需要包含控制的功能模块及执行动作,如对于控制设备行径,控制功能模块名称为设备,执行动作为前/后/左/右/停。另外考虑到设备和APP的绑定关系,控制指令中需要带有设备标识,用于区分控制不同的设备,由于设备的主控板WRTnode为智能无线路由设备,需要通过WiFi中继到上级路由(上级路由可为无线AP,如家居的无线网关,在野外使用时可配带4G路由作为上级路由),WRTnode的BSSID各不同,采用各设备的BSSID作为设备标识。因而APP控制指令的内容为:设备标识->功能模块->动作。所定义的具体控制指令内容如图4所示。对应的功能模块含义如表1所列。

图4 定义的具体控制指令内容

由于用户发布的控制指令针对的订阅者(监控设备)是唯一的,为降低MQTT broker维护订阅树的开销,从APP到监控设备的发布-订阅过程采用以BSSID倒序值为主题,将功能模块及执行动作为对应主题的消息体(payload),消息体以json格式组织,方便后续功能扩展。

如开启移动侦测功能,消息体内容为:

{"model":"Motion","action":"on"}

图6 APP操作界面演示

操作APP界面中对应按钮将通过MQTT协议组织上述消息内容发布出相应控制指令。

采用Mosquitto的openwrt版本在主控板WRTnode实现MQTT客户端功能,订阅APP发布的主题,解析payload内容,根据消息体中的功能模块和动作执行操作,如开启移动侦测功能等。WRTnode执行订阅控制指令主题的命令为:

mosquitto_sub-t BSSID倒序值-h MQTT broker 的IP地址

对于有数据上报的功能模块,包括温湿度上报、WiFi探针探测到的mac地址和RSSI,移动侦测产生的图片、视频监控的画面等。设备需要将生成的监控等数据进行发布,仍然采用发布-订阅模式,设备发布的主题为BSSID/功能模块,消息体内容为需要上报的数据。WRTnode执行发布数据主题的命令为:

mosquitto_pub-t BSSID/功能模块-h MQTT broker的IP地址-m 上报的数据内容

MQTT broker 的Mosquitto根据设备发布的主题消息,根据“/”分割成主题片段,沿着订阅树的二叉树结构检测各主题片段是否存在,若不存在则创建节点存放该主题片段。

图5 有数据上报时 生成的订阅树

APP在发布有数据上报的功能模块的控制指令时,同时订阅该控制指令所对应的主题——BSSID/功能模块,如开启移动侦测功能则订阅主题为:BSSID/Motion。MQTT broker 的Mosquitto在收到订阅请求后,根据主题将该客户端挂到订阅树上对应节点的订阅列表中,若不存在客户端所订阅的主题,则会自动添加相应节点,最终创建的订阅树如图5所示。

3 功能实现

实现的APP控制界面功能如图6所示,用户点击界面中各控制按钮发布主题为BSSID倒序值,参数为功能模块+动作的控制指令,设备收到指令后执行对应操作。对于需要上报数据的指令,设备发布BSSID/功能模块,参数为上报数据的消息,通过MQTT broker中转后推送在手机的消息栏,用户可以查看监控数据。另外,点击“远程监控”将打开设备的摄像头并订阅摄像头图片主题,接收到图片后就显示在图片框中。点击“方向控制”将跳转到控制界面,用户可通过“设备行径”和“摄像头方向”控件,分别控制设备的方向行走(前/后/左/右/停)和摄像头的旋转(上/下/左/右/居中)。

结 语

[1] 许金喜, 张新有.Android平台基于MQTT协议的推送机制[J].计算机系统应用,2015, 24(1):185-190.

[2] 秦利红,秦会斌,诸坚彬,等.基于Android平台智能家居客户端的设计与实现[J].计算机应用与软件,2016,33(9):88-91.

[3] 胡晓喻, 陈庆奎.智能家居接入服务器策略的设计与实现[J].计算机工程与设计,2017, 38(2):544-549.

[4] 王君君, 董静,伊铜川,等.移动终端的设施农业物联网环境监控系统设计[J].传感器与微系统,2016,35(8):87-89.

[5] 孟濬, 张贤华,颜文俊.基于智能手机传感网的室内老年监护系统平台 [J].计算机应用研究,2017,34(4):1084-1088.

[6] 孙燕芹,马兴录,郭孔跃.基于MQTT协议的在线离子色谱仪远程监控系统设计[J].计算机测量与控制,2017,25(4):251-253.

[7] 陈建刚,纪嘉铭,叶森,等. 采用WRTnode开源硬件实现多功能智能小车[J]. 单片机与嵌入式系统应用, 2016, 16(3): 34-36.

[8] 曾昂, 李宁,严俊.Mosquitto大文件传输方式的研究与改进[J].计算机工程与应用,2017, 53(4):123-127.

IntelligentMonitoringSystemBasedonMQTTProtocolandOpen-sourceHardware

ChenJiangang,HuangGuowei,LiuXingming,QiuXiaobin,LiZixian

(Dep of Computer Applications,Shenzhen Institute of Information Technology,Shenzhen 518172,China)

The remote control scheme between Android/iOS APP and mobile intelligent monitoring device(such as the smart device,robot) is achieved with MQTT protocol.The open-source MQTT server framework(mosquito) is used as MQTT broker.APP publishes the topic of control instruction.The monitoring device subscribes to the topic and performs the operations according to the control instructions.The monitoring device publishes the topic of the monitoring data that need to report,APP subscribes to the subject and receives monitoring data.Through the two-way publish-subscribe mode,the multi-functional intelligent monitoring process is realized.

WRTnode;MQTT;publish-subscribe;monitoring device

深圳市2016年市创客专项资金个人创客项目(GRCK2016033010181365);深圳市2015年市创客专项资金学生创客项目(GRCK2015092914140517);深圳市2016年科技计划基础研究项目(JCYJ2016030710153)。

TP39/TP312

A

2017-07-10)

猜你喜欢
控制指令功能模块摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
城轨车辆控制指令试验装置研制
宏指令控制的多轴系统研究及实现
基于ASP.NET标准的采购管理系统研究
高速公路隧道通风、照明联动控制方案探讨
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
奔驰360°摄像头系统介绍
功能模块的设计与应用研究