文章目录
我在使用ESP8266的时候遇到了一些问题,像给固件烧录、和单片机结合使用MQTT协议给云服务器发送数据等。乐鑫有提供基础的AT固件,可以正常使用模组的一些基本的功能,但是针对MQTT协议需要烧录专门的固件使用。因此,我将自己解决遇到的问题解决方法写一下,希望可以帮到你。
一、给NodeMCU烧录固件
由于一般购买的NodeMCU模组引脚比较全,并且将串口也引出,因此在下载固件使用的时候更方便,仅仅需要一条数据线即可(一般都是micro-usb数据线,并且就是可以进行数据传输的那种)。
1.1硬件准备
- 安装windows操作系统的电脑一台
- 数据线一根
- NodeMCU模组
使用数据线连接到电脑,并且可以正常识别到设备。
如果不能正常识别需要考虑:
1、是否安装了CH340串口驱动或者CP2102串口驱动
2、或者考虑芯片串口是否损坏
3、数据线是否不支持数据传输
1.2软件准备
- 使用官方提供的烧录工具Flash Download Tools(点击链接下载)
其中的【doc】文件夹包含下载软件的具体使用方式介绍
解压后,双击exe即可打开软件,下图为界面打开样式
- 选择需要下载的设备类型【ESP8266】模式为【Develop】,点击【ok】即可
- 进入到路径配置和烧录参数配置界面
1.3AT固件下载
- 有关乐鑫系列模组的详情介绍界面
本界面提供有ESP8266不同系列的购买链接和介绍文档
- 进入到安信可的相关固件下载界面(点击直达)
进入到界面可以看到不同类型的固件,有专门的云服务固件,有MQTT相关的固件,本次要进行MQTT测试,因此就是要下载MQTT透传固件即可,它包含了和MQTT协议相关的AT指令。
- 点击固件下载并解压打开
可以看到里面有一个文件夹,进入后显示一个bin文件,后缀为【4M】
固件4其中文件的后缀是【4M】因此可以下载到NodeMCU,也就是ESP12E/F/S上,但是针对ESP8266-01系列就不可以了,需要下载小的固件,后缀为【1M】的。
1.4配置设置
- 打开下载软件,进入到配置界面
- 选择固件的绝对路径,并填写后面的下载起始地址【
0x0
】
- 配置SPI_SPEED为【40MHz】
- 配置SPI_MODE为【DIO】
- 不勾选【DoNotChgBin】
- 手动选择串口
- 将下载速率拉满到【1500000】
- 最后的配置界面为
1.5开始烧录
- 点击左下角的【START】,等待进度条到最后
- 完成下载后显示【FINSH完成】
从这里可以看到软件检测到设备的Flash大小是4MB
,因此下载上面选择的MQTT固件完全可以
一般情况下不需要额外的操作,NodeMCU自身带有下载检测模式,自动将芯片设置为下载模式。
- 打开任意一个串口调试助手,进行简单测试
按下NodeMCU的复位键,可以看到打印的信息:
可以看到打印出来max地址、固件版本、编译时和最后的
ready
二、给ESP8266-01S烧录固件
倘若你手里面有一个烧录架那就更好了,但是我说的方法是在没有烧录架,只有USB转TTL的情况下的方法。
2.1硬件准备
- 安装windows操作系统的电脑一台
- 数据线一根
- ESP8266-01模组
2.2AT固件下载
- 选择第七个固件直达链接
- 点击固件下载并解压打开
可以看到里面有一个文件夹,进入后显示一个bin文件,后缀为【1M】
固件7其中文件的后缀是【1M】因此可以下载到ESP826601上
2.3连线
- 根据ESP8266的下载模式,需要将GPIO0连接到【GND】
- USB转TTL和ESP8266的连线
UAB转TTL | ESP8266-01S |
---|---|
RXD | TXD |
TXD | RXD |
3.3V | VCC |
GND | GND |
GND | IO0 |
GND | RST |
2.4烧录配置
- 配置的方法同NodeMCU
- 烧录操作
将USB转TTL和ESP8266-01S按照上面的接线图连接,然后按下软件上左下角的【START 】
然后将接线的RST断开,然后下载状态将会变化,等待进度条走完即可 - 烧录完成
- 打开任意一个串口调试助手,进行简单测试
将【IO0】从【GND】断开,然后将【RST】拉低后断开,可以看到打印的信息:
到此为止,MQTT固件烧录已经完成,你可以应对大多数情况下的固件烧录了
同时,你也可以烧录其他类型的固件进行测试,但是需要注意的是需要进行Flash存储大小的匹配
三、给ESP-12E/F/S单片烧录固件
烧录方式同上。