有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

操作场景

本文档通过使用 MQTT.fx 介绍设备接入腾讯云IoT平台,进行消息发布和订阅,及设备消息流转到相关腾讯云其他产品。MQTT.fx 是目前主流的 MQTT 桌面客户端,它支持 Windows、 Mac、Linux 操作系统,更多 MQTT 协议介绍请参见 MQTT 协议介绍。本文以 MQTT.fx 1.7.1 for Windows 版本为例。

操作步骤

连接 IoT 平台

1. 下载 并安装 MQTT.fx 客户端。
2. 打开 MQTT.fx 客户端程序,单击设置
3. 进入设置页面,并单击 +,创建一个新的配置文件。


4. 填写 Connection Profile 相关信息和 General 信息。


参数说明
参数
说明
Profile Name
配置文件保存为的名称。
Broker Address
MQTT 服务器连接地址,详情参考 设备接入地域说明,域名中 PRODUCT_ID 为变量参数,用户需填入创建产品时自动生成的产品 ID,例如:9****ZW2EZ.iotcloud.tencentdevices.com
Broker Port
MQTT 服务器连接端口,证书认证型端口:8883;密钥认证型:1883。
Client ID
MQTT 协议字段,按照物联网通信约束填入:产品 ID + 设备名,例如:"9****ZW2EZgate_dev01 ",9****ZW2EZ 是产品 ID,gate_dev01 是设备名。
Connection Timeout
连接超时时间秒。
Keep Alive Interval
心跳间隔时间秒。
Auto Reconnect
断网自动重连。
5. 填写 User Credentials 信息。
User Name:MQTT 协议字段,按照物联网通信约束填入:${productId}${deviceName};${sdkappid};${connid};${expiry}。(创建完产品即可在产品列表页和产品详情页查看 productId)如:"KXUCF9GJ9Hdev_01;12010126;d718d;1685203200"。
Password:Password 必须填写。
证书认证:由于 mqtt.fx 默认将密码标志位设为 true,所以需要填写一个任意的非空字符串作为密码,否则无法连接到物联云通信后台。而实际接入物联云后台时,鉴权是根据证书认证,此处随机填写的密码不会作为接入凭证。
密钥认证:用户可进入 Hub 相应设备列表查看获取(具体页面见下方密钥认证步骤),也可以按照文档 手动生成 Password



6. (可选)证书认证: 选择开启“SSL/TLS”,勾选“Self signed Certificates”,上传相关内容。


文件说明
文件
说明
CA File
根证书,单击 ca.crt 链接下载文件。
Client Certificate File
客户端证书文件,即设备证书,在证书认证产品中创建设备时下载,详情请查看 设备接入准备
Client Key File
客户端密钥文件,即设备密钥,在证书认证产品中创建设备时下载,详情请查看 设备接入准备
PEM Formatted
由于物联网通信根证书、设备证书、设备密钥均由 openssl 生成使用 PEM 格式,而 MQTT.fx 是 Java 客户端,所以不识别 PEM 证书,这里需要勾选由该客户端自动转换为 Java 识别的 JKS 格式。
7. (可选)密钥认证:

用户可进入 控制台 获取对应设备的 username,password。



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



发布消息

选择客户端 Publish Tab,输入主题名称、Qos 等级,单击 Publish 进行发布。发布结果可通过 云日志 查询。



订阅主题

选择客户端 Subscribe Tab,输入主题名称、Qos 等级,单击 Subscribe 进行主题订阅,订阅结果可通过 云日志 查询。



数据流转

设备发布的消息可以通过 规则引擎 流转到第三方服务和腾讯云其他产品,本文档通过 requestbin 工具演示设备数据转发到第三方服务。
1. 在 requestbin 上创建一个public bin,生成一个 http 服务地址,如下:



2. 按规则引擎配置方法,进行规则引擎配置,如下:



3. 设备发布数据后,将在 requestbin 接收到,如下:




消息下发

设备成功订阅了 Topic 后,可通过 发布消息 云 API 向此 Topic 下发消息,设备将接收云端下发的消息。