简单步骤(这个方法不知为啥连接不上MQTT-可能是公司组mese)

刷个ESP01S把我卡了将近一天,特难受,记录一下正确的烧录固件方式。之前刷了固件总是没一点返回值(输入AT\r\n),只是在电源重接时才会接收到一些乱码,总以为是CH340接出的3.3V电压不稳,换成PL2303HXD串口也没是一样没反应,改成用MCU里提供的电源照样没反应,其实就是刷固件的某些细节弄错了。

所需资料下载:链接:https://pan.baidu.com/s/1kuAWqa2V5djK2eT4i68HWA?pwd=h9n7提取码:h9n7

  1. 刷固件接线方式

TTL      ESP01S

3.3V  —— 3V3

3.3V  —— EN

GND —— IO0

GND —— GND

RX —— TX

TX  —— RX

  1. 烧录步骤

    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 打开安信可的串口调试助手
测试成功

所需文件下载地址:

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)

选型列表

模组认证对比:

电气参数对比:

型号 芯片方案 天线形式 封装形式 尺寸 (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
2
3
4
5
AT+CWMODE=2                                 //配置为 AP 模式,响应:OK
AT+CWSAP_DEF="TCP_Server","12345678",5,4 //配置 AP 信息,响应:OK
AT+CIFSR //查询本机 IP 地址
AT+CIPMUX=1 //开启多链接
AT+CIPSERVER=1 //开启服务器

TCP Client 端配置:

1
2
3
4
5
6
AT+CWMODE=1                                 //配置为Station 模式
AT+CWJAP_DEF="TCP_Server","12345678" //连接到AP
AT+CIFSR //查询本机IP 地址
AT+CIPMUX=0 //开启单链接
AT+CIPSTART="TCP","192.168.4.1",333 //连接到TCP 服务器
AT+CIPSEND=12 //发送 12 个字节的数据到服务器端

出现 > 符号之后,串口发送任意 12 个字节,如 Hello world! (不带回车换行)

此时Server端的串口打印:

1
+IPD,0,12:Hello world!

上述操作如果执行成功的话,预期结果如下:

Server 端: Client 端:

TCP Server 端通信完成之后,如需关闭服务器,则发送:

1
AT+CIPSERVER=0                              //关闭服务器

HTTP 通信测试

如果只有一个模块的话,用户只要能把它连接到路由器中,也可以对单个模块进行测试。本例子中,模块是 Client 端,以访问本网页为例。

Client 端配置:

串口依次发送:

1
2
3
4
5
6
AT+CWMODE=1                                 //配置为Station 模式
AT+CWJAP_DEF="SSID","password" //SSID是路由器的名称,password是密码
AT+CIPCLOSE //尝试关闭连接。如果之前没有连接则会报错,可忽略
AT+CIPSTART="TCP","wiki.diustou.com",80 //连接到服务器
AT+CIPMODE=1 //透传模式
AT+CIPSEND //发送内容

出现 > 符号之后,串口发送 GET 请求:

1
2
3
4
GET / HTTP/1.1
Host: wiki.diustou.com:80
Connection: keep-alive
\r\n\r\n(结束符)

之后服务器便会返回响应的内容。

退出透传,不要勾选新行(\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 板边放置,天线沿板边放置且下方挖空;

模块外围走线说明

  1. 模块外围引出了一些 GPIO 口,如需使用建议在 IO 口上串联 10-100 欧姆的电阻。这样可以抑制过冲,是两边电平更平稳。对 EMI 和 ESD 都有帮助。
  2. 特殊 IO 口的上下拉,需参考规格书的使用说明,此处会影响到模块的启动配置。
  3. 模块的 IO 口是 3.3V 如果主控与模块的 IO 电平不匹配,需要增加电平转换电路。
  4. 如果 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 指令

官方应用文档

产品规格书

SDK 二次开发资料

云平台对接示例

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

遇到的问题
  1. RST和INT0需用杜邦线接地,然后把RST悬空。点击START后,会显示等待上电同步,需插拔一下3.3V电源线,然后就能跑起来
  2. 设置SPI SPEED 为 20Mhz 和 SPI MODE 为 DIO、 波特率为115200
  3. 没有勾选固件,也是能跑,但跑了个寂寞
  4. 刷完固件,需重新启动一下,然后通过串口查询当前的固件版本 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)


相关链接(侵删)

  1. ESP01S刷MQTT固件

  2. ESP-01S ESP8266

  3. 基于ESP8266上云实验


=================我是分割线=================

欢迎到公众号来唠嗑: