ThingsBoard IoT Gateway 实战(三)- 使用 MQTT Connector 转接灯

本文介绍了如何使用ThingsBoard IoT Gateway通过MQTT Connector将无法直接对接的第三方灯设备接入平台。首先,文章描述了问题背景,即设备只能作为MQTT客户端订阅消息。然后,通过分析设计,决定使用ThingsBoard Gateway做转换,并模拟三方系统,包括部署EMQX作为MQTT Broker,安装MQTTX模拟设备。接着详细阐述了平台配置、网关配置及三方系统模拟的步骤。最终,验证了网关成功接收并显示了设备的遥测数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ThingsBoard IoT Gateway 实战(三)- 使用 MQTT Connector 转接灯

问题描述

三方厂商的灯接入自有平台,没法直接对接,我方只能作为MQTT客户端订阅消息。

分析设计

ThingsBoard本身是MQTT的服务端也就是Broker,无法直接接入
我们可以

  • 使用 ThingsBoard IoT Gateway 做 MQTT 转换
  • 使用 Emqx 模拟三方厂商的 MQTT broker
  • 使用 MQTTX 模拟三方厂商的设备,也就是 MQTT Client
设备 MQTT broker 网关 平台 发送MQTT消息 订阅MQTT消息 发送MQTT消息 获取MQTT消息 MQTT消息转换 上传MQTT消息 设备 MQTT broker 网关 平台

平台配置

Thingsboard平台安装见 ThingsBoard入门实战(一):物联网平台 ThingsBoard 简介

本节进行Thingsboard平台中网关的新增配置,如果已经配置,请直接跳到下一节。
使用默认的租户登录Thingsboard平台,在界面上配置网关:
在这里插入图片描述
进入添加新设备页面:在这里插入图片描述添加Token,这里设为ENV_GATEWAY_TOEKN, 后面会用到。
在这里插入图片描述客户可以不配置,直接把这个设备挂在租户下面就可以了。
可以在设备列表中看到这个网关:
在这里插入图片描述

三方系统模拟

1、安装EMQX

下载地址:https://www.emqx.io/zh/downloads
教程:https://www.emqx.io/docs/zh/v5.0/deploy/install.html

2、安装MQTTX

MQTT 图形化客户端-MQTTX安装使用教程

3、MQTTX发送MQTT消息到EMQX

开启 EMQX:

./bin/emqx start

MQTTX 连接 EMQX:
在这里插入图片描述

MQTTX 设置订阅,并发送消息验证:
在这里插入图片描述

在这里插入图片描述

网关配置

网关安装见 ThingsBoard IoT Gateway 实战(一)- 通过 REST Connector 接收环境数据

到网关配置文件夹编辑tb_gateway.yaml文件。

vim /etc/thingsboard-gateway/config/tb_gateway.yaml

将“thingsboard”部分中的主机和端口属性值改为ThingsBoard主机和端口。
将“security”部分中的access token修改为访问令牌,也就是ENV_GATEWAY_TOEKN。

网关配置关键部分如下:

thingsboard:
  host: thingsboard平台的IP地址
  port: 1883
 
  security:
    accessToken: thingsboard平台中配置的网关的token,这里是 ENV_GATEWAY_TOEKN
connectors:
  -
    name: MQTT Broker Connector
    type: mqtt
    configuration: mqtt_lamp.json

json配置

{
  "host": "http://127.0.0.1:5000",
  "SSLVerify": false,
  "security": {
    "type": "basic",
    "username": "public",
    "password": "public"
  },
  "mapping": [
    {
      "url": "weather",
      "httpMethod": "GET",
      "httpHeaders": {
        "ACCEPT": "application/json"
      },
      "allowRedirects": true,
      "timeout": 0.5,
      "scanPeriod": 5,
      "converter": {
        "type": "json",
        "deviceNameJsonExpression": "${sensorName}",
        "deviceTypeJsonExpression": "${sensorType}",
        "telemetry": [
          {
            "type": "double",
            "key": "temperature",
            "value": "${temp}"
          },
          {
            "type": "string",
            "key": "weather",
            "value": "${weather}"
          }
        ]
      }
    }
  ]
}

注意:
public/public 是 EMQX 默认密码,请不要用于生产环境!

查看成果

向Topic /sensor/data发送MQTT消息

{
  "on": "on",
  "lightness": 25.6,
  "serialNumber": "Lamp-001",
  "sensorType": "lamp"
}

在这里插入图片描述

设备出现在设备列表中
在这里插入图片描述

遥测数据已经更新
在这里插入图片描述

下一步

MQTT早已成为事实上的IoT标准通信协议,技术方案成熟稳定。
如果设备能够支持MQTT协议,那MQTT协议就是最优方案。
然而,工业界的现实是设备多如狗串口遍地走,串口之上modbus才是王者。
下一节我们就来会会这个王者。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘎啦AGI实验室

你的鼓励是我创作最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值