一种基于物联网协议的中继型智能插座软硬件设计与实现

2018-03-24 09:36邓维蒋喆刘洪林
物联网技术 2018年3期

邓维 蒋喆 刘洪林

摘 要:由于RF功率较小,发射距离较近,因此RF无线智能燃气表信息采集需要行业技术人员采用专用抄表或专用设备进行,为了适应智慧厨房的需要,文中设计了一款集成了RF和WiFi网络功能的智能插座。RF用于与RF智能燃气表进行信息交换与控制,WiFi适用于远程数据传输与控制。为了解决智能插座与服务器端的通信问题,并减少带宽的使用时间,文中特采用MQTT消息队列遥测传输协议。该协议是一个基于代理发布/订阅消息的轻量级传输协议,同时也是为计算能力有限,且工作在低带宽、不可靠网络的远程传感器和控制设备通信而設计的协议。文中就智能插座的硬件设计思路及MQTT协议的应用方法做了简单介绍。

关键词:MQTT协议;智能燃气表;RF;WiFi;智能插座

中图分类号:TP39;TN6;TN8 文献标识码:A 文章编号:2095-1302(2018)03-00-02

0 引 言

随着智能家居概念的兴起,市场上出现了越来越多的智能电器产品,从智能家电到智能插座,所有这些都使得现代生活耳目一新,并越来越方便人们的日常生活。

近年来,智能手机的普及也使智能家居的管理模式和手段越来越丰富,从固定集中控制延伸到了可移动式管理控制,通过将APP程序安装到智能手机上,以3G,WiFi或LAN为通信手段实现对智能家居的远程管理和控制。但上述智能家居应用模式主要以智能家庭的应用为主,该模式采用WiFi或LAN的方式对市电供电的电器设备进行控制,但一些行业却无法直接采用上述控制方式,如燃气行业的设备以电池供电为主,采用RF远程控制,而RF频段属于ISM,在433~498MHz之间,使用时无需像IP化设备那样需要一定的时间间隔刷新和维持通信链路畅通,而是通过睡眠唤醒的方法进行远程管理和控制,大大降低了设备的功耗,延长了燃气表电池供电时间,因此无线智能水表\热能表\燃气表的远程控制多采用RF方式,但该方法只对行业的集中管理具有重要意义,业务人员可通过手持式抄表设备远程读取相关设备的数据。在今天大力推广智慧家庭、智慧小区、智慧城市的背景下,用户对智能燃气表等设备的管理控制也有强烈需求,将智能燃气表等设备融入智能家居是目前的发展趋势,但因为采集节点数量庞大,对互联网链路的要求较高,因此设计一种可实现物联网协议传送采集信号的智能插座是本文的重点。

1 中继型智能插座的设计思路及实现原理

对目前市场上流行的智能插座进行功能分析可以看出,其主要针对智能家庭的相关应用,比如实现电器的远程开断电功能,其最大的特点是可移动控制,即下载APP软件到智能手机上,通过手机实现对插座的远程监控。而中继型智能插座除了上述功能外,还需将管理平台的信号通过智能插座转发给采用RF频段的智能燃气表,以实现数据采集及控制,同时该智能插座还能实现管理平台的动态注册,以便平台了解插座的运行状态是否正常。同样,通过权限设定,用户也可用手机APP访问指定的智能插座。智能插座的实现原理如图1所示。

由图1可知,该插座采用了RF无线模块+WiFi模块的设计方式,通过单独的MCU处理器进行管理和控制。该方案最大的特点在于采用了成熟的器件及内部串口通信方式,可靠性高,开发周期短,便于进行新功能扩展等,其控制原理如图2所示。

插座控制原理较为简单,主要采用成熟的模块搭建而成,性能可靠,成本较低,对智慧家庭应用而言是理想的辅助设备。针对家庭应用,插座使用量较少,数据传输的数据量和占用带宽可忽略不计。但如果行业应用规模较大,如燃气行业,用户规模可能达到几万甚至几十万,如果每户都采用智能插座进行数据收集及其他服务,那么会对后台带宽造成较大压力,因此若按照传统思路设计智能插座软件部分,在大规模推广应用时,会在流量和带宽的问题上对后台造成影响,故需采用新模式设计插座的通信协议部分,由此引入MQTT协议对插座与后台的通信模式进行规划设计。

2 MQTT协议的原理及应用

2.1 关于MQTT

消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)是IBM于1999年开发的一个即时通信协议,也是一个轻量级的,基于代理的发布/订阅消息传输协议。所谓轻量级,是指该协议设计思想开放、简单、轻量、易于实现,因此它也是为计算能力有限,且工作在低带宽、不可靠网络的远程传感器和控制设备通信而设计的协议。

针对物联网应用中数据采集需要通过不断轮询才能得到即时数据的缺陷,MQTT协议拥有信息推送功能,可有效地将物联网中的大量传感器与外部设备进行连接, 并实现最小的网络开销。

目前MQTT v 2.1主要包含14类消息类型的指令,如下所示:

(1)CONNECT:将客户端请求发送到服务器;

(2)CONNACK:连接确认(服务器端→客户端);

(3)PUBLISH:发布消息(双向);

(4)PUBACK:发布确认(双向);

(5)PUBREC:确保发布被收到(双向);

(6)PUBREL:确保发布分发(双向);

(7)PUBCOMP:确保发布完成(双向);

(8)SUBSCRIBE:客户端订阅请求;

(9)SUBACK:订阅确认(服务器端→客户端);

(10)UNSUBSCRIBE:客户端退订请求;

(11)UNSUBACK:服务器端退订确认;

(12)PINGREQ:PING请求(客户端→服务器端);

(13)PINGRESP:PING响应(服务器端→客户端);

(14)DISCONNECT:断开连接通知(客户端→服务器端)。

上述14类消息体都采用了固定头+可变头+有效载荷组成方式,其中固定头是所有消息类型必须包含的部分,其结构见表1所列。

从表1可以看出,MQTT协议的标准格式由消息类型、重复标识、质量等级、保留标识及剩余字长组成,MQTT协议具有如下特点:

(1)通信开销小:最小消息为2 B,降低了网络负载。

(2)协议具有简单和跨平台的特点:MQTT采用订阅/发布模式,提供一到多的分发方法,使应用耦合度降低,并可在TCP/IP及其他無线协议中使用RF,ZigBee等。

(3)可订制合适的服务质量:根据网络状态及服务要求可选择三种不同的消息质量等级。

由此可见,正因为MQTT协议的开放性与消息短小性,使得它在.NET,WINRT,M2M,PHP等平台上都有良好的表现。同时对于MQTT协议的实现多以库函数的方式实现,包括C语言设计,J2ME,J2EE等,本节就智能插座如何实现消息的定阅和发送机制做简单讨论。

2.2 智能插座的软件设计方案

中继型智能插座可将WiFi模块及RF模块之间的数据进行交换、转发及控制。智能插座就是MQTT协议中所描述的终端设备,为了简化智能插座软件设计,根据智能插座的特点,在中继型插座的通信协议设计上只选择了MQTT协议14种消息类型中的6种,分别为CONNECT,CONNACK,PUBLISH,PINGREQ,PINGRESP,DISCONNECT,这几类消息主要用于插座与后台的连接和信息发布。插座注册及信息接收过程如图3所示。

为适应本应用的特点,系统通信连接做了如下设置:

(1)为节省时间片及带宽开销,取消除了CONNACK确认信息外其他指令的确认信息,是一种无可靠质量(QoS)连接的传输。

(2)随机给智能插座每天分配多个断开时间片Tu和连通时间片Tc,且在连通时间片Tc内,如PUBLISH已完成则立即发送DISCONNECT,退出连通,即实际连通时间≤Tc,此举不易造成通信堵塞。智能插座在进入Tc时,发送CONNECT,如服务器端无CONNACK返回或返回拒绝信息,待这一Tc结束后,在下一Tc再进行连接。

(3)在连通时间片Tc内,智能插座每隔一定时间便发出一PINGREQ心跳信号给服务器端,待服务器端收到后返回一PINGRESP给智能插座。这一时间间隔在MQTT中称为KEEP ALIVE,服务器端在收到DISCONNECT或在1.5倍KEEP ALIVE时间内没有收到智能插座发送的信息则认为智能插座已断开连接。

3 结 语

将现有RF及WiFi模块集成到智能插座中,不仅实现了市场上流行的远程控制智能插座开断电功能,还在软件设计中采用了MQTT协议,减少了节点数据传输在带宽及时间片上的需要。该方案已成功应用在智慧厨房的整体解决方案中,满足了燃气行业和家庭应用的需求。

参考文献

[1] IBM developerWorks.MQ遥测传输(MQTT)V3.1协议规范[Z].2010-12-06.

[2]任亨,马跃,杨海波,等.基于MQTT协议的消息推送服务器[J].计算机系统应用,2014, 23(3):77-82.

[3]朱艳.移动应用的消息推送与MQTT协议[J].无线互联科技,2015(8):1-3.

[4]陈旖,许力,张美平.适用于大规模无线传感器网的流量优化系统设计[J].计算机应用,2015,35(4):905-909.

[5]何为民.低功耗单片微机系统设计[M].北京:北京航空航天大学出版社,1994.

[6]倪红军.基于Android平台的消息推送研究与实现[J].实验室研究与探索,2014,33(5):96-100.

[7]赵志新,王绍伟,霍志强.MTK手机开发入门[M].北京:人民邮电出版社,2010.

[8]王成,王跃.基于MOTT协议与Android技术的跨平台访客管理系统[J].物联网技术,2017,7(3):50-52.