1.电源控制

  ESP8266 能够动态更改 CPU 频率,并进入深度睡眠状态。两者都可用于管理功耗。

1.1 更改 CPU 频率

  机器模块具有获取和设置 CPU 频率的功能。要获取当前频率,应:

>>> import machine
>>> machine.freq()
80000000

  默认情况下,CPU 以 80MHz 的速度运行。如果您需要更多的处理能力,可以将其更改为 160MHz,但牺牲了当前消耗:

>>> machine.freq(160000000)
>>> machine.freq()
160000000

  您可以在代码执行大量处理时更改为更高的频率,然后在代码完成时更改回。

1.2深度睡眠模式

  深度睡眠模式将关闭 ESP8266 及其所有外围设备,包括 WiFi(但不包括用于唤醒芯片的实时时钟)。这大大降低了电流消耗,是制造可在电池上运行一段时间的设备的好方法。

要能够使用深度睡眠功能,您必须将 GPIO16 连接到复位引脚(NodeMCU开发板板上的 RST)。然后,以下代码可用于睡眠和唤醒设备:

import machine

# configure RTC.ALARM0 to be able to wake the device
rtc = machine.RTC()
rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)

# set RTC.ALARM0 to fire after 10 seconds (waking the device)
rtc.alarm(rtc.ALARM0, 10000)

# put the device to sleep
machine.deepsleep()

   请注意,当芯片从深度睡眠唤醒时,它完全复位,包括所有内存。启动脚本将照常运行,您可以将代码放入其中,以检查重置原因,如果设备刚刚从深度睡眠中唤醒,则可能会执行不同操作。例如,要打印重置原因,您可以使用:

if machine.reset_cause() == machine.DEEPSLEEP_RESET:
    print('woke from a deep sleep')
else:
    print('power on or hard reset')
12-21 01:57