基于MQTT协议实现数据通信


 
一、概述

    MQTT是一个由IBM主导开发的物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,适合为低带宽和不稳定的网络环境中的物联网设备提供可靠的通信服务。具有如下特点:

  • 非常小的通信协议开销(最小的消息大小为 2 字节)
  • 支持发布(PUBLISH) / 订阅(SUBSCRIBE)方式,简化应用程序的开发,特别适合手机端应用的开发
  • 提供三种不同消息传递等级,让消息能按需到达目的地,适应在不稳定工作的网络传输需求

    MQTT服务器可以基于开源代码建立或者利用私有云的服务器,例如阿里云的MQTT服务器(按数据流量收费)。

 
系统示意图
 
二、MQTT通信的建立

    在Comway 4G DTU加载MQTT动态程序,设置连接MQTT服务器通信参数,配置发布和订阅主题,即可实现基于MQTT协议的通信

  • 设置MQTT服务器地址和端口
  • 设置MQTT通信的用户名和密码
  • 设置MQTT的Client ID
  • 设置MQTT的工作模式: MQTT透传模式/MQTT采集上传模式
三、MQTT透传模式:

    DTU具有串口和网口,可以设置串口和网口的发布和订阅主题,实现和MQTT客户端的透明数据传输。

    DTU的串口订阅MQTT客户发布的主题,将得到数据转发给DTU串口连接的设备;DTU的串口发布主题,将串口收到数据发布,被MQTT客户端订阅,从而实现双向数据通信。

    DTU的网口可以连接多个设备,具备不同的IP地址。首先需要建立DTU连接的网口通信设备列表,网口通信设备列表包括:索引号,IP地址,端口号,RTU设备ID,如下图所示.根据此表的索引号建立对应的发布和订阅主题,实现数据通信。

    MQTT动态程序内嵌的Modbus RTU2TCP协议转换功能,使得基于MQTT的modbus rtu数据通信不仅可以连接串口,还可以连接网口网口modbus tcp设备。

四、MQTT采集上传模式:

    DTU或者RTU可以主动采集下位机设备(串口或者网口),生成字符串报文,利用MQTT主题发布机制,定时上传数据(Json数据结构)。MQTT采集上传模式适合微功耗电池供电的应用场景。

  • 设置采样时间间隔
  • 设置发布的主题
  • 设置读取外部设备的指令类型:modbus指令(Rtu和Tcp)或自定义指令(HEX),具体设置如下图所示
 
    CJSON数据格式详见说明文档。
 

 


相关文档
 
配置软件
 
测试软件