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才是王者。
下一节我们就来会会这个王者。

### ThingsBoard IoT Gateway代码移植方法 对于ThingsBoard IoT Gateway的代码移植,主要涉及目标平台环境准备、依赖库安装以及网关配置文件调整等方面的工作。 #### 1. 准备开发环境 为了确保能够在新的硬件平台上成功编译并运行ThingsBoard IoT Gateway,在开始之前需先搭建适合该设备的操作系统及其配套工具链。如果是在嵌入式Linux环境下操作,则可以参考官方文档来获取Buildroot源码,并按照说明完成定制化内核与根文件系统的构建[^3]。 #### 2. 安装Python及相关依赖包 ThingsBoard IoT Gateway基于Python编写而成,因此需要确认目标板上已正确部署了适当版本的解释器以及其他必要的扩展模块。通常情况下可通过pip命令在线安装这些组件;但对于离线场景来说,则可能要预先打包好whl文件再传输至目标机器执行本地安装。 #### 3. 修改MQTT连接参数 针对不同类型的物联网协议适配需求,应当编辑`thingsboard-gateway/thingsboard_gateway/config/mqtt.json`中的相应字段以匹配实际使用的Broker地址和服务端口等信息[^1]。这一步骤至关重要,因为只有当设置无误时才能实现稳定的数据交换过程。 #### 4. 调整日志级别和其他高级选项 除了上述基本项外,还建议依据具体应用场景灵活调节其他可选属性,比如启用调试模式以便于排查潜在问题所在,或是优化性能表现通过设定合理的缓冲区大小等方式达成目的。更多细节可以从官方指南中获得进一步了解[^2]。 ```bash # 更新软件包列表并安装所需依赖 sudo apt-get update && sudo apt-get install python3-pip libssl-dev libffi-dev build-essential # 使用pip安装缺失的Python库 pip3 install --upgrade pip setuptools wheel cryptography paho-mqtt pyyaml tb-rest-client tb-mqtt-client ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嘎啦AGI实验室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值