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')