官方文档:物联网开放平台
看本节内容之前先去看这个ESP8266-MQTT:
2026/3/13大约 20 分钟
官方文档:物联网开放平台
看本节内容之前先去看这个ESP8266-MQTT:
ESP8266实物:
接线如下:
| 指令 | 返回 | 用途 |
|---|---|---|
AT+UART=115200,8,1,0,0 |
OK | 设置波特率 |
AT |
OK | 测试 AT 指令是否可用 |
AT+RST |
OK 等初始化信息 | 重启 ESP8266 |
AT+GMR |
版本信息 | 查看固件版本 |
AT+CWMODE=1 |
OK | 设置 WiFi 模式(STA模式) ESP8266 可以作为客户端(STA)、热点(AP),或两者共存(AP+STA)。 0为关闭wifi,1为STA模式,2为AP模式,3为AP+STA模式 |
AT+CWJAP="名称","密码" |
WIFI CONNECTED WIFI GOT IP OK |
连接 WiFi |
AT+CWJAP? |
+CWJAP:"你的WiFi名称","xx:xx:xx:xx:xx:xx",channel,signal_strength | 查看连接状态(检查是否成功连接) |
AT+CIFSR |
+CIFSR:STAIP,"192.168.1.100" +CIFSR:STAMAC,"a4:e5:7c:26:1a:3f" OK |
获取分配的IP |
AT+CWQAP |
OK | 断开 WiFi 连接 |
先了解原理,再通过MQTTx进行进一步测试,最后在ESP8266上实现,按流程来遇到问题时可及时排查
AT+MQTTUSERCFG=0,1,"ESP8266Client","myname","password",0,0,""
不报错证明可用
报错的话说明固件不支持MQTT,请烧录如下固件:
后面所有系列全部基于该固件讲解的,实在不想使用如下固件,请不要看该视频
OLED用来显示调试信息
void uart_print(UART_HandleTypeDef *huart,char* format,...) {
char buf[128]={0};
va_list ap;
va_start(ap,format);
vsprintf(buf,format,ap);
va_end(ap);
HAL_UART_Transmit(huart,(uint8_t*)buf,strlen(buf),HAL_MAX_DELAY);
}
由于是stm32主动获取固件,所以我使用了类似于AT指令的架构去处理如何连接wifi,设置固件位置,拉取固件等,将主动权交给stm32
没有云服务器也没关系,可以自己的电脑当作服务器。
本固件将 ESP8266 作为 STM32 的 Wi-Fi 协处理器(网关)。它通过串口(UART)接收 STM32 的 AT 指令,负责连接 Wi-Fi、管理配置信息(EEPROM),并从指定的 HTTP 服务器下载固件数据,通过自定义的分包协议传输给 STM32,用于实现 OTA(空中升级)功能。