使用MicroPython 的ESP32 或ESP8266 進入Deep Sleep 模式,可通過
machine.deepsleep(time_in_us)
函數設定喚醒時間,或利用 machine.Pin(pin_id)
配合喚醒源進行外部喚醒。 喚醒方式包含時間喚醒、外部中斷喚醒(如RTC IO 腳位)或外部重啟。 為達到最佳省電效果,應盡量縮短從Deep Sleep 醒來後的程式執行時間,減少不必要的printf 輸出,並集中發送數據包。 進入Deep Sleep 模式
您可以使用
machine
模組中的 deepsleep()
方法來進入深度睡眠模式。 喚醒方式
- 時間喚醒:
- 利用Deep Sleep 模式下的內部RTC 計時器來喚醒晶片。
- 設定未來進入睡眠後應多久後喚醒,時間單位為微秒(us)。
- 範例(ESP32/ESP8266):
- Deep Sleep 模式喚醒後會重新啟動晶片。
- 外部喚醒(RTC_GPIO):
- ESP32/ESP8266 都支援通過某些GPIO 腳位來喚醒Deep Sleep 模式。
- ESP8266: 通常使用 GPIO16 (也稱為XPD_DCDC),將此腳位拉低即可喚醒。
- ESP32: 可使用 RTC_GPIO 腳位,透過
machine.Pin()
設定喚醒源。 - 範例(ESP32):
- ESP32/ESP8266 都支援通過某些GPIO 腳位來喚醒Deep Sleep 模式。
省電的建議
- 關閉或縮短不必要的功能,例如關閉RF 校準,以減少啟動時間和電流消耗。
- UART 的緩衝區(FIFO)消耗時間較多,盡量避免在程式中進行大量打印。
- 在Deep Sleep 醒來後,將多個數據包集中一起發送,而不是分散發送,因為發送動作本身消耗能量,一次處理時間越短越有利於節能。
- 某些特殊型號的Flash 芯片(例如ESP8266 的ISSI-IS25LQ025)可以縮短加載固件的時間,進一步省電。
沒有留言:
張貼留言