ESP8266 烧写 AT MQTT 固件
文章开头简单介绍 ESP8266(引自 知乎用户)。
ESP8266 是一个非常强大的 WIFI 模块,可以利用串口与单片机进行通讯,从而编程实现控制 ESP8266。利用 ESP8266 可以访问一些 API,获取天气信息或者完成网络授时,也可以连接云平台进行开发。不过因为是串口传输,速度较慢,不能用来传输图像、视频这些大容量的数据,但是传些传感器数据还是绰绰有余的。
我们常说的 ESP8266 是指 ESP8266 WIFI 模块,它是物联网和嵌入式开发常用的模块,其中 ESP8266 是 WIFI 模块的芯片型号。
ESP8266 有 ESP-01/01S/07/07S/12E/12F/12S 等规格,还有正点原子自研的 ATK-ESP8266 (修改了固件及模组引脚)。
材料准备
本文所需材料:
- USB 转 TTL。用于烧写固件及测试。
- ESP8266 模块(ESP-01S)
- 母对母、公对母(可选)杜邦线若干
- (可选)稳定的 3V3 电源供应
下面两幅图分别展示文章使用的 USB 转 TTL 模块以及 ESP8266(ESP-01S)模块。
固件与烧录程序下载
这里以安信可科技固件举例。进入官网的固件下载页:AT固件汇总 | 安信可科技 (ai-thinker.com)
这两个是可以选择下载的固件,它们的区别是:
- 固件 1112 是 4M 版本的
- 固件 1471 是 1M 版本的
根据需要选择一个下载就行。比如我的 ESP8266 不支持 4M 版本的(烧录程序提示烧录失败),这里就下载 1M 的那个。
下载后得到的关键的两个 Bin 文件名分别为:
- (1112)ESP8266-AT-4M.bin
- (1471)ESP8266-AT_MQTT-1M.bin
烧录程序为:flash_download_tool。软件可以在搜索引擎中寻找,其界面大致如下:
连线
ESP8266 | USB-TTL | 备注 |
---|---|---|
3V3 | 5V(不建议) | 连接 UST-TTL 的 3V3 口电流不稳定会导致 ESP8266 频繁重启,一般连接5V 。而连接 5V 会导致 ESP8266 发烫,有模块烧毁风险。因此建议使用稳定的外部电源供电。这里我使用的就是 STM32 的 3V3 供电。 |
GND | GND | |
TX | RXD | 建议采用直接连接、短线连接的方式以提高成功率。 |
RX | TXD | 建议采用直接连接、短线连接的方式以提高成功率。 |
IO0 | 暂时悬空。IO0 接地后,模块进入烧写模式。 |
|
RST | 暂时悬空。 |
烧录
打开烧录软件,选择 ESP8266。
选择要烧录的固件。固件烧写地址为 0x00。
安照说明和需求进行配置。鼠标悬停会有选项提示。
选择正确的串口 COM
。如果你正在使用其它串口助手记得关闭一下对应串口,避免串口占用导致烧录失败。波特率 BAUD
选择越高下载越快。
烧录前保证 ESP8266 的 IO0
口已接地。
点击 START 后开始烧写。若显示等待上电复位,此时请将 ESP8266 模块 RST
引脚接一下地后再次悬空。
出现 FINISH 说明下载完成。
测试
关闭烧录软件。将 IO0
引脚悬空或置高。
打开你习惯用的串口助手软件。选择正确的端口和波特率,在不经设置的情况下ESP8266 默认波特率为 115200。发送 AT 指令时记得以回车换行结尾。
向ESP8266发送命令 AT
,正常情况下应返回 OK
。
后续就可以进行 MQTT 配置相关测试以验证固件是否烧写成功并正确运行。
本文参考
- 手把手教你玩转ESP8266(原理+驱动) - 知乎 (zhihu.com)
- 关于ESP8266固件烧写无法上电同步问题的解决办法_esp01s固件烧录等待上电同步-CSDN博客
- ESP8266模块接线篇 (正常运行&烧录固件)_esp8266接线图-CSDN博客
- WiFi模块ESP8266(超详细)—(含固件库、AP、STA、原子云使用)_esp8266wifi模块-CSDN博客
- 第05集 通过at命令的方式控制esp8266发布与订阅消息_哔哩哔哩_bilibili
- ESP8266 刷MQTT固件以及连接服务器失败的问题解决_mqttdisconnected:0-CSDN博客
- STM32与物联网01-ESP8266基本操作 - 冰封残烛 - 博客园 (cnblogs.com)
- 基于STM32串口通信的ESP8266WiFi模块使用_cipmux and cipserver must be 0-CSDN博客