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这一项就对应温度这一数值

示例代码

相关推荐
2501_9142459310 小时前
C语言与硬件交互:从GPIO到中断的嵌入式编程实践
c语言·单片机·交互
炸膛坦客11 小时前
单片机/C/C++八股:(二十四)编译文件( .bin 和 .hex ,包括 .elf 和 .axf )
c语言·c++·单片机
Yunhoa11 小时前
51单片机(DS18B20 数字温度传感器)
单片机·嵌入式硬件·51单片机
zlinear数据采集卡12 小时前
2mV纹波的代价:硬核拆解ZLinear模拟前端放大器与正负可调电源设计
arm开发·单片机·嵌入式硬件·fpga开发·架构·开源
不上岸的旱鸭子15 小时前
PCB设计
单片机·pcb工艺
吠品15 小时前
多语言支持,从后台到前端我都趟过哪些坑
stm32·单片机·嵌入式硬件
xuxie9915 小时前
start2 PWM+ADC掉电检测
单片机·嵌入式硬件
炸膛坦客15 小时前
单片机/C/C++八股:(二十三)#define 和 typedef 的区别
c语言·c++·单片机
zlinear数据采集卡16 小时前
硅片里的“自动纠错“:硬核拆解LHAMP188自动归零技术原理与三种封装的PCB布局实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
2401_8888597116 小时前
STM32H7外部flash(W25Q128)+SPI+DMA读写
stm32·单片机·嵌入式硬件