如何利用 ESP32 的深度睡眠模式来大幅降低功耗
扫描二维码
随时随地手机看文章
在这个 Visuino 项目中,您将学习如何利用 ESP32 的深度睡眠模式来以清晰直观的方式大幅降低功耗,方法是通过闪烁的 LED 来实现。当 ESP32 活动时,LED 会持续闪烁,清晰地表明板子正在运行。当您按下按钮时,ESP32 立即进入 5 秒的深度睡眠状态,LED 关灭并停止闪烁,此时板子仅消耗极少量的电力。定时器到期后,ESP32 会自动唤醒,LED 又会重新开始闪烁。深度睡眠时间可以直接在 Visuino 中轻松更改,无需编写任何代码。
•深度睡眠模式会完全关闭 CPU、内存以及大部分外围设备,从而实现微安级的极低电流消耗,这使得它非常适合配备电池的物联网设备。
轻度睡眠模式会保持内存和大多数外设的供电,同时暂停中央处理器,从而实现更快的唤醒速度,但会略微增加电力消耗——这种模式非常适合对响应速度有高要求且功耗较低的应用场景。
此项目非常适合便携式设备、无线传感器、遥控器以及任何对电池续航时间要求极高的应用场景。
作为一种可选的扩展功能,您之后可以将此项目进一步升级,以采用“轻睡眠”模式,或者通过 GPIO 引脚或触摸输入来添加外部唤醒功能,从而使它在高级低功耗设计中更具强大功能。
本教程非常适合用于学习以下内容:
•通过闪烁的 LED 展示 ESP32 的深度休眠功能
•只需按一次按钮,即可将 ESP32 设备置于深度睡眠状态。
•通过定时器自动唤醒 ESP32
•在 Visuino 中通过视觉方式设置睡眠时长
•了解深度睡眠与浅度睡眠在实际生活中的区别
•设计超低功耗的基于ESP32的电池供电项目
•稍后可以添加按键或触摸唤醒选项来扩展该功能。
第 1 步:您将需要的物品/材料
•ESP32 或任何类似的板子(在本教程中我们使用的是 ESP-WROOM-32)
•面包板
•2 个 1 千欧电阻器
按钮
•LED(发光二极管)
第 2 步:电路
•将 ESP32 的 [GND] 引脚连接到面包板的负极引脚 [黑色线] 上
•将 ESP32 的 [Vin] 引脚连接到面包板的正极引脚 [红色线] 上
•将 ESP32 的 GPIO[25] 与电阻器 1 连接起来
•将电阻器 1 连接到按钮引脚上
•将电阻器 1 的另一端引脚连接到面包板的负极引脚(黑色线)上。
•将连接按钮另一侧的插针连接到面包板的正极插针(红色导线)上。
•将 ESP32 的 GPIO[33] 与电阻器 2 连接起来
•将电阻器 2 的另一端连接到 LED 的正极引脚(“+”)上
•将 LED 的负极引脚“[-]”与面包板的负极引脚(黑色线)连接起来。
第 3 步:启动 Visuino 软件,并选择 ESP32 板型。
按照第一张图片所示启动 Visuino。在 Visuino 中点击“Arduino 组件”中的“工具”按钮(图 1)。当对话框出现时,选择“通用 ESP32”或任何其他合适的板卡,如图所示。
第 4 步:在 Visuino 中添加并设置组件
•添加“延时按钮”组件
•添加“脉冲发生器”组件
•选择“ESP32”板,在属性设置中选择“模块”>“处理器”>“操作”,然后点击三个点按钮以打开“操作”窗口。
•在“操作”窗口中将“深度睡眠”拖到左侧,在属性窗口中将“周期(微秒)”设置为 100000000,即 10 秒,但可根据您的需求更改此值。
•关闭“操作”窗口
第 5 步:在 Visuino 连接组件中
•将脉冲发生器 1 的“输出”引脚与 ESP32 的数字 GPIO 引脚[33]相连。
•将 ESP32 数字 GPIO(DAC)[25] 引脚[输出]与按钮 1 引脚[输入]连接起来
第 6 步:生成、编译并上传代码
在 Visuino 中,点击底部的“构建”选项卡,确保选择了正确的端口,然后点击“编译/构建并上传”按钮。
第 7 步:在 Visuino 中 - 添加外部唤醒功能(项目扩展)
在 Visuino 中,您可以轻松地扩展此项目,通过使用数字引脚或触摸引脚添加外部唤醒触发器。添加一个新的数字输入组件(或触摸组件),将其连接到所需的 ESP32 GPIO 或触摸引脚,并将其链接到 ESP32 停止组件的唤醒输入端口。这样,当按下按钮或触摸板时,ESP32 就能立即从睡眠状态中唤醒,使该项目变得更加互动,并适用于实际的低功耗应用。
在“操作”窗口中选择“深度睡眠1”,然后在属性窗口中选择“唤醒”,点击三个点按钮,在“唤醒”窗口中添加“通过按键唤醒”或“通过触摸唤醒”,并在属性窗口中设置按键号码。
本文编译自hackster.io





