操作场景
MQTT.fx 是目前主流的 MQTT 桌面客户端,它支持 Windows、 Mac、Linux 操作系统,可以快速验证是否可与物联网开发平台(简称平台)进行连接,并发布或订阅消息。更多 MQTT 协议介绍请参见 MQTT 协议介绍。
本文档主要介绍如何使用 MQTT.fx 将设备连接到腾讯云物联网开发平台,如何通过 MQTT.fx 配置 MQTT Client ID、User Name 及 Password 等参数,如何向平台发布消息并订阅消息。本文以 MQTT.fx 1.7.1 for Windows 版本为例,不限于 V1.7.1,最新 MQTT.fx 5.3 同样支持。
操作步骤
下载 MQTT.fx 并连接平台
1. 下载并安装 MQTT.fx 客户端。
2. 打开 MQTT.fx 客户端程序,单击设置。
3. 进入设置页面,并单击“+”,创建一个新的配置文件,输入自定义名称 Profile Name,Profile Type 选择 MQTT Broker。


4. 填写 MQTT Broker Profile Settings 和 General 相关信息。


参数说明
参数 | 说明 |
Profile Name | 用户自定义名称。 |
Broker Address | MQTT 服务器连接地址,广州域设备填入:PRODUCT_ID.iotcloud.tencentdevices.com,这里 PRODUCT_ID 为变量参数,用户需填入创建产品时自动生成的产品 ID,例如 T****DS8G.iotcloud.tencentdevices.com。 |
Broker Port | MQTT 服务器连接端口,填入:1883。本文主要针对密钥认证类型的产品,端口必须是1883,如果您想通过8883接口接入,建议使用证书认证型产品自行接入。 |
Client ID | MQTT 协议字段,按照物联网通信约束填入:产品 ID + 设备名,如:"TXXXXDS8Gdev001 ",TXXXXDS8G 是产品 ID,dev001 是设备名称。 |
Connection Timeout | 连接超时时间(秒)。 |
Keep Alive Interval | 心跳间隔时间(秒)。 |
Auto Reconnect | 断网自动重连。 |
5. 单击 User Credentials,填写 User Name 和 Password。
User Name:MQTT 协议字段,按照物联网通信约束填入:产品 ID + 设备名 + SDKAppID + connid+expiry。创建完产品即可在产品列表页和产品详情页查看 ProductID,例如:"TO****DS8Gdev001;12010126;E4F3Q;1591948593",仅替换示例中的产品 ID + 设备名即可,后面的三个参数本身由平台提供的设备接入 SDK 自动生成,也可由平台提供的 生成小工具 自动生成。
Password:Password 必须填写,用户可以使用平台提供的 生成小工具 自动生成 Password,也可以按照文档 手动生成 Password。


6. 完成以上步骤设置后,单击 Apply 和 OK 进行保存,并在配置文件框中选择刚才创建的文件名,单击 Connect。
7. 当右上角圆形图标为绿色时,说明已成功连接物联网开发平台,即可进行发布和订阅等操作。


生成 UserName 与 Password
1. 进入 控制台,单击“公共实例”,创建项目后,单击项目名称进入产品开发页,单击新建产品,输入产品信息。
注意:
产品品类需选择“智慧生活/电工照明/灯”,系统会自动创建物模型属性、事件等。


2. 单击刚创建的“智能灯”产品,选择第四步设备调试,单击新建设备创建设备。


3. 下载网页小工具 生成小工具 并解压缩后,在目录中可查看到以下3个文件。


4. 单击平台设备调试中创建的设备名称,获取设备的三元组信息“产品 ID”、“设备名称”和“设备密钥”。


5. 打开 Chrome 浏览器,并打开
sign.html
文件,显示如下图。将上一步中“产品 ID”、“设备名称”、“设备密钥”信息分别复制到对应的 ProductID、DeviceName、DeviceSecret 文本框中,签名算法默认选择 HMAC-SHA256,单击 Generate,网页工具自动生成 UserName 与 Password。

6. 复制自动生成的 User Name、Password 到 MQTT.fx 的 User Credentials 区域对应的文本框。
设备发布物模型消息
选择客户端 Publish Tab,输入主题名称、Qos 等级,单击 Publish 进行发布。
示例
Topic:$thing/up/property/ProductID/DeviceName
(设备上报数据到平台的物模型 Topic,实际体验需要将 ProductID 与 DeviceName 替换成用户在平台创建的对应内容)。发布消息数据格式规范及示例,可参见文档 物模型协议。

设备订阅物模型消息
选择客户端 Subscribe Tab,输入订阅主题 Topic 名称、Qos 等级,单击 Subscribe 进行主题订阅。订阅结果可通过 控制台 的设备日志查询。
示例
Topic:$thing/down/property/ProductID/DeviceName
(设备订阅物模型 Topic,常用于云端通过物模型下发控制报文至设备端,实际体验需要将 ProductID 与 DeviceName 替换成用户在平台创建的对应内容)。

进入设备在线调试,设置开关,亮度后单击发送,平台将下发控制指令。

之后回到 MQTT.fx 窗口,可以看到云端刚才下发的控制报文数据:



查看日志
在 MQTT.fx 上,单击 Log 查看操作日志和错误提示日志。

