Sleep AT 示例
本文档简要介绍并举例说明如何在 ESP32 系列产品上使用 AT 命令设置睡眠模式。
简介
ESP32 系列采用先进的电源管理技术,可以在不同的电源模式之间切换。当前,ESP-AT 支持以下四种功耗模式(更多休眠模式请参考技术规格书):
Active
模式:芯片射频处于工作状态。芯片可以接收、发射和侦听信号。Modem-sleep
模式:CPU 可运行,时钟可被配置。Wi-Fi 基带、蓝牙基带和射频关闭。Light-sleep
模式:CPU 暂停运行。RTC 存储器和外设以及 ULP 协处理器运行。任何唤醒事件(MAC、主机、RTC 定时器或外部中断)都会唤醒芯片。Deep-sleep
模式:CPU 和大部分外设都会掉电,只有 RTC 存储器和 RTC 外设处于工作状态。
默认情况下,ESP32 会在系统复位后进入 Active
模式。当 CPU 不需要一直工作时,例如等待外部活动唤醒时,系统可以进入低功耗模式。
ESP32 的功耗,请参考 ESP32 系列芯片技术规格书。
备注
将分别描述在 Wi-Fi 模式和蓝牙模式下将 ESP32 设置为睡眠模式。
在单 Wi-Fi 模式下,只有
station
模式支持Modem-sleep
模式和Light-sleep
模式。对于蓝牙模式下的
Light-sleep
模式,请确保外部存在 32 KHz 晶振。如果外部不存在 32 KHz 晶振,ESP-AT 将工作在 Modem-sleep 模式。
在 Wi-Fi 模式下设置为 Modem-sleep 模式
设置 Wi-Fi 为 station 模式。
命令:
AT+CWMODE=1
响应:
OK
连接路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
设置休眠模式为 Modem-sleep 模式。
命令:
AT+SLEEP=1
响应:
OK
备注
RF 将根据 AP 的 DTIM 定期关闭(路由器一般设置 DTIM 为 1)。
在 Wi-Fi 模式下设置为 Light-sleep 模式
设置 Wi-Fi 为 station 模式。
命令:
AT+CWMODE=1
响应:
OK
连接路由器。设置监听间隔为 3。
命令:
AT+CWJAP="espressif","1234567890",,,,3
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
设置休眠模式为 Light-sleep 模式。
命令:
AT+SLEEP=2
响应:
OK
备注
CPU 将会自动休眠,RF 则会根据 AT+CWJAP 设置的监听间隔定期关闭。
在蓝牙广播态下设置为 Modem-sleep 模式
初始化为角色为蓝牙服务端。
命令:
AT+BLEINIT=2
响应:
OK
设置蓝牙广播参数。设置蓝牙广播间隔为 1 s。
命令:
AT+BLEADVPARAM=1600,1600,0,0,7,0,0,"00:00:00:00:00:00"
响应:
OK
开始广播
命令:
AT+BLEADVSTART
响应:
OK
禁用 Wi-Fi。
命令:
AT+CWMODE=0
响应:
OK
设置休眠模式为 Modem-sleep 模式。
命令:
AT+SLEEP=1
响应:
OK
在蓝牙连接态下设置为 Modem-sleep 模式
初始化为角色为蓝牙服务端。
命令:
AT+BLEINIT=2
响应:
OK
开启蓝牙广播。
命令:
AT+BLEADVSTART
响应:
OK
等待连接。
如果连接建立成功,则 AT 将会提示:
+BLECONN:0,"47:3f:86:dc:e4:7d" +BLECONNPARAM:0,0,0,6,0,500 +BLECONNPARAM:0,0,0,24,0,500 OK
说明:
在这个示例中,蓝牙客户端的地址为 47:3f:86:dc:e4:7d。
对于提示信息(+BLECONN and +BLECONNPARAM),请参考 AT+BLECONN 和 AT+BLECONNPARAM 获取更多信息。
更新蓝牙连接参数。设置蓝牙连接间隔为 1 s。
命令:
AT+BLECONNPARAM=0,800,800,0,500
响应:
OK
如果连接参数更新成功,则 AT 将会提示:
+BLECONNPARAM:0,800,800,800,0,500
说明:
对于提示信息(+BLECONNPARAM),请参考 AT+BLECONNPARAM 获取更多信息。
禁用 Wi-Fi。
命令:
AT+CWMODE=0
响应:
OK
设置休眠模式为 Modem-sleep 模式。
命令:
AT+SLEEP=1
响应:
OK
在蓝牙广播态下设置为 Light-sleep 模式
初始化为角色为蓝牙服务端。
命令:
AT+BLEINIT=2
响应:
OK
设置蓝牙广播参数。设置蓝牙广播间隔为 1 s。
命令:
AT+BLEADVPARAM=1600,1600,0,0,7,0,0,"00:00:00:00:00:00"
响应:
OK
开始广播。
命令:
AT+BLEADVSTART
响应:
OK
禁用 Wi-Fi。
命令:
AT+CWMODE=0
响应:
OK
设置休眠模式为 Light-sleep 模式。
命令:
AT+SLEEP=2
响应:
OK
在蓝牙连接态下设置为 Light-sleep 模式
初始化为角色为蓝牙服务端。
命令:
AT+BLEINIT=2
响应:
OK
开始广播。
命令:
AT+BLEADVSTART
响应:
OK
等待连接。
如果连接建立成功,则 AT 将会提示:
+BLECONN:0,"47:3f:86:dc:e4:7d" +BLECONNPARAM:0,0,0,6,0,500 +BLECONNPARAM:0,0,0,24,0,500 OK
说明:
在这个示例中,蓝牙客户端的地址为 47:3f:86:dc:e4:7d。
对于提示信息(+BLECONN and +BLECONNPARAM),请参考 AT+BLECONN 和 AT+BLECONNPARAM 获取更多信息。
更新蓝牙连接参数。设置蓝牙连接间隔为 1 s。
命令:
AT+BLECONNPARAM=0,800,800,0,500
响应:
OK
如果连接参数更新成功,则 AT 将会提示:
+BLECONNPARAM:0,800,800,800,0,500
说明:
对于提示信息(+BLECONNPARAM),请参考 AT+BLECONNPARAM 获取更多信息。
禁用 Wi-Fi。
命令:
AT+CWMODE=0
响应:
OK
设置休眠模式为 Light-sleep 模式。
命令:
AT+SLEEP=2
响应:
OK
设置为 Deep-sleep 模式
设置休眠模式为 Deep-sleep 模式。设置 deep-sleep 时间为 3600000 ms。
命令:
AT+GSLP=3600000
响应:
OK
说明:
设定时间到后,设备自动唤醒,调用深度睡眠唤醒桩,然后加载应用程序。
对于 Deep-sleep 模式,唯一的唤醒方法是定时唤醒。