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!
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:
2) Ir a Herramientas para seleccionar el modelo de su placa ESP. También necesitas seleccionar el puerto COM de tu ESP
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();
}
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».
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:
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.
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
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);
}
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.
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
- ¿Para qué se utiliza la carga inalámbrica de un nuevo sketch desde Arduino IDE?
- 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.
- ¿Cómo se realiza el proceso de actualización OTA con ESP8266?
- 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.
- ¿Cómo se sube un nuevo sketch OTA a ESP8266?
- 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.
La carga inalámbrica de un nuevo sketch desde Arduino IDE se utiliza en los siguientes escenarios típicos:
Para cargar el firmware de ESP8266 de forma inalámbrica, primero debes subir el ejemplo de sketch BasicOTA.ino. Sigue estos pasos:
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:
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.