Power Save - DHT 和 E-Paper 的深度睡眠
材料準備
範例說明
Ameba-D支持低功耗模式,即深度睡眠模式。 深度睡眠模式會關閉大多數系統power domain。 DeepSleep模式下核心模塊的功耗約為7uA至8uA,而正常狀態下約為22mA。 該範例演示了系統在“工作”和“睡眠”(省電)之間進行切換。當系統處於喚醒狀態時,使用DHT傳感器讀取數據並在Eink屏幕上顯示。 5秒鐘後,系統自動進入DeepSleep模式以節電。 系統將通過喚醒源(Aon計時器,Aon引腳或RTC計時器)喚醒。
步驟
DHT 傳感器有 2 種版本,一種是 4 個引腳,另一種是3 個引腳安裝在小型 PCB 上。PCB 安裝的版本包括一個用於信號線的 10K Ohm 上拉電阻。如果您使用未安裝在 PCB 上的 DHT 傳感器,則必須添加一個 10K Ohm 上拉電阻。 您可以參考下面的接線圖。
在https://github.com/ambiot/ambd_arduino/tree/master/Arduino_zip_libraries 下載 Eink 庫 AmebaEink.zip。 然後安裝 AmebaEink.zip。
打開 “File” -> “Examples” -> “AmebaPowerSave” -> “DeepSleep_DHT_Eink_Example”
如下圖所示設置條件值。
“DS_WAKEUP_SOURCE” 用於設置喚醒源,用戶可以從以下3個喚醒源來選擇,
- AON Timer (SET_DS_AON_TIMER_WAKEUP);
- AON GPIO pins (SET_AON_WAKEPIN_WAKEUP);
- RTC Timer(SET_DS_RTC_WAKEUP);
使用 AON 定時器作為喚醒源
對於AMB21/AMB22,有5個引腳可以設置為AON引腳和上緣觸發,GPIOA25(D16)、GPIOA26(D17)、GPIOA21(D26)、GPIOA20(D27)、GPIOA(D28)。
對於AMB23,有8個引腳可以設置為AON引腳和上緣觸發,GPIOA12(D9), GPIOA13(D10), GPIOA14(D11), GPIOA15(D12), GPIOA16(D13), GPIOA18(D15), GPIOA19(D16)、GPIOA21(D18)。
對於BW16/BW16-TypeC,只有6個引腳可以設置為AON引腳和上緣觸發,GPIOA_25(D7),GPIOA_26(D8),GPIOA_15(D9),GPIOA_14(D10),GPIOA_13(D11), GPIOA_12 (D12)。
對於AW-CU488 Thing Plus,只有10個引腳可以設置為AON引腳和上緣觸發,GPIOA_18(D0)、GPIOA_16(D1)、GPIOA_17(D2)、GPIOA_13(D3)、GPIOA_12(D4)、 GPIOA_26(D5)、GPIOA_25(D6)、GPIOA_19(D8)、GPIOA_15(D28)、GPIOA_14(D29)。
對於AMB25,只有6個引腳可以設置為AON引腳和上緣觸發,GPIOA_12(D3)、GPIOA_13(D2)、GPIOA_14(D1)、GPIOA_15(D0)、GPIOA_25(D7)、GPIOA_26(D6)。
可以通過AON_TIMER_SLEEP_DURATION在0到32760000範圍(單位毫秒)之間設置AON計時器
使用 AON GPIO 引腳作為喚醒源
對於RTL8722DM,有5個引腳可以設置為AON引腳和上緣觸發,GPIOA25(D16)、GPIOA26(D17)、GPIOA21(D26)、GPIOA20(D27)、GPIOA(D28)。
對於RTL8722DM MINI,有8個引腳可以設置為AON引腳和上緣觸發,GPIOA12(D9), GPIOA13(D10), GPIOA14(D11), GPIOA15(D12), GPIOA16(D13), GPIOA18(D15), GPIOA19(D16)、GPIOA21(D18)。
這些 AON 引腳可以使用 SET_AON_GPIO_WAKEUP_GPIOA25 或您想使用的引腳進行設置,如下圖所示。
使用 RTC 定時器作為喚醒源
RTC定時器通過設置鬧鐘喚醒系統。 鬧鐘具有4個值,日,時,分和秒。 可以通過DS_RTC_ALARM_DAY,DS_RTC_ALARM_HOUR,DS_RTC_ALARM_MIN和DS_RTC_ALARM_SEC設置所有4個值。
DHTPIN用於設置DHT傳感器數據引腳。 用戶可以選擇任何GPIO引腳。
DHTTYPE用於設置DHT傳感器類型。 (DHT11,DHT22和DHT33)
完成條件值設置後,系統將運行並在正常工作模式和喚醒源控制的深度睡眠模式之間切換。 系統喚醒時,Eink屏幕將顯示從DHT傳感器測得的溫度和濕度數據。
程式碼說明