Modos de Sueño de ESP32 y su Consumo de Energía

El ESP32 es un microcontrolador de bajo costo y alto rendimiento que se ha convertido en una opción popular para muchos proyectos de Internet de las cosas (IoT). Una de las características más interesantes del ESP32 es la capacidad de entrar en diferentes modos de sueño, lo que permite al dispositivo ahorrar energía mientras está inactivo y prolongar la duración de la batería en proyectos móviles.
En este artículo, se explorarán los diferentes modos de sueño disponibles en el ESP32 y cómo afectan el consumo de energía del dispositivo. También se discutirán las implicaciones de usar diferentes modos de sueño en proyectos de IoT y cómo se puede optimizar el uso de energía en diferentes situaciones.
¿Qué son los Modos de Sueño de ESP32?
ESP32 tiene varios modos de sueño que permiten al dispositivo reducir el consumo de energía cuando no está realizando ninguna tarea. Estos modos de sueño se dividen en dos categorías principales: modos de bajo consumo y modos de ultrabajo consumo.
Los modos de bajo consumo están diseñados para reducir el consumo de energía del dispositivo mientras mantiene la conectividad del sistema. Los modos de ultrabajo consumo, por otro lado, están diseñados para reducir el consumo de energía del dispositivo a un nivel aún más bajo al costo de desactivar temporalmente la conectividad del sistema.
Modos de Sueño de Bajo Consumo
Modo Light Sleep
El modo Light Sleep es el modo de sueño de bajo consumo más básico disponible en ESP32. En este modo, la CPU se detiene temporalmente, pero la memoria y la conectividad del sistema se mantienen activas. Esto permite que el sistema se despierte rápidamente de este modo de sueño y vuelva a su estado activo.
El consumo de energía en el modo Light Sleep es bajo en comparación con el estado activo, pero aún mayor que los modos de ultrabajo consumo. Este modo es más adecuado para situaciones en las que el dispositivo debe permanecer en línea y responder rápidamente a las solicitudes entrantes.
Modo Deep Sleep
El modo Deep Sleep es el modo de sueño de bajo consumo más efectivo disponible en ESP32. En este modo, la CPU se detiene, y toda la memoria se desactiva, incluida la memoria RAM. La única memoria que se mantiene activa es la memoria RTC (Real Time Clock), que es necesaria para el reloj interno del dispositivo y para despertarlo del modo de sueño.
El consumo de energía en el modo de Deep Sleep es drásticamente inferior al estado activo y el modo Light Sleep. Sin embargo, en este modo, el dispositivo pierde la conectividad durante el periodo de sueño, lo que significa que el dispositivo debe recuperar y restablecer la conexión al despertar.
Modos de Sueño de Ultrabajo Consumo
Modo Hibernation
El modo Hibernation es el modo de sueño de Ultrabajo Consumo más básico disponible en ESP32. En este modo, todas las memorias se desactivan excepto la memoria RTC. El dispositivo se despierta a intervalos regulares para realizar tareas programadas y luego vuelve al modo de hibernación.
El consumo de energía en el modo de Hibernación es extremadamente bajo, lo que lo hace adecuado para proyectos que requieren baterías duraderas, pero no necesitan un tiempo de respuesta rápido.
Modo Deep Sleep + ULP (Ultra Low Power)
En el modo Deep Sleep + ULP, la CPU se detiene, y toda la memoria se desactiva, incluida la memoria RAM. En este modo, el dispositivo solo utiliza la Unidad de Procesamiento de Bajo Consumo (ULP) para monitorear y despertar el dispositivo de forma regular. La ULP es una unidad de procesamiento secundaria y más simple que utiliza mucho menos energía que la CPU principal.
El modo Deep Sleep + ULP es el modo de sueño más eficiente disponible en ESP32. El consumo de energía es extremadamente bajo, pero el tiempo de respuesta es más lento que el modo Light Sleep debido a la activación de la CPU desde la ULP.
Optimización de la Duración de la Batería en Proyectos de ESP32
La elección del modo de sueño adecuado en un proyecto de ESP32 puede afectar significativamente la duración de la batería del dispositivo. Para maximizar la duración de la batería, es importante considerar el equilibrio entre el tiempo de respuesta del dispositivo y el consumo de energía.
Proyectos que requieren tiempos de respuesta rápidos: Para proyectos que requieren un tiempo de respuesta rápido, como consumibles inteligentes, el modo Light Sleep es probablemente la mejor opción. Este modo permite que el dispositivo permanezca en línea y responda rápidamente a las solicitudes entrantes.
Proyectos que no requieren una rápida respuesta: Para proyectos que no tienen una rápida respuesta, modo Deep Sleep + ULP es la mejor opción ya que ofrece el menor consumo de energía.
Proyectos que requieren tiempo de respuesta rápido y mantenimiento de batería: En proyectos que necesitan una respuesta rápida y conservación de energía, la mejor opción es usar el modo Light Sleep junto con la ULP para monitorear y despertar el dispositivo de manera regular.
Conclusión
El ESP32 es un microcontrolador versátil que ofrece varios modos de sueño que ayudan a prolongar la duración de la batería en proyectos de IoT. La elección del modo de sueño adecuado en un proyecto puede afectar significativamente el consumo de energía del dispositivo, y en consecuencia, su duración de la batería. Es importante considerar el equilibrio entre el tiempo de respuesta del dispositivo y el consumo de energía al elegir un modo de sueño.
Preguntas frecuentes
¿Puedo programar tareas mientras el ESP32 está en modo Deep Sleep?
No. En el modo Deep Sleep, la CPU y toda la memoria están desactivadas, lo que significa que no es posible programar tareas. Sin embargo, es posible configurar el dispositivo para que se despierte en intervalos regulares y ejecute una tarea específica antes de volver al modo de sueño.
¿Puedo usar el modo de Deep Sleep + ULP para proyectos que necesitan una respuesta rápida?
Sí, pero es importante tener en cuenta que el modo Deep Sleep + ULP ofrece un tiempo de respuesta ligeramente más lento que el modo Light Sleep. Por lo tanto, si es esencial la respuesta inmediata, es mejor optar por el modo Light Sleep.
¿Qué es la Unidad de Procesamiento de Bajo Consumo (ULP)?
La Unidad de Procesamiento de Bajo Consumo (ULP) es una unidad de procesamiento secundaria y más simple que utiliza mucho menos energía que la CPU principal. La ULP se utiliza para monitorear los pines de entrada y activar la CPU principal cuando ocurre un evento específico.
¿Dónde puedo encontrar más información sobre los modos de sueño de ESP32?
La documentación oficial de ESP32 y la comunidad de desarrolladores de ESP32 son dos buenas fuentes de información para aprender más sobre los modos de sueño de ESP32 y otros aspectos del microcontrolador. También hay varios proyectos de ejemplo y tutoriales disponibles en línea para ayudar a los nuevos usuarios a comenzar con el ESP32.
Ejemplos de Código
A continuación, se muestra un ejemplo de código para configurar el ESP32 en modo Light Sleep:
#include
void setup() {
// configurar periféricos
// entrar en modo Light Sleep
esp_sleep_enable_timer_wakeup(60 * 1000000); // despertar cada 60 segundos
esp_deep_sleep_start();
}
void loop() {
// codigo a ejecutar cuando se despierta del modo Light Sleep
}
Este código configura el dispositivo para ingresar al modo Light Sleep y lo programa para despertarse cada 60 segundos. Cuando el dispositivo se despierta del modo Light Sleep, el código en la función loop() se ejecuta antes de que el dispositivo vuelva a dormir.
[nekopost slugs="comunicacion-en-serie-esp32-sobre-bluetooth-usando-arduino-ide,vuelva-a-conectar-esp32-la-conexion-wifi-perdida,programa-esp32-vs-code-platformio,esp32-wifi-arduino-ide,direccion-bluetooth-esp32-arduino-ide,pwm-esp32-arduino-ide,esp32-spi-arduino-ide,bateria-esp32-de-alimentacion,escanear-la-direccion-i2c-esp32-arduino-ide"]

Deja una respuesta