Publicado el Deja un comentario

ESP32 con ESP.restart()

 

El microcontrolador ESP32 combina WiFi, Bluetooth, toneladas de memoria e integración con toda una IDE de desarrollo para tener cada vez menos límites en nuestro proyecto.

Pero a veces se cuelga,

O preferimos reiniciar, pues un microcontrolador comienza cuando se reinicia. Como el Fénix que surge de sus cenizas, el micro se enciende un hará lo mismo. Una y otra vez. Este es el mejor lugar donde poner lo que necesitamos, ya tenga un treigger o no.

Descripción general del software que restablece ESP32 utilizando la práctica función ESP.restart().


Introducción a ESP32

En un entorno IDE de Desarrollo se proporciona fácil acceso a las entradas, salidas, pila WiFi, sistema de archivos y más del chip. Los SKETCH o BOCETOS escritos para otros microcontroladores, generalmente se pueden adaptar para funcionar en el ESP32. Esta combinación de potencia y accesibilidad es lo que hace que el ESP32 sea tan atractivo.
Por qué es útil reiniciar el software con ESP.restart()

La capacidad de restablecer el ESP32 a pedido mediante software puede resultar extremadamente útil en determinadas situaciones.

Algunos ejemplos:

  * Reiniciar según un cronograma, Por ejemplo cada 24 horas
   * Recuperarse de Crash (Error Fatal)
   * Reinicie antes de entrar en suspensión de bajo consumo, para evitar dejar procesos que consuman
   * Reiniciar antes de actualizar el firmware
   * Simulación de ciclos
   * Actualiza la conexión WiFi periódicamente

En lugar de tener que presionar un botón de reinicio físico cada vez, podemos llamar a ESP.restart() desde el código cada vez que queramos reiniciar.

Reiniciar el software borra la RAM e inicia el programa desde el principio. La memoria flash no volátil persiste, igual que durante un reinicio normal.
ESP.restart() Ejemplo de código de reinicio

Para un reinicio de software básico, aquí hay un Sketch de un que reinicia el ESP32 después de un retraso de 5 segundos:

 

void setup() {

  Serial.begin(115200);

  Serial.println("Reiniciando en 5 segundos");

  delay(5000);

  ESP.restart(); 

}

void loop() {

}

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *