基于Arduino的ESP8266连接OneNET云平台(MQTT协议 物模型)(一)ESP8266固件烧录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、前期准备
- 1.1 硬件配置
- 1.2 软件环境配置
- 二、ESP8266配置
- 2.1 连线
- 2.2 烧录固件(MQTT)
- 2.3 测试(MQTT)
- 三、二次测试
- 总结
前言
本系列将以0基础新手视角,完整演示Arduino+ESP8266连接OneNET云平台的全流程,涵盖ESP8266固件烧录、物模型的模型设计、MQTT协议配置及代码实现。建议搭配Arduino IDE 2.0+和Arduino开发板使用。
(一)本文为ESP8266固件烧录
一、前期准备
1.1 硬件配置
需准备Arduino开发板 和 ESP8266 和 USB To TTL
1.2 软件环境配置
安装Arduino IDE 2.0.2 添加ESP8266支持包
ESP8266烧录工具(MQTT)
OneNET云平台物模型搭建指南 基于Arduino的ESP32-S3连接OneNET云平台实战指南(一)——物模型的设计与参数配置
二、ESP8266配置
2.1 连线
注:USBtoTTL的5V和3.3V可以任意调换,不影响。(比如 RST接3.3V或者5V都行 )
USB To TTL | ESP8266 |
---|---|
3.3v-VCC(跳线帽) | 3.3V |
GND | GND |
TX | RX |
RX | TX |
5V | RST |
IO0 | GND |
2.2 烧录固件(MQTT)
1.双击打开“flash_download_tool_3.9.8_w1” → 根据下图配置
2.3 测试(MQTT)
官网MQTT AT 命令集
1、AT //测试指令
2、AT+RST //复位指令
3、AT+CWMODE=1 //设置为station模式
4、AT+CWDHCP=1,1 //启动DHCP
5、AT+CWJAP="填写自己的wifi账号","wifi密码"
6、AT+MQTTUSERCFG=0,1,"设备名字","产品ID","token",0,0,"" //这边与下面的格式相反,先设备后产品
7、AT+MQTTCONN=0,"mqtts.heclouds.com",1883,1 //进入onenet网站,这个不需要改
8、AT+MQTTSUB=0,"$sys/产品id/设备名称/thing/property/set",0 //订阅信息
9、AT+MQTTSUB=0,"$sys/产品ID/设备名称/thing/property/post/reply",1 //接收信息
10、最后,注意:看前面文章,代码里面的发送模板中的逗号,不能直接用,要像这个格式“ \, ”(AT格式)(即将程序中的逗号,替换成\,)
AT+MQTTPUB=0,"$sys/Ub5o1Sg9ot/ESP32-S3-DevKitC-1/thing/property/post","{\"id\":\"123\"\,\"version\":\"1.0\"\,\"params\":{\"temp\":{\"value\":25}}}",0,0
1.打开串口助手“XCOM V2.6”
2.
输入AT
→输入AT+RST(此处结果不一致,因为我配置过wifi)
→输入“AT+CWMODE=1”
3.
输入AT+CWDHCP=1,1
→输入AT+CWJAP="Xiaomi 15","147258369
→输入AT+MQTTUSERCFG=0,1,"ESP32-S3-DevKitC-1","Ub5o1Sg9ot","version=2018-10-31&res=products%2FUb5o1Sg9ot%2Fdevices%2FESP32-S3-DevKitC-1&et=1900930301&method=md5&sign=I23rTodBbOK0X7ueXc2bwA%3D%3D",0,0,""
4.
输入AT+MQTTCONN=0,"mqtts.heclouds.com",1883,1
→输入AT+MQTTSUB=0,"$sys/Ub5o1Sg9ot/ESP32-S3-DevKitC-1/thing/property/set",0
→输入AT+MQTTSUB=0,"$sys/Ub5o1Sg9ot/ESP32-S3-DevKitC-1/thing/property/post/reply",1
5.上传数据
注意:看我之前的物模型的文章,代码里面的发送模板中的逗号,不能直接用,要像这个格式“ , ”(AT格式)(即将程序中的逗号,替换成,)
AT+MQTTPUB=0,"$sys/Ub5o1Sg9ot/ESP32-S3-DevKitC-1/thing/property/post","{\"id\":\"123\"\,\"version\":\"1.0\"\,\"params\":{\"temp\":{\"value\":25}}}",0,0
三、二次测试
将USB to TTL拔掉,重新插上。
此时用串口输入 AT指令(网络只需要配置一次)
此时也能上传成功,则正确
6、AT+MQTTUSERCFG=0,1,"设备名字","产品ID","token",0,0,"" //这边与下面的格式相反,先设备后产品
7、AT+MQTTCONN=0,"mqtts.heclouds.com",1883,1 //进入onenet网站,这个不需要改
8、AT+MQTTSUB=0,"$sys/产品id/设备名称/thing/property/set",0 //订阅信息
9、AT+MQTTSUB=0,"$sys/产品ID/设备名称/thing/property/post/reply",1
10、最后,注意:看前面文章,代码里面的发送模板中的逗号,不能直接用,要像这个格式“ \, ”(AT格式)(即将程序中的逗号,替换成\,)
AT+MQTTPUB=0,"$sys/Ub5o1Sg9ot/ESP32-S3-DevKitC-1/thing/property/post","{\"id\":\"123\"\,\"version\":\"1.0\"\,\"params\":{\"temp\":{\"value\":25}}}",0,0
总结
本文搭建了 基于Arduino的ESP8266连接OneNET云平台(MQTT协议 物模型)的基础环境,下篇文章将讲解对应的Arduino代码。