ESP32通过MQTT接入华为云代理

 1. 前言

项目组需要ESP32接入云代理,阿里云又不可用,转向华为云

结合下面两篇文章成功实现了接入,但由于华为云的更新后UI不一样,和文章里有些操作不一样,就想更新一下当前的操作顺便记录流程

本文适合想要快速走通ESP32接入华为云代理的同学,太深的技术我也不太懂了呃呃呃,仍在学习中

文章连接:

【教程】ESP32连接华为云IoT平台

esp32接入华为云IoT

本人使用的环境:

1. VScode + platformIO

2. ESP32-S3

3. PubSubClient库

4. ArduinoJSON库(V5.11.2)

2. 正文

2.1 华为云loT平台

华为云IoT_物联网_华为云物联网平台_物联网解决方案-华为云

1. 先登录/注册

2. 搜索

3. 输入“设备接入loTDA”后进入这个界面,点击“免费试用”

4. 先随便输一个名称,立即创建

5. 看到“创建中”,等一会后刷新一下页面就会变成运行中了

6. 按照图片步骤

7. 接下来去创建设备

确定完后弹出这个,直接保存并关闭

会下载一个文件,其实用处不大

之后就这样就ok

2.2 代码部分

代码的模板可以去上文提到的两篇文章中找,我也是套的大佬们的代码

1. 配置环境

首先要添加PubSubClient库和ArduinoJSON库(V5.11.2)(V6,V7JSON库有些函数不一样,用在那两篇文章中的代码会报错)

ArduinoJSON库主要是用来实现云端控制的,如果只是想试试接入的话不加也没关系

(当然了上云自然是想控制的呃呃)

	knolleary/PubSubClient@^2.8
	bblanchon/ArduinoJson@^5.11.2

2. 修改信息

SSID:你的WIFI名称

password:wifi密码

MQTT服务器信息在哪获得呢?

服务器地址是hostname

MQTT端口:1883

MQTT 客户端ID:clientId

MQTT 用户名:username

MQTT 密码:password

topic_properties_report这个参数在这:

$oc/devices/{device_id}/sys/properties/report
{device_id}把这个换成你的MQTT 用户名

到这把代码烧录进板子就可以接入华为云了,至于具体的云端控制我还需要再研究研究,大家可以参考参考其他大佬

3. 结语

需要代码的也可以私信我

后续可能还会记录一下ESP32接入本地代理

疯狂学习ing

### ESP32数据上传至华为云的VSCode开发环境配置 #### 安装必要的工具链和扩展 为了在VSCode环境中实现ESP32华为云发送数据的功能,需先安装一系列依赖项。这包括但不限于Arduino IDE核心文件以及特定于ESP32的支持包[^1]。 对于VSCode而言,建议安装由Microsoft官方提供的C/C++插件来增强代码编辑体验;同时还需要获取PlatformIO插件,它极大地简化了嵌入式项目的构建流程并支持多种硬件平台,其中包括ESP32系列微控制器[^2]。 #### 配置连接华为云所需库 针对物联网应用接入华为云服务端口,开发者应引入`Huawei Cloud IoT Device SDK for C`或者基于更高层次抽象的语言版本SDK(如Python版),这些软件开发套件提供了便捷的方法用于建立安全可靠的MQTT通信通道[^3]。 #### 编写示例程序 下面给出一段简单的演示代码片段,展示了怎样利用上述提到的技术栈完成从传感器采集温度信息并通过网络传输给云端服务器的任务: ```cpp #include <WiFi.h> #include "mqtt_client.h" // 假设这里已经包含了处理具体业务逻辑所需的其他头文件... void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); // ssid 和 password 是事先定义好的Wi-Fi账号密码 esp_mqtt_client_config_t mqtt_cfg; memset(&mqtt_cfg, 0, sizeof(mqtt_cfg)); strcpy((char*)mqtt_cfg.uri, "tcp://your-huaweicloud-endpoint"); // 替换成实际的服务地址 } void loop() { static int count = 0; char payload[64]; sprintf(payload,"{\"device_id\":\"%s\",\"data\":{\"temperature\":%.2f}}", deviceID ,getTemperature()); esp_mqtt_publish(client, topic.c_str(),payload,strlen(payload),0,false); delay(5000); // 每隔五秒上报一次最新读数 } ``` 此段代码实现了基本功能:初始化Wi-Fi模块、设置目标MQTT代理参数,并周期性地构造JSON格式的消息体通过已创建的主题发布出去[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值