Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

El ESP8266 es uno de los microcontroladores más populares en el mundo de la electrónica y la programación. En este artículo te explicaremos cómo llevar a cabo actualizaciones OTA (Over-The-Air) de tu ESP8266 utilizando Arduino IDE. ¡Sigue leyendo para descubrir cómo actualizar tu dispositivo por el aire de manera sencilla y eficiente!

La actualización OTA (Over the Air) implica cargar nuevo firmware en el módulo ESP8266 a través de una conexión WiFi en lugar de una conexión en serie. Este tipo de funcionalidad es extremadamente útil cuando no hay acceso físico al módulo ESP.

La carga inalámbrica de un nuevo boceto desde Arduino IDE está pensada para los siguientes escenarios típicos:

  • durante el desarrollo del firmware, como una alternativa más rápida a cargar un nuevo boceto vía serie
  • para actualizar el firmware de múltiples ESP en su red

Si te gusta ESP y quieres hacer más proyectos, puedes leer mi libro electrónico “Home Automation with ESP8266”.

¡Vamos a empezar!

Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

Paso 1: cargue BasicOTA.ino con comunicación en serie

Para cargar firmware de forma inalámbrica a su ESP8266, primero debe cargar el ejemplo de boceto de BasicOTA.ino.

Tener instalado el último software Arduino IDE desde arduino.cc/en/Principal/Software. Siga estas instrucciones adicionales:

1) Conecte su ESP8266 a su computadora con un cable USB:

Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

2) Ir a Herramientas para seleccionar el modelo de su placa ESP. También necesitas seleccionar el puerto COM de tu ESP

Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

3) Abra el ejemplo de BasicOTA.ino: archivo > Ejemplos > Arduino OTA > BasicOTA.ino o copie el siguiente boceto en su IDE de Arduino

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com
  Arduino IDE example: Examples > Arduino OTA > BasicOTA.ino
*********/

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

// Replace with your network credentials
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 8266
  // ArduinoOTA.setPort(8266);

  // Hostname defaults to esp8266-[ChipID]
  // ArduinoOTA.setHostname("myesp8266");

  // No authentication by default
  // ArduinoOTA.setPassword((const char *)"123");

  ArduinoOTA.onStart([]() {
    Serial.println("Start");
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
    else if (error == OTA_END_ERROR) Serial.println("End Failed");
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}

Ver código sin formato

Nota: Debe modificar el ejemplo del boceto con su SSID y contraseña.

4) En el IDE de Arduino, haga clic en el botón «Cargar» y espere el mensaje «Carga completa».

Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

5) Abra el monitor serial Arduino IDE con una velocidad de baudios de 115200. Si ingresó las credenciales de red correctas, después de unos segundos debería ver su dirección IP de ESP:

Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

Paso 2: cargue un nuevo boceto OTA (por aire)

Ahora su ESP8266 está listo para recibir actualizaciones de firmware OTA. Puede desconectar su ESP8266 de su computadora y alimentarlo desde cualquier fuente de energía (por ejemplo, un banco de energía). Si su ESP8266 tiene una conexión inalámbrica a su enrutador, debería poder cargar nuevo firmware sin ningún problema.

Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

1) Vaya a su IDE de Arduino. Abierto Herramientas Seleccione en la pestaña Puerto y deberías ver algo como esto: esp8266-xxxxxx en Su dirección IP ESP

Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

2) Copie el siguiente boceto en su IDE de Arduino y cárguelo en su ESP8266. Este boceto hace que el LED integrado en el kit ESP12-E NodeMCU parpadee cada segundo

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com
  Arduino IDE example: Examples > Arduino OTA > BasicOTA.ino
*********/

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

// Replace with your network credentials
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

const int ESP_BUILTIN_LED = 2;

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 8266
  // ArduinoOTA.setPort(8266);

  // Hostname defaults to esp8266-[ChipID]
  // ArduinoOTA.setHostname("myesp8266");

  // No authentication by default
  // ArduinoOTA.setPassword((const char *)"123");

  ArduinoOTA.onStart([]() {
    Serial.println("Start");
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
    else if (error == OTA_END_ERROR) Serial.println("End Failed");
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  pinMode(ESP_BUILTIN_LED, OUTPUT);
}

void loop() {
  ArduinoOTA.handle();
  digitalWrite(ESP_BUILTIN_LED, LOW);
  delay(1000);
  digitalWrite(ESP_BUILTIN_LED, HIGH);
  delay(1000);
}

Ver código sin formato

Nota: Debe modificar el ejemplo del boceto con su SSID y contraseña.

3) En el IDE de Arduino, haga clic en el botón «Cargar» y espere el mensaje «Carga completa».

4) El LED incorporado de tu ESP debería parpadear cada segundo

Envolver

Espero que este tutorial haya sido útil. Ahora puedes tener tu ESP8266 en una ubicación remota y actualizar su firmware sin tener acceso físico al dispositivo ESP.

¿Tienes preguntas? Deja un comentario a continuación.

Gracias por leer. Si te gusta esta publicación, probablemente también te gustarán las siguientes. Así que apóyame suscribiéndote a mi blog y a mi página de Facebook.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded







Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

Actualizaciones OTA de ESP8266 con Arduino IDE | Por el aire

Las actualizaciones OTA (Over the Air) son el proceso de cargar un nuevo firmware al módulo ESP8266 utilizando una conexión WiFi en lugar de una comunicación serial. Esta funcionalidad es extremadamente útil en caso de no tener acceso físico al módulo ESP.

Preguntas frecuentes

  1. ¿Para qué se utiliza la carga inalámbrica de un nuevo sketch desde Arduino IDE?
  2. La carga inalámbrica de un nuevo sketch desde Arduino IDE se utiliza en los siguientes escenarios típicos:

    • Durante el desarrollo del firmware, como una alternativa más rápida para cargar un nuevo sketch en lugar de hacerlo a través de una comunicación serial.
    • Para actualizar el firmware de múltiples ESP en su red.
  3. ¿Cómo se realiza el proceso de actualización OTA con ESP8266?
  4. Para cargar el firmware de ESP8266 de forma inalámbrica, primero debes subir el ejemplo de sketch BasicOTA.ino. Sigue estos pasos:

    • Conecta tu ESP8266 a tu computadora utilizando un cable USB.
    • Abre el Arduino IDE y selecciona el modelo de placa ESP y el puerto COM de tu ESP.
    • Abre el ejemplo BasicOTA.ino en el Arduino IDE y cárgalo en tu ESP8266.
    • Presiona el botón «Subir» en el Arduino IDE y espera el mensaje «Subida completa».
    • Abre el monitor serial del Arduino IDE y verifica la dirección IP asignada a tu ESP8266.
  5. ¿Cómo se sube un nuevo sketch OTA a ESP8266?
  6. Una vez que tu ESP8266 está listo para recibir actualizaciones OTA, puedes desconectarlo de tu computadora y alimentarlo a través de cualquier fuente de alimentación. Sigue estos pasos:

    • En el Arduino IDE, selecciona el puerto que muestra tu dirección IP y el nombre de tu ESP8266.
    • Copia el nuevo sketch a tu Arduino IDE y súbelo a tu ESP8266.
    • Presiona el botón «Subir» en el Arduino IDE y espera el mensaje «Subida completa».
    • Tu ESP8266 debería tener su LED incorporado parpadeando cada segundo.

Esperamos que este tutorial haya sido útil. Ahora, puedes tener tu ESP8266 en una ubicación remota y actualizar su firmware sin necesidad de acceso físico al dispositivo ESP.

¿Tienes alguna pregunta? Déjanos un comentario. ¡Gracias por leer!

Si te gustó este contenido, probablemente disfrutarás de nuestras próximas publicaciones, así que suscríbete a nuestro blog y página de Facebook para más información.


Deja un comentario