ESP Easy y el modo deep sleep (ESP8266 bajo consumo)

Última modificación el 27 mayo, 2021

El microcontrolador ESP8266 está muy bien preparado para aprovechar al máximo la energía, con modos de muy bajo consumo.

Para mucha gente estos modos de bajo consumo parecen temas místicos o de ocultismo, al alcance de muy pocas personas, unos pocos elegidos.

Aquí verás que con ESPEasy son muy fáciles de usar y que te permitirán enormes ahorros de energía.

¿Qué es el modo deep sleep?

El modo deep sleep (sueño profundo) del ESP8266 consiste en que el microcontrolador queda dormido profundamente, con prácticamente todo apagado, excepto una muy pequeña parte del microcontrolador que comprueba si sucede “algo” que debe provocar que el resto del ESP8266 despierte, saliendo de su letargo.

Un ESP8266 en modo deep sleep (dormido, y esperando a que suceda algo, para despertarse y hacerlo) puede consumir tan solo de 8 a 20µA (un 1 mA = 1000 µA) mientras que una placa NodeMCU con su ESP8266 en modo deep sleep consume del orden de 8-20mA. ¡Esto es entre 500 y 1000 veces más!

Si te interesa el tema de bajo consumo te recomiendo que cuando termines de leer este artículo, te leas este otro. Aquí encontrarás toda la base que necesitas saber para alcanzar el Olimpo bajo consumo con ESP8266:

¿Qué necesito para utilizar el modo deep sleep del ESP8266?

Necesitas dos cosas: un complejo hardware externo de precisión que permita al microcontrolador entrar en coma y una compleja programación, casi indescifrable, incluso para los mejores programadores del mundo.

A lo mejor también te interesa:  Control transmisor de video VTX FPV con Arduino

El hardware para deep sleep

El hardware que necesitas es este:

Y la programación para deep sleep

La programación que necesitas es esta:

deepsleep,x

En este artículo te voy a decir cómo sacar partido a esta alta tecnología fácilmente.

ESPEasy y deep sleep

ESPEasy incluye soporte completo para poner el procesador en modo deep sleep y puedes utilizar desde tus reglas muy fácilmente.

Lo primero que tienes que saber es que el pin RST debe estar conectado a GPIO-16, esto es necesario para que el ESP8266 entre y salga de su estado comatoso. Este es el uso que le darás al cable que te he enseñado antes, hacer un puente desde RST a GPIO-16, tan simple como esto.

Para que el ESP8266 entre en ese estado comatoso, solamente tienes que llamar desde una regla (o un comando, por ejemplo):

deepsleep,x

Donde “x” es el tiempo, en microsegundos, que quieres que el ESP8266 esté en modo deep sleep.

Cuando haya transcurrido ese tiempo, el ESP8266 saldrá de su coma profundo y empezará la ejecución, exactamente igual que si acabáramos de encenderlo.

Aquí te explico los detalles sobre este modo.

Esto es lo que sucede cuando el ESP8266 se despierta de su siesta profunda y ESP Easy empieza a funcionar de nuevo:

  • Intenta conectarse por wifi al SSID definido, y al SSID2 si está definido y SSID falla.
  • Si no consigue conectarse y has habilitado la opción Sleep on connection failure, vuelve al estado de deep sleep inmediatamente (esto es bueno si tiene que hacer algo con wifi y no está disponible, ¿para qué esperar más, gastando energía?)
  • Enviará todas las medidas de los sensores a la vez (ignorando los “delays” que se hayan definido).
  • Se apagará y dormirá durante la cantidad de segundos que se establece en la configuración de Retraso de reposo. Deepsleep utiliza un contador interno de 32 bits en uSecs. Eso significa que está funcionando hasta 4294 segundos, los retrasos más largos no funcionarán. Es decir. el tiempo de sueño más largo es de aproximadamente 1 hora y 11 minutos.
A lo mejor también te interesa:  Pantalla táctil a color para el medidor de CO₂ ¡Wow!

Despertar el ESP8266 manualmente

Si especificas un deepsleep,0 el ESP8266 entrará en el modo de deep sleep sin un tiempo prefijado que le haga despertar.

Tendrás que despertar el dispositivo tú mismo conectando RST a GND, con un pulsador, por ejemplo, o un simple cablecillo.

Este es un modo muy útil si lo que queremos es hacer algo como un sensor de puerta o ventana con un sensor magnético (que conectaremos entre RST y GND) y que hará que el ESP8266 se despierte en el momento en que ese contacto se cierre, hayan pasado unos segundos o meses desde la última vez.

Saliendo de deep sleep

Cuando el modo deep sleep está activo, no puedes conectarte a la interfaz web. De hecho, el ESP8266 está apagado y solo hay un pequeño circuito temporizador encendido para despertar el núcleo principal del ESP8266 cuando llegue el momento.

Hay tres formas de salir del modo de deep sleep:

Arranque en frío

Apaga el ESP8266 y vuelve a conectar la alimentación. Tendrás 30 segundos para conectarte a la interfaz web y deshabilitar el modo deep sleep (obtendrás información en el puerto serie).

Desactivación temporal de deep sleep mediante un puente

Si 30 segundos es demasiado corto para ti, puedes usar este método.

Desconecta GPIO-16 de RST y conéctalo a GND. Vuelve a conectar el ESP8266.

Ahora el deep sleep estará desactivado y el ESP8266 funcionará normalmente, hasta que vuelvas a conectar GPIO-16 a RST.

Esto requiere una versión de ESPEasy v2.0.0-dev6 o más reciente.

Restablecimiento de fábrica

Si todo lo demás falla, simplemente realiza un restablecimiento de fábrica. ¡Perderás todas tus configuraciones!

El reinicio se hace conectando los pines RX y TX juntos mientras reinicias el ESP8266. Apaga el dispositivo. Luego, retira el conector entre los pines RX y TX. Reinicia e instala el firmware ESPEasy nuevamente.

A lo mejor también te interesa:  ¿Cómo funciona un contador Geiger? Descubre sus 6 características

Si esto no funciona, intenta cargar la imagen en blanco para que coincida con el tamaño de la memoria instalada en el dispositivo. Reinicia y espera 5 minutos. Luego carga el firmware que quieres usar. Reinicia y espera 5 minutos.

¿TE HA RESULTADO INTERESANTE?
¡NO TE PIERDAS FUTUROS ARTÍCULOS COMO ESTE!
SUSCRÍBETE A LA NEWSLETTER Y ENTRA EN EL GRUPO DE TELEGRAM Y NO TE PIERDAS NADA DE LO MEJOR.

Deja un comentario