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')
注:經測試深度睡眠模式存在些問題!