我正在使用 Espressif ESP32-WROOM-32 进行一些测试,试图在深度睡眠模式下获得最低的功耗。
就像 ESP32 Datasheet(第 30、31 页)中出现的那样,Light Sleep 模式下的功耗为 0.8 mA,使用 RTC Timer + RTC Memory 的 Deep Sleep 模式下功耗为 10 μA。
好吧,我上传了一个简单的 scketch,它开始,打开 LED 5 秒,关闭 LED,等待 1 秒,最后进入模块深度睡眠模式 30 秒,依此类推。
>我使用 18650 锂离子充电电池充满电,在 VIN 和 GND 引脚上充满 4.2 伏电压,并采取功耗措施。运行期间功耗约为 50 mA,但模块进入深度睡眠模式后,电流为 10.2 mA。
我曾尝试禁用 BT 和 WiFi,但得到了相同的测量结果。
有没有办法让功耗接近制造商的值?
提前致谢。
答案 0 :(得分:1)
根据您提供的有关 ESP32 开发板的信息。有几个明显的功耗来源:
还有其他不那么明显的原因导致电流高,如果您的应用程序在进入睡眠模式之前碰巧使用了 wifi,您可能需要在进入睡眠模式之前关闭 wifi 和 ADC:>
#include "esp_wifi.h"
#include "driver/adc.h"
WiFi.mode(WIFI_OFF);
esp_wifi_stop();
adc_power_off();
更详细地描述了使用 WiFi 导致 adc 打开并因此消耗功率的问题here。
总而言之,并非所有 ESP32 开发板都考虑到电池操作。要将您的 ESP32 开发板用于深度睡眠,您需要选择专为电池供电设计的 ESP32 开发板,例如,Sparkfun 通常有专为电池供电设计的产品。我个人的选择是这个 one,它在不通过 USB 供电时禁用 USB 芯片。