Skip to content

高阶教程-串口协议转 MQTT

本节详细讲解串口协议转换为物联网 MQTT 通信协议的实现方法,完成硬件设备数据自动上报,同时支持远程向硬件下发控制指令

说明

以下教程将使用红外温度传感器进行举例说明,使用的串口协议为:RS485

对接RS232、RS422等其余串口协议,操作流程完全一致,仅需更换对应适配的网关硬件即可

点击下载本节教程使用的应用

注意:安装应用后,需要替换工作流(获取实时温度)中(HTTP请求节点)中的IP地址

1.硬件介绍

本节教程将使用以下硬件进行讲解说明

整体连接如下

说明

  • ①:红外测温仪的电源线
  • ②:红外测温仪的串口线连接到物联网网关
  • ③:物联网网关的电源线
  • ④:物联网网关的网口(连接有线网)

3.配置MQTT服务

红外测温仪通过串口将数据上传至物联网网关,再由物联网网关转发推送至指定MQTT 服务

提示

通过:MQTT插件,可以快速部署 MQTT 服务


以下为MQTT 插件的配置参数

json
{
  "USERNAME": "TempUpdate",
  "PASSWORD": "TempUpdate",
  "MQTT_PORT": 1883,
  "HTTP_PORT": 80,
  "SUBSCRIBE_LIST": [
    {
      "TOPIC": "Temp",
      "URL": "https://192.168.31.88:2020/00001_api/webhook/MVf832oAbo05j-ZWgp7THEJ60XT-1",
      "ENCODING": "hex"
    }
  ]
}

3.配置物联网网关

连接完成后,需要进入物联网网关的配置页面进行配置

提示

可以查看路由器的已连接设备,找到物联网网关的IP地址,浏览器地址栏输入IP地址后即可访问

3.1 配置网络参数

物联网网关开启网络连接,参照路由器网络参数完成配置即可,示例如下

3.2 配置端口参数

需要参考红外测温仪说明文档,将串口相关参数配置到端口参数,配置后串口输出数据才能发送到物联网网关


红外测温仪串口参数说明


基于串口参数配置如下

3.3 配置MQTT网关

完成以上配置后,红外测温仪的数据可通过串口传输至物联网网关,接下来配置 MQTT 转发相关参数,即可将网关接收的串口数据推送至 MQTT 服务器


配置接收消息的 MQTT 服务器

说明

此项为MQTT 服务接入配置,填写MQTT 服务器实际参数即可


MQTT 发布/订阅配置

发布/订阅说明

  • 发布配置: 将接收到的串口数据推送至MQTT 服务器指定主题(Topic)
  • 订阅配置: 接收MQTT 服务器指定主题下发的数据,并转发至硬件串口

3.4 配置边缘网关

部分硬件设备需下发指定指令方可读取数据,可在边缘网关配置指令轮询功能,设置固定间隔后即可自动采集回传数据,无需手动主动发起数据请求

提示

如果不需要按指定间隔时间返回数据,则无需配置指令轮询功能


例如:红外测温仪需要发送指令010300000001840A到串口后,串口才会返回温度数据


配置:每间隔1秒请求1次温度数据

3.5 配置完成

配置完成后,需要重启模块,重启后配置才能生效

4.最终效果

以上配置完成后,即可实现从红外测温仪接收实时温度数据,以下为两种使用场景

4.1 场景1:轮询请求

若仅需按照设定间隔定时上报实时温度,只需完成 3.4 节边缘网关配置 即可


网关状态示例


webhook接收示例

提示

输出参数中的temperature即是获取到的红外测温仪温度

4.2 场景2:指令请求

如果需要发送指令后才返回温度数据,则可以向 3.3 节配置mqtt网关 中的订阅主题发送查询指令

提示

具体实现可以查看示例应用中的工作流逻辑,点击下载应用


效果示例


网关状态示例