Aziz Bench

Alimentar un ESP32 con batería

Un ESP32 en deep sleep consume unos pocos microamperios y, sin embargo, una placa de desarrollo con batería suele agotarla en pocos días. Esta guía te enseña adónde va la corriente, cómo elegir la batería y el regulador, cómo escribir el código de deep sleep y medir el resultado, y cuánto durará la batería.

Por AzizPublicada el 20 min de lectura

Comprobada el 3 de noviembre de 2026 con las hojas de datos, las guías de diseño de hardware y la documentación de ESP-IDF de Espressif, la documentación de Arduino-ESP32 y ESPHome y las hojas de datos de los reguladores y cargadores que se citan en las fuentes. Las corrientes son valores típicos de las hojas de datos: mide tu propia placa.

Por qué una placa de desarrollo vacía la batería

En deep sleep (sueño profundo), el chip ESP32 consume unos 10 µA, el ESP32-C3 unos 5 µA y el ESP32-S3 unos 7 µA, según Espressif (nuestra comparativa ESP32 recoge todos los chips). Una placa de desarrollo añade alrededor del chip componentes que nunca duermen:

  • El regulador. Muchas placas llevan un AMS1117, con una corriente de reposo de unos 5 mA (hasta 11 mA): quinientas veces lo que consume un ESP32 en deep sleep.
  • El LED de alimentación. Está encendido mientras la placa tenga tensión. Su corriente depende de la resistencia en serie, que puedes calcular con nuestra calculadora de resistencia para LED.
  • El chip USB-serie. En las placas que lo alimentan desde los 3,3 V, sigue encendido, con o sin cable USB. Lo puedes comprobar en el esquema de la placa.
  • Resistencias pull-up, divisores y sensores conectados a los 3,3 V, que consumen día y noche.

Todo junto se nota enseguida. El preajuste «ESP32 DevKit tal cual» de la calculadora de autonomía (un AMS1117, más 3 mA orientativos para el LED y el chip USB-serie) agotaría una celda 18650 de 3000 mAh en unos 13 días en el mejor de los casos, mientras que la misma celda alimenta el módulo suelto de nuestro ejemplo durante unos 13 meses. Mira el caso del DevKit en la calculadora. Y es una cifra optimista: un AMS1117 tiene una caída de alrededor de 1 V, así que con una celda Li-ion la línea de 3,3 V baja de los 3,0 V mínimos del módulo mucho antes de que la celda se agote.

Para un proyecto con batería, usa un módulo suelto en una PCB propia, o una placa pensada para bajo consumo cuyo fabricante publique el consumo de la placa entera. Seeed, por ejemplo, da 44 µA en deep sleep para la XIAO ESP32C3 (mira nuestro pinout de la XIAO ESP32C3). Quitar el LED y el regulador de una placa también funciona, pero entonces los 3,3 V los pones tú.

Elegir la batería

Un módulo ESP32 necesita 3,0–3,6 V, y 3,6 V es también su máximo absoluto. Pocas baterías se mantienen en ese margen de llenas a vacías, y de eso depende si necesitas un regulador, y de qué tipo.

Módulo ESP32: 3,0–3,6 VLi-ion / LiPo 1S3,0–4,2 VLiFePO4 1S2,5–3,65 V3 × AA alcalinas2,4–4,5 V3 × AA NiMH2,7–4,2 VLi-SOCl₂ (AA)2,0–3,67 V2,0 V2,5 V3,0 V3,5 V4,0 V4,5 VMódulo ESP32: 3,0–3,6 VLi-ion / LiPo 1S3,0–4,2 VLiFePO4 1S2,5–3,65 V3 × AA alcalinas2,4–4,5 V3 × AA NiMH2,7–4,2 VLi-SOCl₂ (AA)2,0–3,67 V2,0 V3,0 V4,0 V
Margen de tensión de cada batería de llena a vacía, frente a los 3,0–3,6 V que acepta un módulo ESP32 (sombreado; la línea discontinua es el máximo absoluto de 3,6 V). Márgenes de las hojas de datos de las celdas, como en nuestra comparativa de baterías.
  • Una celda Li-ion o LiPo (1S). La opción habitual: barata, recargable y con mucha energía. Pasa de 4,2 V llena a unos 3,0 V, así que necesita un regulador: un LDO (regulador lineal de baja caída) o un buck-boost (siguiente apartado). Usa celdas con circuito de protección o añade uno (mira Seguridad).
  • Una celda LiFePO4. Pasa casi toda la descarga en torno a 3,2–3,3 V, así que puede alimentar el módulo directamente, sin regulador y sin corriente de reposo. Eso sí, una carga estándar termina en 3,65 V, por encima del máximo de 3,6 V del módulo: limita la carga a menos de 3,6 V y, por debajo de unos 3,0 V, mantén el módulo en reset con un supervisor de tensión (un circuito de reset) en EN. Las listas de comprobación de Espressif lo recomiendan para alimentaciones que suben despacio o son inestables, como baterías y paneles solares. El supervisor solo detiene el módulo: la celda sigue necesitando su propia protección contra la sobredescarga (un BMS o una placa de protección). A igual tamaño guarda menos energía que una Li-ion.
  • Tres pilas AA. Las alcalinas nuevas dan unos 4,5 V y los ensayos de su hoja de datos llegan a 0,8 V por pila, 2,4 V en total; las NiMH van de unos 4,2 V recién cargadas a 2,7 V. Ninguna se queda en el margen: usa un buck-boost.
  • Pilas de botón (CR2032). No sirven para la radio del ESP32: Renata especifica su CR2032 para 3 mA continuos, mientras que Espressif pide una alimentación capaz de dar 500 mA. La nota de TI sobre pilas de botón y corriente de pico concluye que un condensador en paralelo es la forma más eficaz de ayudarlas a soportar los picos breves de las radios pensadas para ellas, y esos picos siguen muy por debajo de lo que consume un ESP32.
  • Litio-cloruro de tionilo (Li-SOCl₂). Autodescarga muy baja, así que va bien para sensores que se despiertan pocas veces y tienen que durar años. Pero una Saft LS14500 (tamaño AA) está especificada para 50 mA continuos y pulsos de 250 mA, así que para el Wi-Fi hace falta un condensador que dé los picos; la propia Saft advierte de que puede ser necesario. Tras un tiempo almacenada, una capa de pasivación eleva su resistencia: en una prueba de Qoitech, una celda almacenada superaba los 100 Ω y sufría caídas de tensión de hasta 1,8 V en los primeros pulsos. Además, su tensión en vacío, 3,67 V, queda justo por encima del máximo del módulo.

Nuestra comparativa de baterías recoge los detalles de cada química, y la tabla de tensión de baterías convierte una tensión medida en la carga que queda.

El regulador: poca corriente de reposo y corriente suficiente para el Wi-Fi

En deep sleep, la corriente de reposo del propio regulador suele pesar más que el chip. Durante una transmisión Wi-Fi ocurre lo contrario: las guías de diseño de hardware de Espressif piden una alimentación de 3,3 V que dé al menos 500 mA. Un regulador para un nodo con batería necesita las dos cosas.

ReguladorTipoCorriente de reposoCorriente nominalPicos del Wi-Fi
AMS1117LDO5 mA900 mASí, pero agota la batería
MCP1700LDO1,6 µA250 mANo: menos de 500 mA
HT7333LDO4 µA250 mANo: menos de 500 mA
TLV755PLDO25 µA500 mASí, al límite
AP2112KLDO55 µA600 mASí
TPS63802Buck-boost11 µA2 A (3,3 V desde 2,3 V)Sí

Corriente de reposo típica y corriente de salida nominal de las hojas de datos, las mismas cifras que en nuestra calculadora de reguladores.

El MCP1700 y el HT7333 son populares por su corriente de reposo minúscula, pero con 250 mA están especificados para la mitad de lo que pide Espressif. El TLV755P y el AP2112K cumplen el requisito a cambio de unas decenas de microamperios. Eso sí, el TLV755P va sin margen: está especificado justo para 500 mA y, a esa corriente, su caída puede llegar a 238 mV, así que en los picos del Wi-Fi deja de regular en cuanto la celda baja de unos 3,54 V. Para tener más margen, elige el AP2112K, especificado para 600 mA, y con cualquiera de los dos pon el condensador de reserva que recomienda Espressif (más abajo).

Con una celda Li-ion, un LDO deja de regular cuando la celda baja a 3,3 V más la caída (dropout) del regulador, y a partir de ahí entrega la tensión de la celda menos la caída. El módulo funciona hasta 3,0 V, y según nuestra tabla de tensión de baterías una celda Li-ion en reposo a 3,6 V solo conserva alrededor del 7 % (0–40 % según las tablas de cada fabricante), así que un buen LDO aprovecha casi toda la batería. Con los picos del Wi-Fi, la tensión de la celda baja y la caída del regulador aumenta, de modo que la autonomía se acaba algo antes de lo que indica la tensión en reposo; llegado ese punto, un supervisor en EN ajustado a unos 3,0 V, como recomienda Espressif, mantiene el módulo en reset mientras la tensión sea demasiado baja. Un buck-boost como el TPS63802 mantiene los 3,3 V tanto si la batería está por encima de esa tensión como si está por debajo, y es la opción adecuada para tres pilas AA, que empiezan por encima de 3,6 V y terminan por debajo de 3,0 V.

Comprueba un regulador con tu batería (caída, calor y corriente de reposo); en este ejemplo, un TLV755P con una celda Li-ion.Abrir la calculadora de reguladores

Condensadores: las guías de diseño de Espressif recomiendan al menos 10 µF en la entrada de alimentación y 0,1 µF cerca de los pines de alimentación del chip. Con una batería que no puede dar los picos por sí sola, como una Li-SOCl₂, los tiene que dar un condensador.

El deep sleep en la práctica

En deep sleep se apagan las CPU, casi toda la RAM y los periféricos digitales, y también el Wi-Fi y el Bluetooth; siguen encendidos el controlador RTC y la memoria RTC. Al despertar, el programa vuelve a empezar desde cero, así que en Arduino todo ocurre en setup().

Fuentes de despertar

  • Temporizador, en todos los chips: el temporizador RTC despierta el chip pasado un tiempo fijado.
  • Pines. El ESP32 y el ESP32-S3 se despiertan con un pin RTC a un nivel dado (ext0) o con varios (ext1). El ESP32-C3 solo se despierta con los pines de su dominio de alimentación RTC, GPIO0–5, que se activan con esp_deep_sleep_enable_gpio_wakeup() (mira nuestro pinout de la ESP32-C3 SuperMini).
  • Pads táctiles, en el ESP32 y el ESP32-S3.
  • El coprocesador ULP, en el ESP32 y el ESP32-S3: un núcleo pequeño que puede leer un sensor mientras las CPU principales duermen y despertarlas cuando pasa algo.

Conservar datos durante el sueño

Las variables normales se pierden en cada despertar. Declara las que necesites con RTC_DATA_ATTR: se guardan en la memoria RTC, que por defecto sigue alimentada en deep sleep.

Arduino-ESP32

#define SLEEP_MINUTES 15

RTC_DATA_ATTR int bootCount = 0;   // se conserva en la memoria RTC

void setup() {
  bootCount++;
  // leer el sensor, conectar, enviar los datos...
  esp_sleep_enable_timer_wakeup(SLEEP_MINUTES * 60ULL * 1000000ULL);  // microsegundos
  esp_deep_sleep_start();          // no vuelve
}

void loop() {}                     // nunca se ejecuta

El código está escrito para Arduino-ESP32 3.x, cuya serie estable 3.3 se basa en ESP-IDF 5.5. El temporizador va en microsegundos, de ahí la conversión. Para despertar con un pin, el ESP32 y el ESP32-S3 usan esp_sleep_enable_ext0_wakeup(pin, level); tras el reinicio, esp_sleep_get_wakeup_cause() te dice por qué se ha despertado el chip. En ESP-IDF 6, la base de Arduino-ESP32 4.x, esa función queda obsoleta en favor de esp_sleep_get_wakeup_causes(), que devuelve todas las fuentes de despertar en un mapa de bits, y la esp_deep_sleep_enable_gpio_wakeup() del ESP32-C3 se sustituye por esp_sleep_enable_gpio_wakeup_on_hp_periph_powerdown().

ESPHome

deep_sleep:
  run_duration: 10s
  sleep_duration: 15min

run_duration es el tiempo que el nodo pasa despierto y sleep_duration el que pasa dormido; en el ESP32, wakeup_pin añade un pin de despertar. Nuestro generador de configuración ESPHome puede añadir este bloque, y una IP fija, por ti.

Los pines durante el sueño

Un pin que debe conservar su nivel mientras el chip duerme, como la puerta de un MOSFET que mantiene apagado un sensor, necesita un hold: gpio_hold_en() antes de dormir y gpio_hold_dis() al despertar. En el ESP32, el ESP32-C3 y el ESP32-S3, eso basta únicamente para los pines RTC: los que quedan fuera del dominio RTC (GPIO1, 3, 5, 16–19 y 21–23 en el ESP32, del GPIO6 en adelante en el ESP32-C3 y del GPIO22 en adelante en el ESP32-S3) necesitan además gpio_deep_sleep_hold_en(). Vigila también la corriente que pasa por pull-ups y divisores. El ejemplo de la propia Espressif es el GPIO12 del ESP32-WROVER, con un pull-up externo y un pull-down interno: por él se fuga corriente hasta que lo aíslas con rtc_gpio_isolate() antes de dormir.

Acortar el tiempo despierto

En el ejemplo, el Wi-Fi se lleva la mayor parte de la corriente media, así que cada segundo que recortes del tiempo despierto cuenta:

  • Una IP fija. Te ahorras el DHCP; la documentación de ESPHome dice que «can dramatically improve connection times» (puede acortar mucho el tiempo de conexión). En Arduino, llama a WiFi.config(ip, gateway, subnet, dns) antes de WiFi.begin().
  • Recordar el punto de acceso. WiFi.begin(ssid, password, channel, bssid) acepta el canal y el BSSID que hayas guardado en la memoria RTC tras la primera conexión. La opción fast_connect de ESPHome se salta el escaneo inicial y también guarda el BSSID y el canal.
  • ESP-NOW en lugar de Wi-Fi y MQTT. ESP-NOW es el protocolo sin conexión de Espressif: sin punto de acceso, sin dirección IP y sin broker. Los paquetes llevan hasta 250 bytes (1470 con ESP-NOW v2), y emisor y receptor deben estar en el mismo canal. Un ESP32 enchufado a la corriente puede recibir los datos y pasarlos a MQTT.
  • Alimentar los sensores solo cuando hace falta. Alimenta un sensor desde un GPIO si consume poco, o conmútalo con un MOSFET; nuestra calculadora de transistor como interruptor comprueba el componente. Cuenta también el tiempo de arranque del sensor en la fase despierta.

No damos tiempos de conexión: dependen del punto de acceso y de la red. Mide los tuyos, como se explica a continuación.

Medir bien la corriente

Un polímetro en serie sirve para la corriente de deep sleep, con dos salvedades. Su shunt provoca una caída de tensión (burden voltage) que, en las escalas de microamperios, puede bastar para dejar a la placa sin tensión suficiente al despertar; además, su lectura es lenta y no sigue las ráfagas de Wi-Fi, que duran una fracción de segundo.

Instrumentos hechos para esto:

  • Nordic Power Profiler Kit II (PPK2): mide de 200 nA a 1 A a 100.000 muestras por segundo, y puede alimentar él mismo la placa a 0,8–5 V.
  • Joulescope JS220: muestrea corriente y tensión a la vez a 2 millones de muestras por segundo, con una resolución de hasta 0,5 nA.
  • EEVblog µCurrent GOLD: un adaptador que convierte un polímetro en un amperímetro de baja caída, 1 mV por nA, µA o mA.

Uses lo que uses, mide la media durante al menos un ciclo completo, con sueño y despertar incluidos, alimenta la placa a la tensión de la batería que vayas a usar y desconecta el USB, que alimenta la placa desde otra fuente.

Monitorizar la tensión de la batería

Una celda Li-ion (4,2 V llena) supera lo que el ADC puede leer, así que pásala por un divisor. Con 1 MΩ + 1 MΩ, la tensión queda a la mitad y el divisor consume 2,1 µA con la celda llena. Añade un condensador de 100 nF entre el pin del ADC y masa, para que el ADC vea una fuente de baja impedancia mientras muestrea. Para que el divisor no consuma nada mientras el chip duerme, conmútalo por el lado alto: un P-MOSFET entre la celda y el divisor, activado desde un GPIO a través de un N-MOSFET pequeño. Un N-MOSFET hacia masa por sí solo no sirve: cuando está apagado, la resistencia superior lleva el pin del ADC a la tensión de la celda, 4,2 V si está llena, por encima del límite de 3,6 V del chip; y un P-MOSFET controlado directamente desde un GPIO de 3,3 V no llega a apagarse del todo con 4,2 V en la fuente. Nuestra calculadora de transistor como interruptor comprueba los dos componentes.

Míralo en nuestra calculadora: 1 MΩ + 1 MΩ desde una celda Li-ion llena hacia un ESP32-C3.Abrir el divisor de tensión

Mantén la salida del divisor dentro del margen en el que el ADC está especificado: hasta unos 2,45 V en el ESP32 y 2,5 V en el ESP32-C3 con la atenuación máxima, según las hojas de datos de Espressif. En Arduino, analogReadMilliVolts() devuelve una lectura calibrada en milivoltios. En el ESP32 usa un pin del ADC1: el ADC2 no se puede leer de forma fiable con el Wi-Fi encendido. Después, convierte la tensión en nivel de carga con nuestra tabla de tensión de baterías; con una LiFePO4, en mitad de la descarga la tensión dice poco.

Un ejemplo completo

Un nodo sensor con un módulo ESP32-C3 suelto, un buck-boost TPS63802 y una celda Li-ion 18650 de 3000 mAh, que se despierta cada 15 minutos para enviar una lectura por Wi-Fi:

ConceptoValorFuente
Deep sleep5 µAEspressif, ESP32-C3
Regulador11 µATI, corriente de reposo del TPS63802
Divisor de la batería2 µA1 MΩ + 1 MΩ: 2,1 µA con la celda llena, 1,5 µA a 3,0 V
Despierto, CPU25 mA durante 0,4 sCalculadora de autonomía, preajuste ESP32-C3 (orientativo)
Despierto, Wi-Fi95 mA durante 1,5 sCalculadora de autonomía, preajuste ESP32-C3 (orientativo)
Batería3000 mAh, 85 % aprovechable, 2 % de autodescarga al mesCalculadora de autonomía, preajuste 18650

Las cifras de la fase despierta son las orientativas de la calculadora: cámbialas por las que midas.

La corriente media queda en unos 270 µA, lo que da unos 13 meses. La mayor parte se la lleva el Wi-Fi, y después la autodescarga de la propia celda; el deep sleep es casi despreciable.

Wi-Fi158 µAAutodescarga82 µACPU despierta11 µARegulador11 µADeep sleep5 µADivisor2 µAMedia: 270 µAWi-Fi158 µAAutodescarga82 µACPU despierta11 µARegulador11 µADeep sleep5 µADivisor2 µAMedia: 270 µA
Adónde va la corriente media del ejemplo, calculada con el modelo de la calculadora de autonomía.

Si se despierta una vez por hora, la media baja a unos 142 µA, la batería dura unos 2 años (míralo en la calculadora) y la autodescarga pasa a llevarse la mayor parte. La misma celda en un DevKit sin modificar dura, como mucho, unos 13 días.

Un matiz: la calculadora modela un regulador lineal, en el que la batería entrega la corriente del circuito más la corriente de reposo del regulador. Un buck-boost como el TPS63802 transfiere potencia: la corriente de la batería es la del circuito × 3,3 V ÷ (tensión de la batería × rendimiento). Con un rendimiento de alrededor del 90 % (el valor que nuestra calculadora de reguladores supone para el TPS63802), a 3,7 V, la tensión nominal de una celda Li-ion, la batería entrega más o menos la corriente del circuito; algo menos con la celda llena y alrededor de una quinta parte más cerca de 3,0 V, así que para este ejemplo la estimación se sostiene. Con tres pilas AA casi agotadas, hacia 2,7 V, la batería entrega alrededor de un tercio más de lo que consume el circuito.

Abre el ejemplo en la calculadora de autonomía y cambia luego las cifras orientativas por las corrientes que hayas medido.Abrir la calculadora de autonomía

Carga y energía solar

El omnipresente TP4056 carga una celda Li-ion con hasta 1 A y hasta 4,2 V, y termina la carga cuando la corriente baja a una décima parte del valor fijado. No tiene power path: el ESP32 sigue conectado a la celda mientras esta se carga y, si consume más de esa décima parte, puede que la carga no termine nunca. Es solo un cargador, así que la protección contra sobredescarga y cortocircuitos tiene que venir de la celda o de un circuito aparte. Tiene una entrada TEMP para el termistor de la batería, pero conectarla a masa desactiva la comprobación, y los módulos más comunes la traen conectada a masa.

Los cargadores con gestión de power path alimentan el circuito y cargan la celda a la vez. El BQ24074 de TI lo hace (hasta 1,5 A, con una gestión de la potencia de entrada que reduce el consumo cuando la fuente flojea) y tiene una entrada de temperatura de la batería que suspende la carga fuera de su margen; el ejemplo de TI fija 0–50 °C. Para energía solar, el CN3791 de Consonance es un cargador conmutado para una celda Li-ion, de hasta 4 A. Lo que llama MPPT es un punto de trabajo fijo: el chip mantiene su pin MPPT a 1,205 V, así que es el divisor desde el panel el que fija la tensión a la que trabaja el panel, y la eliges una sola vez a partir de la hoja de datos del panel. No tiene entrada de temperatura de la batería.

Para dimensionar el panel y la batería de un nodo que tiene que pasar el invierno, usa nuestra calculadora solar aislada.

Seguridad

  • Protección. Una celda Li-ion o LiPo necesita protección contra sobrecarga, sobredescarga y cortocircuitos, en la celda, en la placa o en un módulo aparte.
  • Polaridad. Los conectores JST PH de 2 pines de las celdas LiPo no tienen una polaridad estándar: comprueba + y − con un polímetro antes de conectar una batería a una placa (mira nuestra página del JST PH).
  • Packs más grandes. Varias celdas juntas pueden dar corrientes muy altas: pon un BMS y un fusible en el cable principal. Nuestra calculadora de pack de baterías te dice qué corriente debe aguantar el BMS.
  • LiFePO4 directa al módulo. Solo con un cargador que se detenga por debajo de 3,6 V.

Preguntas frecuentes

¿Cuánto puede durar un ESP32 con batería?

Depende sobre todo de cada cuánto se despierta y de cuánto tiempo está encendido el Wi-Fi. En nuestro ejemplo, un módulo ESP32-C3 suelto que se despierta cada 15 minutos dura unos 13 meses con una celda 18650 de 3000 mAh, y unos 2 años si se despierta una vez por hora; un DevKit sin modificar dura, como mucho, unos 13 días. Prueba tus cifras en la calculadora de autonomía.

¿Puedo alimentar un ESP32 directamente con una celda Li-ion?

No: una celda llena da 4,2 V y el máximo absoluto del módulo es 3,6 V. Usa un regulador de baja caída o un buck-boost. Una celda LiFePO4 puede alimentarlo directamente si limitas su carga a menos de 3,6 V.

¿Qué regulador uso?

Uno que dé al menos 500 mA, como pide Espressif, con poca corriente de reposo: entre los LDO, el AP2112K (55 µA, especificado para 600 mA) o el TLV755P (25 µA, especificado justo para 500 mA), o un buck-boost como el TPS63802 (11 µA) para aprovechar toda la celda o funcionar con tres pilas AA. El MCP1700 y el HT7333 consumen todavía menos, pero solo están especificados para 250 mA.

¿Por qué consume tanto mi ESP32 en deep sleep?

Normalmente por la placa, no por el chip: un regulador como el AMS1117 (unos 5 mA), un LED de alimentación, un chip USB-serie o corriente que pasa por pull-ups, divisores y sensores. Mide con el USB desconectado y luego quita o aísla componentes de uno en uno.

¿Basta con una pila de botón CR2032?

No para el Wi-Fi o el Bluetooth de un ESP32: una CR2032 está especificada para unos pocos miliamperios continuos, y Espressif pide una alimentación capaz de dar 500 mA.

¿Deep sleep o light sleep?

El deep sleep es el que menos consume (unos 10 µA en el ESP32), pero reinicia el programa en cada despertar. El light sleep conserva la RAM y reanuda el programa antes, pero consume más: unos 0,8 mA en el ESP32, 130 µA en el ESP32-C3 y 240 µA en el ESP32-S3, según Espressif. Para un nodo que se despierta cada pocos minutos, suele ganar el deep sleep.

¿Necesito un condensador?

Espressif recomienda al menos 10 µF en la entrada de alimentación y 0,1 µF cerca de los pines de alimentación del chip. Con una batería que no aguanta sola los picos del Wi-Fi, como una Li-SOCl₂, tiene que darlos un condensador más grande.

¿Puedo cargar por USB mientras funciona el ESP32?

Con un cargador con power path como el BQ24074, sí. Con un TP4056 normal, el ESP32 sigue conectado a la celda mientras esta se carga y, si consume más de una décima parte de la corriente de carga, puede que la carga no termine.

Fuentes

  1. Espressif: ESP32 Series Datasheet (deep sleep 10 µA)
  2. Espressif ESP Techpedia: introducción al bajo consumo (ESP32-C3 5 µA, ESP32-S3 7 µA)
  3. Espressif: ESP32-C3 Series Datasheet
  4. Espressif: hoja de datos del ESP32-WROOM-32E (3,0–3,6 V, máximo absoluto 3,6 V)
  5. Espressif: guía de diseño de hardware del ESP32, lista de comprobación del esquema
  6. Espressif: guía de diseño de hardware del ESP32-C3, lista de comprobación del esquema
  7. ESP-IDF: modos de sueño (ESP32)
  8. ESP-IDF: modos de sueño (ESP32-S3)
  9. ESP-IDF: modos de sueño (ESP32-C3)
  10. ESP-IDF v6.0: guía de migración, sistema (cambios en la API de sueño)
  11. API de ESP-IDF: gpio_hold_en (comentario de la documentación)
  12. Arduino-ESP32: Deep Sleep
  13. Arduino-ESP32: API Wi-Fi
  14. Arduino-ESP32: API ADC
  15. Arduino-ESP32: versiones (serie 3.3 sobre ESP-IDF 5.5)
  16. ESP-IDF: ESP-NOW
  17. ESPHome: componente Deep Sleep
  18. ESPHome: componente WiFi
  19. Wiki de Seeed Studio: XIAO ESP32C3
  20. Resumen de la hoja de datos del AMS1117
  21. Microchip: hoja de datos del MCP1700
  22. Holtek: hoja de datos de los HT73xx
  23. TI: hoja de datos del TLV755P
  24. Diodes: hoja de datos del AP2112
  25. TI: TPS63802
  26. LG: especificación de la INR18650 MJ1
  27. EVE: especificación de la LF280K
  28. Energizer: manual de las NiMH
  29. Energizer: pila alcalina AA E91
  30. Renata: hoja de datos de la CR2032
  31. TI: pilas de botón y corriente de pico (SWRA349)
  32. Saft: hoja de datos de la LS14500 (2023)
  33. Saft: hoja de datos de la LS14500 (tensión en vacío)
  34. Qoitech: prueba de pasivación de una Li-SOCl₂
  35. NanJing Top Power: hoja de datos del TP4056
  36. NanJing Top Power: hoja de datos completa del TP4056 (pin TEMP)
  37. TI: hoja de datos de los BQ2407x (BQ24074)
  38. Consonance: hoja de datos del CN3791 (en chino, rev. 1.0)
  39. Nordic Semiconductor: Power Profiler Kit II
  40. Jetperch: hoja de datos del Joulescope JS220
  41. EEVblog: µCurrent GOLD