提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本系列将以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)
MQTT透传AT固件(固件号:1471)
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代码。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐