三方厂商的灯接入自有平台,没法直接对接,我方只能作为MQTT客户端订阅消息。
ThingsBoard本身是MQTT的服务端也就是Broker,无法直接接入
我们可以
Thingsboard平台安装见 ThingsBoard入门实战(一):物联网平台 ThingsBoard 简介
本节进行Thingsboard平台中网关的新增配置,如果已经配置,请直接跳到下一节。
使用默认的租户登录Thingsboard平台,在界面上配置网关:
进入添加新设备页面:添加Token,这里设为ENV_GATEWAY_TOEKN
, 后面会用到。
客户可以不配置,直接把这个设备挂在租户下面就可以了。
可以在设备列表中看到这个网关:
下载地址:https://www.emqx.io/zh/downloads
教程:https://www.emqx.io/docs/zh/v5.0/deploy/install.html
开启 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才是王者。
下一节我们就来会会这个王者。