ESP8266 MQTT连接onenet

1、ESP-01S硬件连接

注意EN要接到3.3V

2、ESP设置流程

Serial2_SendString("AT+RESTORE\r\n"); // 发送恢复出厂指令

ESP8266_SendCmdOK("AT\r\n", 2000)) // 发送AT并等待OK

ESP8266_DisableEcho(2000); // 发送ATE0关闭回显

ESP8266_SendCmdOK("AT+CWMODE=1\r\n", 2000); // 设置为Station模式

ESP8266_ConnectWiFi(WIFI_SSID, WIFI_PWD) 连接指定WiFi

MQTTUSERCFG配置 MQTT 用户参数,见第4节。

"AT+MQTTCONN=0,\"mqtts.heclouds.com\",1883,1\r\n" 第5节 连接服务器

订阅消息 见第6节

发布数据 见第7节

3、Token生成

使用OneNET Token 生成工具生成token,用于连接平台

工具说明https://iot.10086.cn/doc/aiot/fuse/detail/1487

点击生成后,下方文本框就会有生成的token文本

4、MQTT用户名定义MQTTUSERCFG

ESP连接wifi后 需要设置MQTT用户名/密码等,发送命令格式如下,token为上一步生成的token。

复制代码
#define MQTT_USER_CFG   "AT+MQTTUSERCFG=0,1,\"设备名称\",\"产品ID\",\"token\",0,0,\"\r\n"

向ESP发送以上字符串即可完成用户名等信息设定。

5、连接MQTT服务器

onenet地址为

复制代码
//Onenet 服务器地址
#define MQTT_CONN_CFG   "AT+MQTTCONN=0,\"mqtts.heclouds.com\",1883,1\r\n"

6、订阅消息

复制代码
// 订阅主题
// OneNET 设备命令下发主题格式:(接收云端控制指令)
// $sys/产品ID/设备名称/thing/property/post/reply
#define MQTT_SUB_REPLY  "\"$sys/tC4k024B72/STM32-01/thing/property/post/reply\",0\r\n"

#define MQTT_SUB_SET    "\"$sys/tC4k024B72/STM32-01/thing/property/set\",0\r\n"

// 发布主题(上传数据到平台)
// OneNET 属性上报主题格式:
// $sys/产品ID/设备名称/thing/property/post
#define MQTT_PUB_TOPIC  "$sys/tC4k024B72/STM32-01/thing/property/post"

7、发布数据到云平台

下一步就可以发布数据了,在发布之前需要在onenet平台定义产品的数据,比如温度数据。

定义数据

点击产品开发-》设置模型

添加自定义功能点,注意标识符这一项,在设备发送数据时要靠这个匹配数据,比如设备发送的json中有Temp这一项就对应温度这一数值

示例代码

相关推荐
3壹3 小时前
STM32按键检测与上拉电阻详解
c语言·stm32·嵌入式硬件
昵称只能一个月修改一次。。。3 小时前
【无标题】
单片机·嵌入式硬件
AI+程序员在路上3 小时前
新手进入嵌入式行业方法与方向选择
c语言·开发语言·单片机·嵌入式硬件
The️3 小时前
STM32F407 + LVGL 图形界面开源开发板
stm32·单片机·嵌入式硬件·开源·硬件工程·开源协议·pcb工艺
Zevalin爱灰灰3 小时前
编程技巧(基于STM32)第三章 模式切换程序模板
stm32·单片机·嵌入式
爱喝纯牛奶的柠檬4 小时前
【已验证】STM32驱动RC522_RFID模块实现卡片识别
stm32·单片机·嵌入式硬件
老师用之于民4 小时前
【DAY34】基于 IMX6ULL 的嵌入式系统底层开发:中断、时钟与定时器配置
单片机·嵌入式硬件
DA02214 小时前
系统移植-STM32MP1_U-Boot移植
单片机·bsp·系统移植
ytttr8734 小时前
MAX31856热电偶采集芯片参考代码(STM32实现)
stm32·单片机·嵌入式硬件