MQTTX 模拟设备接入 ThingsCloud
MQTTX 模拟设备接入 ThingsCloud
参考
关于 ThingsCloud MQTT 标准协议,请浏览 MQTT 接入手册。
准备工作
首先打开 ThingsCloud 控制台,进入您的项目。
创建设备类型(可选)
这一步不是必须的,您也可以直接进入下一步。
这里我们来创建一个温湿度传感器的设备类型。进入项目的设备类型列表,点击创建设备类型。
这里我们使用标准设备类型,直接使用系统内置的功能定义模板,选择温湿度传感器。
然后在接入协议中,选择 ThingsCloud 标准接入协议。
进入创建好的设备类型,在功能定义的属性中,除了系统自动生成的温度和湿度,还多了一个我们手动创建的恒温控制属性,用于设备接收云平台下发的参数。
我们来手动添加这个新的属性定义,如下图:
创建设备
这里创建一个设备,用于 MQTTX 客户端来模拟连接。
如果设备关联到之前创建的设备类型,可以看到系统默认展示当前属性,但是没有内容,因为设备还没有和云平台通信,这些属性无实际数据。
进入设备的连接页面,这里的设备证书和 MQTT 接入点信息,接下来会用到。
建立 MQTT 连接
请先下载并安装 MQTTX。
接下来,用 MQTTX 来模拟一个物理设备,接入在 ThingsCloud 上刚刚创建的设备。
在 MQTTX 上新建一个连接,填写信息如下图:
点击连接,如果一切顺利,可以看到连接成功的提示。
与此同时,在 ThingsCloud 控制台的设备详情页,设备状态变为在线。
设备上报属性数据
在 MQTTX 上发布数据
设备通常上报传感器数据或设备状态信息到云平台,这里用 MQTTX 模拟上报温湿度数据,将以下 JSON 数据发布到主题 attributes
。
{
"temperature": 21.4,
"humidity": 69.3
}
如下图:
参考
关于 ThingsCloud 支持的 MQTT 主题,请浏览 MQTT 主题一览。
云平台实时更新
发布成功后,云平台上的设备属性数据实时更新,如下图:
修改温度值后再次发布,如下图:
在云平台上可以看到历史数据,如下图:
提示
如果您使用的是 ThingsCloud 免费版项目,请确保属性上报不要过于频繁,且总量不要超过日消息量上限,否则会被系统限制连接。
设备接收下发的属性数据
这里我们以设备接收恒温控制参数为例。
在 MQTTX 上订阅属性下发主题
在 MQTTX 上订阅主题 attributes/push
,这是 ThingsCloud 内置的属性下发订阅主题,任何设备可以直接使用。
从云平台下发属性
如果您在前边创建了设备类型,并添加了恒温控制这个下发属性的定义,这里便可以直接在属性面板上编辑该属性的下发数据,如下图:
顺便说一下,ThingsCloud 支持很多下发属性数据的方式,包括:
在 MQTTX 上接收数据
这时候,MQTTX 模拟的设备便收到了刚刚下发的恒温控制数据,如下图:
接下来我们用在线调试功能来下发属性,如下图:
这里支持直接编辑 JSON 属性集合,例如:下发两个继电器的控制状态给设备。要求设备断开继电器1,闭合继电器2。
{
"relay1": false,
"relay2": true
}
如下图:
MQTTX 客户端立即收到云平台下发的属性。如下图:
以上是 ThingsCloud MQTT 协议中属性上报和下发的示例,更多的使用方法,请浏览 MQTT 主题一览。