Reducir consumo de ESP32

Hola a todos,
En estos días de confinamiento estoy montando un proyectillo de una estación meteorológica con un ESP32 conectado al wifi y subiendo los datos a ThingSpeak. El problema es el de siempre, el consumo hace que la powerbank que utilizo para la alimentación se quede seca en menos de 1 día.

En algunas charlas de domótica creo recordar haber endendido que se estaba usando el ESP32 funcionando con batería durante largos periodo de tiempo por su bajo consumo, puede que fuera @MiguelAngelLV quien lo comentara.

Sabéis si se trata de alguna placa concreta con el ESP32 o la configuración para reducir el consumo?
He estado buscando información y hablan de usar los modos Modernsleep, Lightsleep, deepsleep o Hibernation mode. Tenéis experiencia con estos modos, dan problemas para después de despertarlo seguir mandado la información via wifi? Sugerencias de placas con el micro ESP32 que consuman poco, librerías para el ESP32 o uso de dichos modos de ahorro de consumo?

Gracias
JavierNo

Yo he trabajado con los ESP8266, y los ESP32 consumen bastante menos, sobretodo si en vez de usar Wifi usan BLE.

El deep sleep lo que hace es apagar la placa a excepción de un reloj, que pasado X tiempo reiniciará la placa.

Así, el proceso es:

  1. Arranca el ESP32
  2. Realiza lecturas
  3. Envía datos (wifi o BLE)
  4. Duerme durante X horas y vuelve al paso 1

Durante el paso 4, el consumo es ridículo, 10 micro amperios.

El hibernation no lo conocía, parece que es parecido al deep sleep pero bajando a los 2.5 micro amperios debido a que apaga más cosas, aunque sigue dejando un reloj, pero no tengo claro como se despierta.

En el caso del Deep Sleep, tienes que conectar unos de los GPIOs a la patilla de RESET, cuando termine el tiempo de espera, ese GPIO mandará un impulso que reseteará la placa volviendo al paso 1.

Una de las principales formas de reducir el consumo es reducir el tiempo de los pasos 1-3, por eso, si enviamos por BLE ahorramos, ya que consume bastante menos y es más rápido al no tener conectar con el router, solo «mandar el dato». Si tenemos que usar wifi, pues hay trucos, como ponerle una IP fija ahorrándonos tiempo y desactivar el wifi/ble durante los pasos 1 y 2, sobretodo si la lectura de datos es lenta.

Hola @MiguelAngelLV,
Gracias por tus comentarios.
Por lo que entiendo cuando se despierta el ESP32, realiza todo el proceso de arranque incluyendo el setup (inicializando de nuevo las diferentes elementos), ¿es así? o esta en “estado durmiente” y continua realizando el loop donde se quedeo?
Con respecto al uso de BLE, tendría que tener algún “aparatito” intermedico conectado al router para que subiera los datos a thinkgspeak? ó como lo subes a internet en el caso de que lo realices?
Saludos
JavierNo

Sí, se reinicia entero y comienza con el por el setup. A efectos es como si le quitases la corriente y se la volvieses a poner.

Lo del BLE, pues tendrías que tener algún dispositivo BLE, como puede ser una Raspberry o incluso otro ESP32 con alimentación.

Si no tienes, pues con WiFi, consumirá un poco más, pero tampoco es alarmante para algo que solo se va a conectar unos segundos.

Ok Gracias,
Voy a ver si consigo que dure más la powerbank…

Este tema se cerró automáticamente 20 días después de la última publicación. No se permiten nuevas respuestas.