教你如何使用esp8266接入华为云物联网平台(IOTDA)(Arduino IDE开发)
最新版详细教程请参考:
【新增esp8266设备订阅命令主题、响应平台命令、命令处理】esp8266接入华为云物联网平台(IOTDA)2.0_8266 mqtt 华为云_IOT趣制作的博客-CSDN博客
以下为旧版:
一、简介
esp8266系列作为低功耗高性价比的嵌入式无线网络控制模块,深受对嵌入式感兴趣的小伙伴的喜爱,是很多人理想的一款wifi模块的选择,不仅可以完成通信,还可以当单片机使用完成程序控制,可满足智能家居、远程控制、智慧医疗等物联网应用的需求,总结:功能强大,价格便宜;某宝最便宜的ESP01s或12f系列五六块就可以搞定(建议大家还是支持正版),对质量有要求的,在某创平台也仅仅是十多块钱,玩法多样,本篇幅主要带大家讲解如何利用Arduino和esp8266系列完成设备接入华为云物联网平台(IOTDA)并完成设备属性上报。
二、整体流程概述
- 创建产品、注册设备、添加属性
- 使用MQTT.fx进行测试[可跳过]
- Arduino IDE+esp8266编程
三、具体详细步骤
- 创建产品、注册设备、添加属性
a. 创建产品(https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-dev/all-product)
b. 注册设备
此时可获取设备ID和密钥:
device_id: "61fb2d7fde9933029be5ff9e_esp8266_test01"
secret: "自己设定的密钥"
c. 添加属性
d. 获取MQTT三元组(ClientId、Username、Password)
我们可以通过华为云提供的官方产品帮助文档中,根据参数描述自己计算出三元组;或者我们可以使用下面的网页来帮助我们生成三元组
Huaweicloud IoTDA Mqtt ClientId Generatorhttps://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/
补充:平台接入地址为:iot-mqtts.cn-north-4.myhuaweicloud.com,端口号:1883
此时我们已经获取了下面这些信息(示例),就可使用MQTT.fx客户端软件进行登陆测试
device_id: "61fb2d7fde9933029be5ff9e_esp8266_test01"
secret: "自己设定的密钥"
ClientId: 61fb2d7fde9933029be5ff9e_esp8266_test01_0_0_2022020310
Username:61fb2d7fde9933029be5ff9e_esp8266_test01
Password:xxxxxxxxxx计算出来的秘钥xxxxxxxxxxxxxxxxxxxx
MQTT_Address:iot-mqtts.cn-north-4.myhuaweicloud.com
MQTT_Port:1883
2. 使用MQTT.fx进行测试[可跳过]
a. 登陆MQTT测试(创建完后点击Connect,右上角会有绿色提示灯即代表登陆成功)
b. 查看在线状态
c. 添加服务、属性、命令
d. 常用的Topic:(参考官方文档https://support.huaweicloud.com/api-iothub/iot_06_v5_3004.html)
设备上报属性:$oc/devices/{device_id}/sys/properties/report(需将“{device_id}”替换为所需的设备id)
平台下发命令:$oc/devices/{device_id}/sys/commands/#(需将“{device_id}”替换为所需的设备id)
数据格式:{"services":[{"service_id":"你的服务id","properties":{"你的属性名称": 设置的值}}]}
e. 上报测试(监控运维的在线调试中可查看具体信息)
f. 下发测试
3. Arduino IDE+esp8266编程
编程中使用了PubSubClient库,建议使用PubSubClient2.7.0,最新版有小伙伴反馈有点小问题
程序源代码不到70行,非常简单的一个小Demo,公众号“IOT趣制作”回复关键字“华为云物联网”