如何用ESP32通过MQTT连接华为云IoT?
摘要:1. 引言 最近正在学习 ESP32 联网操作,由于阿里云的物联网在 2025-2-1 就已经停止了 IoT 服务,然后腾讯云个人 IoT 服务购买有点小贵,所以就找到了个人免费的华为云 IoT 服务,网上的资料也相对较少,故写篇随笔记录。
1. 引言
最近正在学习 ESP32 联网操作,由于阿里云的物联网在 2025-2-1 就已经停止了 IoT 服务,然后腾讯云个人 IoT 服务购买有点小贵,所以就找到了个人免费的华为云 IoT 服务,网上的资料也相对较少,故写篇随笔记录。
在用 ESP32 连接之前,先用 mqtt.fx 调试华为云物联网 IoT,用于熟悉所需的参数。
2. 购买 IoT 实例
因为个人是免费的,所以标准版购买个三年也是没问题。
3. MQTT.fx 桌面客户端接入
MQTT.fx 为桌面端 MQTT 客户端工具,用来调试、测试 MQTT 服务器 / 物联网平台。
3.1 下载
下载 MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载 MQTT.fx),安装 MQTT.fx 工具
4. 官方 MQTT.fx 用户指南
无论是使用开发板连接连接还是用 MQTT.fx 连接调试,指南中的产品和设备创建是必须的,一步步跟着配置即可,还是非常详细的。
=>【设备接入 IoTDA 用户指南】在线开发MQTT协议的模拟智慧路灯 <=
5. MQTT.fx 调试操作
5.1 获取连接信息
方法一:点击设备 -> 有设备 -> 更多 -> 获取连接参数,得到下图
方法二:访问此处填写注册设备后生成的设备 ID(DeviceId)和密钥(DeviceSecret),生成连接信息(ClientId、Username、Password)
5.2 连接鉴权
将以上连接信息填入设置中,端口使用默认的 1883 即可。
5.3 调试
5.3.1 数据上报
填写接口地址$oc/devices/{device_id}/sys/properties/report {device_id} 需填写为设备注册成功后返回的 deviceId 值。
所有设备中点击设备的标识码打开此页面。
在 MQTT.fx 中输入接口地址后,发送代码,即可看到如下光照强度发生了变化:
{
"services": [{
"service_id": "BasicData",
"properties": {
"luminance": 100
}
}
]
}
5.3.2 命令下发
同样的,填写接口地址:$oc/devices/{device_id}/sys/commands/#,其中 {device_id} 为设备注册成功后返回的 deviceId 值。
如图MQTT.fx中点击 Subscribe 订阅后进行下发命令,即可在 MQTT.fx 收到对应命令:
5.3.2.1 下发命令
5.3.2.2 接收命令
5.3.2.3 回复响应
下行 Topic 里的 request_id 是什么,响应 Topic 就必须原样带上!
假如接收到的是:
Topic: $oc/devices/{device_id}/sys/commands/request_id=1234
数据格式:
{
"paras" : {
"value" : "ON"
},
"service_id" : "LightControl",
"command_name" : "value"
}
那么就需要在 Publish 中发布:
Topic:$oc/devices/{device_id}/sys/commands/response/request_id=1234
数据格式:
{
"result_code": 0,
"response_name": "COMMAND_RESPONSE",
"paras": {
"result": "success"
}
}
5.3.2.4 下发流程完成
博客导航
博客导航
