Aquí discutiremos cómo podemos configurar ESP32 en modo de suspensión profunda en un momento fijo para guardar energía. Antes de aprender a despertar ESP32 del sueño profundo usando un temporizador, comprendamos el concepto de sueño profundo:
¿Qué es el sueño profundo en ESP32?
ESP32 puede ser un dispositivo hambriento de energía debido a su módulo WiFi y Bluetooth integrado. ESP32 típicamente dibuja 75 mA para operaciones nominales mientras puede subir a 240 mM Al transmitir datos a través de wifi. Sin embargo, podemos optimizar esto al habilitar el modo de suspensión profunda.
En el modo de suspensión profunda, los periféricos digitales ESP32, la RAM no utilizada y las CPU se apagan. Solo la siguiente lista de piezas permanece operativa:
Cuando se habilita el modo de suspensión profunda, la CPU principal se apaga; Sin embargo, el coprocesador ULP (UltralowPower) aún puede leer datos de los sensores y despertar la CPU cuando sea necesario.
Esta aplicación de ESP32 es útil donde queremos generar salida en algún momento específico o cuando ocurre una interrupción o evento externo. Esto ahorra potencia ESP32 ya que su CPU permanece apagada por el resto del tiempo y solo se enciende cuando se llama.
Junto con la memoria principal de CPU ESP32 también se muestra o borrada, por lo que cualquier cosa almacenada dentro de esta memoria ya no estará disponible. Solo la memoria RTC se mantiene ahí. Por lo tanto, ESP32 guarda los datos WiFi y Bluetooth dentro de la memoria RTC antes de entrar en modo de suspensión profunda.
Una vez que se restablece o elimina el modo de suspensión profunda, el chip ESP32 inicia la ejecución del programa desde el principio.
Desde el sueño profundo podemos despertar ESP32 utilizando diferentes métodos.
Despertar fuentes en ESP32
Hay múltiples fuentes disponibles para despertar ESP32 de Deep Sleep:
En esta guía cubriremos Temporizador despierta Fuente de ESP32.
Cómo usar el temporizador para despertar ESP32 del sueño profundo
ESP32 viene con un controlador RTC que tiene un módulo de temporizador incorporado que puede despertar ESP32 después de una cantidad de tiempo predefinida. Esta característica tiene grandes aplicaciones en las que necesitamos estampar el tiempo o necesitamos ejecutar instrucciones en momentos específicos mientras mantenemos un consumo de energía óptimo.
Poner ESP32 en modo de suspensión profunda utilizando el código de Micrypthon sueño profundo() función desde el módulo de máquina se utilizará. La siguiente es la sintaxis de la función de sueño profundo en Micrypthon:
máquina.DeepSleep (sleep_time_ms)Esta función toma 1 argumento que es un tiempo predefinido en milisegundos.
Para comprender el uso del temporizador ESP32 para despertar, tomaremos un ejemplo que parpadee después de que pase cada tiempo y vuelva a dormir una vez que se realice la tarea.
Código de ejemplo
Abra cualquier editor de Micopython y cargue el siguiente código dado en el tablero ESP32. Aquí usaremos Thonny IDE para cargar bocetos de Micopython.
# Fuente de código Linuxhint.comunicarseEl código iniciado por la importación de las bibliotecas necesarias, como importamos la Biblioteca DeepSleep.
Después de eso se crea un nuevo objeto para ESP32 PIN 4. Este pin mostrará la salida cada vez que se despierta ESP32.
LED = PIN (4, PIN.AFUERA)A continuación, los comandos dados parpadearán LED con un retraso de 1 segundo.
condujo.valor (1)Aquí para fines de demostración, parpadeamos el LED. Sin embargo, cualquier otro dispositivo también se puede controlar.
Antes de ir a dormir, imprimimos un mensaje de que ESP32 va en modo de suspensión.
Imprimir ('Voy a dormir ahora')Nota: También podemos agregar un retraso de 5 o más segundos aquí antes de que ESP32 entre al modo de suspensión. Esto nos ayuda a construir un proyecto y escribir un nuevo guión. Al subir un nuevo código, la placa debe estar despierta y no en modo de suspensión. Si no agregamos el retraso, será difícil para nosotros atrapar ESP32 en modo despierto y cargar un nuevo script.
Después de escribir el nuevo script y una vez que el código final está listo, podemos eliminar este retraso en la versión final del script.
Finalmente, el tablero ESP32 se pone profundamente durante 5 segundos (5000 ms).
máquina.Deepsleep (5000)Una vez que el tiempo de 5 segundos pasa, el ESP32 se despierta y reinicia el código similar al Interno botón.
Producción
Se puede observar la siguiente salida en el terminal de la carcasa de Thonny IDE. Aquí podemos ver que después de cada 5 segundos ESP32 se despierta del sueño profundo y parpadean el LED en GPIO Pin 4.
El LED en GPIO 4 girará EN por 1 segundo.
Después de 1 segundo, el LED girará APAGADO.
Ahora la placa ESP32 volverá a entrar en modo de suspensión durante 5 segundos y después de eso se repite todo el proceso. Así que eso es todo, hemos controlado con éxito el modo de suspensión profunda ESP32 usando el código de temporizador.
Conclusión
Aquí en este tutorial, hemos configurado ESP32 para despertarnos de profundidad usando un programa de temporizador escrito en Micrypthon. Subimos el código usando el Thonny ide. Simplemente hemos impreso un mensaje una vez que el ESP32 se despierta y parpadea un LED; Sin embargo, al usar este artículo uno puede ejecutar cualquier tarea una vez que el ESP32 se despierta del sueño profundo.