Publicado el Deja un comentario

Módulo HC05: Un mal necesario

Varias veces prometí no volver a usar este módulo, aunque cuando está funcionando, es encantador.

Un ESP32 ya trae BLE. Pero es más complicado.

Ergo una placa tipo Wemos D1 Mini es ideal. Económica, masiva, pequeña, siempre sube el sketch. Con este modulito me convertí en profesor mientras mis alumnos me pedían que se las deje luego de cada clase en Barcelona, entre los años 2018 y 2022

/* HC-05 Conecxión con NodeMCU ESP8266 */

#include <SoftwareSerial.h>

SoftwareSerial btSerial(D2, D3); // Rx,Tx

int led = D4;   // led also the internal led of NodemCU

int ledState = LOW;   // led state to toggle

String estado = "";

unsigned long previousMillis = 0;  // millis instaed of delay

const long interval = 500;  // blink after ecery 500ms

void setup() {

  delay(1000);

  Serial.begin(9600);

  btSerial.begin(9600);     // bluetooth module baudrate

  pinMode(led, OUTPUT);

  Serial.println("Started...");

}

void loop() {

  if (btSerial.available() > 0) {    // check if bluetooth module sends some data to esp8266

    char caracterRecibe = btSerial.read();  // read the data from HC-05

    switch (caracterRecibe) {
      case 'B':         // Si recibo 'B'
        estado = "blink";   //parpadea
        break;
      case 'S':              // Si llega una 'S'
        estado = "stop"; //para
        break;
      default:
        break;
    }

  }


  if (estado == "blink") {          // if received data is 'B' the start blinking


    if (millis() - previousMillis >= 150) {

      previousMillis = millis();

      if (ledState == LOW) {
        ledState = HIGH;
        Serial.println("PARPADEO GATO MIAU");

      } else {

        ledState = LOW;

      }

      digitalWrite(led, ledState);

    }

  }

}
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() {

}