本指南展示了如何使用Arduino IDE与ESP8266(NodeMCU)一起使用深度睡眠。我们将使用定时器唤醒来唤醒深度睡眠,并使用复位(RST)引脚来唤醒外部唤醒。
引入深度睡眠模式
如果您使用电池供电的ESP8266板制作了一个项目,或者只是将ESP8266 NodeMCU板连接到了移动电源。运行一段时间后,您会发现电池使用不了很长时间,特别是在使用Wi-Fi的情况下。
如果将ESP8266置于深度睡眠模式,则可以降低功耗,并且电池续航时间更长。
使ESP8266处于深度睡眠模式意味着可以减少那些在运行时会消耗更多功率的活动(例如Wi-Fi),但是在发生有趣的事情时仅留有足够的活动来唤醒处理器。
睡眠类型
共有三种不同的睡眠模式:调制解调器睡眠,轻度睡眠和深度睡眠。下表显示了每种模式之间的差异(ESP8266数据表中的信息)。
项目调制解调器睡眠浅睡眠沉睡
无线上网关 关 关
系统时钟上 关 关
实时时钟上 上 上
中央处理器上 待定 关
基板电流15毫安 0.4毫安 约20 uA
平均电流(DTIM = 1)16.2毫安 1.8毫安 –
平均电流(DTIM = 3)15.4毫安 0.9毫安 –
平均电流(DTIM = 10)15.2毫安 0.55毫安