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传感器测得的温度和湿度数据。
程式码说明