Despertar a Esptop 10 del sueño profundo usando temporizadores-micropython

Despertar a Esptop 10 del sueño profundo usando temporizadores-micropython
ESP32 es una plataforma IoT basada en microcontroladores. El consumo de energía es una de las principales preocupaciones mientras se trabaja con un tablero de microcontroladores. Mientras alimentemos ESP32 con un suministro de CC, no nos importa más el consumo de energía, pero con los proyectos de respaldo de la batería a largo plazo necesitamos optimizar la energía general.

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:

  • Controlador RTC
  • Coprocesador ULP
  • RTC memoria rápida y lenta
  • Periféricos RTC

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:

  • Temporizador
  • Toque
  • Despertar externo ext0
  • Despertar externo ext1

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.comunicarse
desde la máquina importar profundo
desde el pin de importación de la máquina
Desde el tiempo de sueño
LED = PIN (4, PIN.Out) #pin 4 definido para la salida LED
condujo.Valor (1) #Turn en LED para 1 segundo
dormir (1)
condujo.Valor (0) #Turn Off LED por 1 seg
dormir (1)
Imprimir ('Voy a dormir ahora')
Deepsleep (5000) #sleep por 5 segundos

El 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)
dormir (1)
condujo.valor (0)
dormir (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.