ESP01S刷MQTT固件
简单步骤(这个方法不知为啥连接不上MQTT-可能是公司组mese)
刷个ESP01S把我卡了将近一天,特难受,记录一下正确的烧录固件方式。之前刷了固件总是没一点返回值(输入AT\r\n),只是在电源重接时才会接收到一些乱码,总以为是CH340接出的3.3V电压不稳,换成PL2303HXD串口也没是一样没反应,改成用MCU里提供的电源照样没反应,其实就是刷固件的某些细节弄错了。
所需资料下载:链接:https://pan.baidu.com/s/1kuAWqa2V5djK2eT4i68HWA?pwd=h9n7提取码:h9n7
- 刷固件接线方式
TTL ESP01S
3.3V —— 3V3
3.3V —— EN
GND —— IO0
GND —— GND
RX —— TX
TX —— RX
烧录步骤
2.1 解压flash_download_tool_3.9.2_0.zip 并进入文件双击运行
弹出
选择OK。
2.2 解压得到
2.3
2.4 等待呈现烧录完成。
2.5 烧录完成后接线方式(注意:先把TTL USB接口取下断电)
TTL ESP01S
3.3V —— 3V3
GND —— GND
RX —— TX
TX —— RX
2.6 测试MQTT固件是否刷成功
2.6.1 出bug , 其实重新上电就好了(把ESP01S的3V3针脚线拔了,重新接上就OK了)。
2.6.2 打开安信可的串口调试助手
测试成功
自己尝试使用的Ubuntu烧录方法
根据前面接好线以后,在下载时记得将IO0的下拉去掉,否则会出现
A fatal error occurred: MD5 of file does not match data in flash!问题 错误
所需文件下载地址:
1.烧录WIFI固件工具:ESP_DOWNLOAD_TOOL
下载地址:https://www.espressif.com/sites/default/files/tools/flash_download_tool_3.9.2_0.zip
2.安信可串口调试助手
下载地址:https://docs.ai-thinker.com/_media/tools/aithinker_serial_tool_v1.2.3.7z
3.MQTT透传AT固件(固件号:1471)
下载地址:https://docs.ai-thinker.com/_media/1471_esp8266-at_mqtt-1m.zip
ESP-01S ESP8266详情
产品概述
ESP-01S ESP8266 是基于乐鑫ESP8266开发的低功耗WiFi模块,可以方便地进行二次开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。
模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA。支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。
ESP8266 是高性能无线 SoC,以最低成本提供最大实用性,为 Wi-Fi 功能嵌入其他系统提供无限可能。
产品特点
- 体积超小的802.11b/g/n WiFi SOC模块
- 采用低功率32位CPU,可兼作应用处理器
- 主频最高可达160MHz
- 支持USART、GPIO等接口
- 支持多种休眠模式,深度睡眠电流低至20uA
- 内嵌LWIP协议栈
- 支持STA、AP、STA+AP工作模式
- 支持smart config、AirKiss一键配网
- 通用AT指令可快速上手
- 支持SDK二次开发
- 支持串口本地升级和远程固件升级(FOTA)
选型列表
模组认证对比:
- ESP-01:暂无
- ESP-01M:FCC/CE/SRRC/REACH/RoHs
- ESP-01S:RoHs
- ESP-07:暂无
- ESP-07S:FCC/CE/SRRC/REACH/RoHs
- ESP-12F:FCC/CE/SRRC/IC/KCC/NCC/REACH/TELEC/ANATEL/RoHs
- ESP-12S:FCC/CE/SRRC/RoHs/阿里飞燕认证
- ESP-15F:SRRC
电气参数对比:
型号 | 芯片方案 | 天线形式 | 封装形式 | 尺寸 (mm) | 传输距离 (米) | 供电电压 | SPI Flash | IO 数 | Modem Sleep | Light Sleep | Deep Sleep |
---|---|---|---|---|---|---|---|---|---|---|---|
ESP-01 | ESP8266 | 板载天线 | DIP-8 | 24.7 * 14.4 * 11.0 | 50 | 3.3V | 8Mbit | 2 | 20mA | 2mA | 20uA |
ESP-01M | ESP8285 | 板载天线 | DIP-18 | 18.0 * 18.0 * 2.8 | 40 | 3.3V | 8Mbit / 16Mbit | 11 | 20mA | 2mA | 20uA |
ESP-01S | ESP8266 | 板载天线 | DIP-8 | 24.7 * 14.4 * 11.0 | 50 | 3.3V | 8Mbit | 2 | 20mA | 2mA | 20uA |
ESP-07 | ESP8266 | IPEX座 / 陶瓷天线 | SMD-16 | 21.2 * 16.0 * 3.0 | 50 | 3.3V | 8Mbit | 9 | 20mA | 2mA | 20uA |
ESP-07S | ESP8266 | IPEX座 / 陶瓷天线 | SMD-16 | 17.0 * 16.0 * 3.0 | 100 | 3.3V | 32Mbit | 9 | 20mA | 2mA | 20uA |
ESP-12F | ESP8266 | 板载天线 | SMD-22 | 24.0 * 16.0 * 3.0 | 80 | 3.3V | 32Mbit | 9 | 20mA | 2mA | 20uA |
ESP-12S | ESP8266 | 板载天线 | SMD-16 | 24.0 * 16.0 * 3.0 | 80 | 3.3V | 32Mbit | 9 | 20mA | 2mA | 20uA |
ESP-15F | ESP8266 | 板载天线 / IPEX座 | PH2.54接线器 | 41.3 * 24.1 * 6.6 | 50 | 5V | 32Mbit | 3 | 多种 | 多种 | 多种 |
- 通信协议:完整的802.11b/g/n WiFi SoC模块
- 工作频段:2400~2483.5MHz
使用说明
ESP-01S ESP8266 出厂时已默认内置 AT 固件,且默认波特率为 115200,可参考 #设计指南 搭建最小系统电路,之后即可进行 AT 指令操作。
串口与网络调试助手下载:串口调试助手
硬件连接
注意 |
---|
由于模块功率较大,尽量请勿使用 USB 转 TTL 的 3.3V 供电。建议使用 3 节干电池或经过 LDO 转换后的 3.3V。 |
使用示例
本章节讲解如何在 PC 端通过串口配置 2 个 ESP-01S ESP8266 通过 TCP 相互通信。
注意 |
---|
所有的 AT 命令都需要以 \r\n 结束(回车换行)。如果在 PC 端进行测试,可通过 PC 端代替一端模块建立相应的连接。 |
更多示例请参考:
TCP 通信测试
本实验需要用到 2 个模块,如果用 PC 端作为服务器的话,单个模块也可以进行这个实验,见#HTTP 通信测试。
TCP Server 端配置:
1 | AT+CWMODE=2 //配置为 AP 模式,响应:OK |
TCP Client 端配置:
1 | AT+CWMODE=1 //配置为Station 模式 |
出现 > 符号之后,串口发送任意 12 个字节,如 Hello world! (不带回车换行)
此时Server端的串口打印:
1 | +IPD,0,12:Hello world! |
上述操作如果执行成功的话,预期结果如下:
Server 端: | Client 端: |
---|---|
TCP Server 端通信完成之后,如需关闭服务器,则发送:
1 | AT+CIPSERVER=0 //关闭服务器 |
HTTP 通信测试
如果只有一个模块的话,用户只要能把它连接到路由器中,也可以对单个模块进行测试。本例子中,模块是 Client 端,以访问本网页为例。
Client 端配置:
串口依次发送:
1 | AT+CWMODE=1 //配置为Station 模式 |
出现 > 符号之后,串口发送 GET 请求:
1 | GET / HTTP/1.1 |
之后服务器便会返回响应的内容。
退出透传,不要勾选新行(\r\n):
1 | +++ |
退出连接。
固件烧录方法
管脚电平
进入下载模式的时候,需要把 GPIO0管脚拉低,EN拉高,其他IO管脚悬空。管脚分布图见 #产品尺寸。
步骤
\1. 打开烧录软件:ESP Download Tool。
\2. 依次点击 Developer Mode –> ESP8266 DownloadTool。
\3. 点击 […],选择所需固件,固件下载请参见 #ESP8266 固件汇总。
\4. 选择之后记得勾选固件,勾选之后固件路径会变绿。
\5. 填入固件的起始位置,一般是 0x0,详见对应固件的说明。
\6. CrystalFreq:26M,此处禁止修改。
\7. SPI SPEED:40M,此处禁止修改。
\8. SPI MODE:DOUT
\9. FLASH SIZE:8Mbit
\10. 选择相应的串口,波特率任意。建议使用 FT232 串口模块,可以支持更高的波特率,有些串口模块不支持超过 1M 的波特率。
\11. 断开电源,点击 START,等待上电同步。
\12. 重新上电便会开始下载。如果烧录成功,Download Panel 将提示:FINISH。
产品尺寸
管脚定义
# | 名称 | 说明 |
---|---|---|
1 | GND | GND |
2 | IO2 | U1_TXD,I2C_SDA,I2SO_WS |
3 | IO0 | GPIO0,HSPI_MISO,I2SI_DATA |
4 | RXD | GPIO3,I2SO_DATA |
5 | TXD | GPIO1 |
6 | EN | 芯片使能端,高电平有效 |
7 | RST | 复位引脚,低电平有效 |
8 | VCC | 模组供电引脚,电压范围 3.0~3.6V |
启动模式
模式 | CH_PD (EN) | RST | GPIO15 | GPIO0 | GPIO2 | TXD0 |
---|---|---|---|---|---|---|
下载模式 | 高 | 高 | 低 | 低 | 高 | 高 |
运行模式 | 高 | 高 | 低 | 高 | 高 | 高 |
测试模式 | 高 | 高 | - | - | - | 低 |
电气特性
最大额定值
额定值 | 条件 | 值 | 单位 |
---|---|---|---|
存储温度 | - | -40 ~ 125 | ℃ |
最大焊接温度 | - | 250 | ℃ |
工作电压 | IPC/JEDEC J-STD-020 | +3.0 ~ +3.6 | V |
建议工作环境
工作温度 | -20 | 25 | 70 | ℃ |
---|---|---|---|---|
供电电压 | 3.0 | 3.3 | 3.6 | V |
数字端口特征
说明 | 名称 | 最小值 | 典型值 | 最大值 | 单位 |
---|---|---|---|---|---|
输入逻辑电平低 | VIL | -0.3 | - | 0.25 * VDD | V |
输入逻辑电平高 | VIH | 0.75 * VDD | - | VDD + 0.3 | V |
输出逻辑电平低 | VOL | N | - | 0.1 * VDD | V |
输出逻辑电平高 | VOH | 0.8 * VDD | - | N | V |
- 注意:如无特殊说明,测试条件为:VDD = 3.3 V,温度为 25 ℃。
功耗
所有测量均在没有 SAW 滤波器的情况下,于天线接口处完成。
所有发射数据是基于 90% 的占空比,在持续发射的模式下测得的。
模式 | 典型值 | 单位 |
---|---|---|
传送 802.11b, CCK 11Mbps, POUT=+17dBm | 170 | mA |
传送 802.11g, OFDM 54Mbps, POUT =+15dBm | 140 | mA |
传送 802.11n, MCS7, POUT =+13dBm | 120 | mA |
接收 802.11b,包长 1024 字节, -80dBm | 50 | mA |
接收 802.11g,包长 1024 字节, -70dBm | 56 | mA |
接收 802.11n,包长 1024 字节, -65dBm | 56 | mA |
Modem-Sleep① | 20 | mA |
Light-Sleep② | 2 | mA |
Deep-Sleep③ | 20 | uA |
Power Off | 0.5 | uA |
- 注①:Modem-Sleep⽤于需要 CPU 一直处于工作状态如 PWM 或 I2S 应⽤等。在保持 WiFi 连接时,如果没有数据传输,可根据 802.11 标准 (如 U-APSD),关闭 WiFi Modem 电路来省电。例如,在 DTIM3 时,每 sleep 300mS,醒来 3mS 接收 AP 的 Beacon 包等,则整体平均电流约 20mA。
- 注②:Light-Sleep 用于 CPU 可暂停的应用,如 WiFi 开关。在保持 WiFi 连接时,如果没有数据传输,可根据 802.11 标准(如 U-APSD),关闭 WiFi Modem 电路并暂停 CPU 来省电。例如,在 DTIM3 时,每 sleep 300 ms,醒来 3ms 接收 AP 的 Beacon 包等,则整体平均电流约 2 mA。
- 注③:Deep-Sleep 用于不需一直保持 WiFi 连接,很长时间才发送一次数据包的应用,如每 100 秒测量⼀次温度的传感器。每 300 s 醒来后需 0.3s - 1s 连上 AP 发送数据,则整体平均电流可远小于 1mA。
发射功率
描述 | 最小值 | 典型值 | 最大值 | 单位 |
---|---|---|---|---|
802.11b@11Mbps | 14 | 16 | 18 | dBm |
802.11g@54Mbps | 12 | 14 | 16 | dBm |
802.11n@HT20, MCS7 | 11 | 13 | 15 | dBm |
接收灵敏度
参数 | 典型值 | 单位 |
---|---|---|
DSSS, 1 Mbps | -90 | dBm |
CCK, 11 Mbps | -85 | dBm |
6 Mbps (1/2 BPSK) | -88 | dBm |
54 Mbps (3/4 64-QAM) | -70 | dBm |
HT20, MCS7 (65 Mbps, 72.2 Mbps) | -67 | dBm |
设计指南
天线摆放说明
为了使终端产品获得最佳的射频性能,请注意根据本指南合理设计模块及天线在底板上的摆放位置。
- 方案 1(推荐):将模块沿 PCB 板边放置,且天线在板框外;
- 方案 2:将模块沿 PCB 板边放置,天线沿板边放置且下方挖空;
模块外围走线说明
- 模块外围引出了一些 GPIO 口,如需使用建议在 IO 口上串联 10-100 欧姆的电阻。这样可以抑制过冲,是两边电平更平稳。对 EMI 和 ESD 都有帮助。
- 特殊 IO 口的上下拉,需参考规格书的使用说明,此处会影响到模块的启动配置。
- 模块的 IO 口是 3.3V 如果主控与模块的 IO 电平不匹配,需要增加电平转换电路。
- 如果 IO 口直连到外围接口,或者排针等端子,建议在 IO 走线靠近端子处预留 ESD 器件。
GPIO 电平转换
电源参考设计
ADC 参考设计
自动下载电路
回流焊炉温曲线
资源下载
ESP8266 和 ESP8285 资源通用。
用户手册
示例程序
ESP8266 固件汇总
博安通 AT 固件
- 特性:操作简单,任何mcu均可直接接入
- 下载地址: 博安通出厂固件
- 更新时间:2019年12月22日
- 更新说明: v1.7.1.0 AT Firmware,内含 8Mbit 和 32Mbit 两个版本,请客户根据自己产品的flash大小来烧录
直连腾讯开发平台的AT固件
- 特性:可连接腾讯开发平台
- 下载地址: 安信可腾讯云AT固件
- 更新说明:2020年02月28日更新,串口引脚为 txd=GPIO15, rxd=GPIO13.
MQTT 透传AT固件 (默认)
- 特性:支持TLS连接,务必注意通讯引脚为( txd=GPIO15, rxd=GPIO13)
- 下载地址: MQTT固件
- 使用说明: ESP8266-MQTT指令手册
- 更新时间:2020年2月21日
- 更新说明:IO13为RX、IO15为TX作为AT串口与单片机TX/RX接线连接,串口1作为log串口,默认波特率为115200。测试TCP直连服务器使用 EMQ,测试TLS连接服务器使用 AWS。
MQTT透传AT固件(AT通讯串口改为UART0)
- 特性:支持TLS连接
- 下载地址:MQTT固件(改)
- 使用说明:ESP8266-MQTT指令手册
- 更新时间:2020年5月09日
- 更新说明:正常的RX、TX作为AT串口与单片机TX/RX接线连接,串口1作为log串口,默认波特率为115200。测试TCP直连服务器使用 EMQ,测试TLS连接服务器使用 AWS。
出厂默认 AT 固件
- 特性:一条指令即可连接到安信可云服务,操作简单,任何mcu均可直接接入
- 下载地址:默认出厂固件
- 更新时间:2017年11月30日
- 更新说明:v1.5.4.1 AT Firmware,内含 8Mbit 和 32Mbit 两个版本 ,注意:1MByte flash的模组因为内存不足,所有带AiCloud2.0的AT固件都不能使用,flash大于或等于2MByte。使用CIUPDATE命令升级前,请确认模组的flash大于或等于2M!
ESP8266 开发工具
SDK 一体化开发环境:
- 下载地址:网盘链接 提取码: fzfd
- 更新时间:2019.07.22
- 更新说明:支持 ESP32/ESP8266
烧录WiFi固件工具:
- 下载地址:ESP Download Tool
- 更新时间:2020.8.15
- 更新说明:支持ESP32/ESP32-S2/ESP8266/ESP8285
AT 指令
官方应用文档
- ESP8266 SSL加密使用手册 中文,英文
- ESP8266 低功耗解决方案 中文,英文
- ESP8266 flash读写说明 中文,英文
- ESP8266 云端升级指南中文,英文
- ESP8266 固件下载协议中文,英文
- ESP8266 技术参考 中文,英文
- ESP8266 常见问题 中文,英文
- ESP8266 硬件设计指南 中文,英文
- ESP8266 WIFI信道选择指南 中文,英文
- ESP8266_RTOS_SDK 编程手册(RTOS SDK V2.X 及之前版本) 中文,英文
- ESP8266_RTOS_SDK API参考(RTOS SDK V2.X 及之前版本) 中文
- ESP8266_RTOS_SDK V3.0 及之后版本编程代码 编程指南
产品规格书
SDK 二次开发资料
云平台对接示例
- 对接腾讯物联开发平台 (不支持任何音响语音控制)
- AT对接亚马逊云平台(不支持任何音响语音控制)
- AT透传指令接入阿里云物联网平台笔记(非天猫精灵语音控制)
- AT透传指令接入微软IOT物联网平台
- 接入天猫精灵IOT平台控制单路插座的教程 (支持天猫精灵语音控制)
- 接入天猫精灵IOT平台实现控制RGB冷暖灯的教程 (支持天猫精灵语音控制)
- 接入阿里生活飞燕平台国际版,实现亚马逊Alexa Echo音响语音控制; (不支持天猫精灵语音控制)
- 接入阿里飞燕 , 轻松天猫精灵语音控制单片机。 (天猫精灵语音控制)
- 小程序MQTT通过连接百度天工远程控制安信可ESP8266开发板; (不支持任何音响语音控制)
ESP8266上云实验
由于AT固件的配置过于麻烦,所以使用了MQTT固件进行配置。
ESP8266 - MQTT固件
由于购买回来的ESP8266-01S默认的是AT固件,现在需要用到MQTT指令,所以需要将其刷到AT固件
MQTT 固件 : https://docs.ai-thinker.com/_media/1471_esp8266-at_mqtt-1m.zip
刷固件软件 :https://docs.ai-thinker.com/_media/flash_download_tool_v3.8.5_1.zip
将以上两个文件均下载,保存。
打开刷固件软件 - 选择ESP8266 -> DOWNLOADTOLL -> 将固件包导入
其余配置如图所示,配置完可以点击START
遇到的问题
- RST和INT0需用杜邦线接地,然后把RST悬空。点击START后,会显示等待上电同步,需插拔一下3.3V电源线,然后就能跑起来
- 设置SPI SPEED 为 20Mhz 和 SPI MODE 为 DIO、 波特率为115200
- 没有勾选固件,也是能跑,但跑了个寂寞
- 刷完固件,需重新启动一下,然后通过串口查询当前的固件版本 AT+GMR
ESP8266 - MQTT配置指令
指令 | |
---|---|
配置 STA 模式 | AT+CWMODE=1 |
连接路由器 | AT+CWJAP=”wifi_Name”,”wifi_Password” |
配置MQTT属性 | AT+MQTTUSERCFG=0,1,”clientID”,”username”,”password”,0,0,”” |
---|---|
连接制定的 MQTT broker | AT+MQTTCONN=0,”47.111.117.220”,1883,0 |
查询 MQTT 连接状态 | AT+MQTTCONN? |
---|---|
订阅 topic 数据 | AT+MQTTSUB=0,”topicName”,1 |
发布 topic 数据 | AT+MQTTPUB=0,”topicName”,”payload”,1,0 |
---|---|
指令解析
MQTT AT Commands — ESP-AT 用户指南 文档 (espressif.com)
ESP-01/01S 烧录固件
一、ESP-01 与 ESP-01S 的区别
引脚:ESP-01S 的 IO0、RST 和 EN 引脚内置上拉,ESP-01 则没有。
丝印:ESP-01S 背面有引脚定义丝印,ESP-01 则没有。
指示灯:
ESP-01S 只有一个蓝色 LED 指示灯,上电后和进行串口通讯时蓝色 LED 指示灯闪烁。
ESP-01 有一个红色 LED 和一个蓝色 LED 共两个指示灯,上电后红色 LED 指示灯常亮,进行串口通讯时蓝色 LED 指示灯闪烁。
二、ESP-01 与 ESP-01S 烧录 AT 固件
1、模块接线
a、管脚功能定义
b、模组启动模式
c、模块接线
引脚 | 接线 |
---|---|
GND | GND |
IO2 | 3.3V |
IO0 | GND |
RXD | TXD |
TXD | RXD |
EN | 3.3V |
RST | 3.3V |
VCC | 3.3V |
- 如果下载固件时,一直提示等待上电同步,可以将 RST 引脚短接一下 GND 后悬空或者接 VCC。
2、下载 AT 固件
- AT 固件
- 注意事项:因为 SPI Flash 为 8M,所以只能够烧录 8M 的 AT 固件。
3、下载固件烧录工具
烧录工具:flash_dowmload_tool
4、固件烧录步骤
5、模块快速烧录 AT 固件
- 使用 ESP-01/01S转接板 模块快速烧录 AT 固件,免去麻烦的接线过程。
三、ESP-01 与 ESP-01S 发送 AT 指令
1、模块接线
2、上电信息
- 注意:波特率为 76800。如果波特率为 115200,显示窗口则会显示一些乱码,但是不影响使用。
3、发送 AT 指令
- 注意:发送 AT 指令的波特率为 115200,同时需要勾选发送新行。
相关链接(侵删)
欢迎到公众号来唠嗑: