ESP-AT

  • at
  • AT
  • ESP-AT

ESP8266通过AT指令使用浏览器进行WiFi配网,每次发送"AT+WEBSERVER=1,80,25"之后就会报错"ERROR"无法成功创建web server

问题出现的原因:默认的 AT 固件并不支持 AT web server 的功能
解决方式:

  1. 基于ESP_AT工程环境通过./build.py menuconfig命令配置开启AT web server 的功能;对于 ESP8266 设备,需要关闭一些不必要的选项来存储必要的 html文件。
  2. 完成配置后保存,然后./build.py进行编译,编译完成后将支持AT web server 功能的固件烧录进ESP8266里。

ESP-AT 执行 "AT+CIPSTART" 阻塞,有指令可以中断吗?

  • AT 层不提供强制中断 CIPSTART 的命令
  • 在 TCP 连接超时之前,AT+CIPSTART 会处于阻塞状态

规避/优化方式:

  • 缩短 TCP 连接超时时间(服务端或设备侧配置)。
  • 业务层避免并发下发 BLUFI / 配网类命令 与网络连接命令。
  • 合理规划命令时序,避免在网络不稳定场景下频繁发起 CIPSTART

ESP-AT 在 STA 模式下 ping 延迟较高,如何降低延迟?

  • 原因说明:

ESP-AT 默认配置为 AT+SLEEP=1,即 Wi-Fi Modem-sleep 模式。在该模式下,当设备工作在 Station (STA) 模式时,Wi-Fi 射频会依据 AP 的 DTIM 周期周期性进入休眠,从而增加数据包(如 ping)的响应延迟。

解决方法:
在设备上电后,将睡眠模式关闭即可显著降低 ping 延迟:

AT+SLEEP=0

该设置会禁用 Modem-sleep,使 Wi-Fi 射频保持常开状态,从而避免因 DTIM 机制引入的延迟问题。

注意事项:

  • 关闭睡眠模式会提升实时性,但同时会增加功耗
  • 该设置仅在 Wi-Fi 工作于 STA 模式时生效

ESP-AT 是否支持自定义 BLE Service 和 Characteristic?

支持,并且可以完全自定义:

  • Service
  • Characteristic
  • Descriptor

可以通过 AT+SYSMFG 修改 ble_data 命名空间来实现,本质上是动态修改 GATT 表,也就是 gatts_data.csv

参考文档:
https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32c3/AT_Command_Examples/sysmfg_at_examples.html#gatts

ESP-AT 中修改 BLE UUID 后,会立即生效吗?

不会立即生效。

BLE 的 GATT 表会在初始化时注册到协议栈中,UUID 属于 Attribute Table 的静态属性;同时,客户端在连接建立后通常还会缓存服务结构。因此修改 UUID 后,必须重新初始化 BLE,新的 UUID 才能生效。

ESP-AT 如何修改 UART 配置?

ESP-AT 提供多种修改 UART 配置的方法:

  • 使用 AT+UART_CURAT+UART_DEF 设置当前或默认 UART 波特率。
  • 通过 AT+SYSMFG 修改出厂默认参数。
  • 重新编译 AT 固件,修改默认 UART 配置。

使用 ESP32-C3 AT 固件建立蓝牙连接后,发送 “AT+SLEEP=2” 进入 Light-sleep 失败,是什么原因?

如果出现该问题,UART0 通常会输出如下报错日志:

E (40369) at-base: shouldn't enable sleep when softap is enabled

这说明当前设备的 Wi-Fi 工作在 SoftAP 模式,而 AT 固件不支持在 SoftAP 模式下开启睡眠。

解决方法如下:

  1. 发送 AT+CWMODE=1,将设备切换到 Station 模式,关闭 SoftAP
  2. 再发送 AT+SLEEP=2 开启 Light-sleep

此外,如果在 BLE 模式下使用 Light-sleep,还需要确保外接 32 KHz 晶振,否则也无法正常休眠。