教你如何使用esp8266接入华为云物联网平台(IOTDA)(Arduino IDE开发)

最新版详细教程请参考:

【新增esp8266设备订阅命令主题、响应平台命令、命令处理】esp8266接入华为云物联网平台(IOTDA)2.0_8266 mqtt 华为云_IOT趣制作的博客-CSDN博客

以下为旧版:

一、简介

        esp8266系列作为低功耗高性价比的嵌入式无线网络控制模块,深受对嵌入式感兴趣的小伙伴的喜爱,是很多人理想的一款wifi模块的选择,不仅可以完成通信,还可以当单片机使用完成程序控制,可满足智能家居、远程控制、智慧医疗等物联网应用的需求,总结:功能强大,价格便宜;某宝最便宜的ESP01s或12f系列五六块就可以搞定(建议大家还是支持正版),对质量有要求的,在某创平台也仅仅是十多块钱,玩法多样,本篇幅主要带大家讲解如何利用Arduino和esp8266系列完成设备接入华为云物联网平台(IOTDA)并完成设备属性上报。

二、整体流程概述

  1. 创建产品、注册设备、添加属性
  2. 使用MQTT.fx进行测试[可跳过]
  3. Arduino IDE+esp8266编程

三、具体详细步骤

  1. 创建产品、注册设备、添加属性

        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_Addressiot-mqtts.cn-north-4.myhuaweicloud.com

              MQTT_Port1883

       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趣制作”回复关键字“华为云物联网”

 

Logo

鸿蒙生态一站式服务平台。

更多推荐