(Versión uno de este texto. A revisar algunos detalles, aunqe lo básico es verdad y funciona)
Es un sistema estupendo cuando funciona.
PERO lo más importante es que El sistema OTA del Arduino IDE a menudo no funciona y parece que sería un bug en algunos dispositivos/firmware de Expresif.
Parece que es posible que haya un bug en algún sitio y a veces el IDE no reconoce el ESP cuando está con la wifi disponible para cargar por OTA.
Como todas las ota hay que cargarla con el sketch anterior para que quede abierta la wifi y el próximo se pueda cargar por ota. O sea que si se quiere usar ota habitualmente hay que incluirlo en todos los sketches.
ElegantOTA — cómo funciona
El ESP32 levanta un pequeño servidor web interno. Cuando entras a su IP desde cualquier navegador, ves una página con un botón para subir el .bin. Sin cables, sin IDE, sin consola.
Instalación.
En Arduino IDE, , buscar e instalar: ElegantOTA
Añadirlo a tu sketch actual
Solo necesitas agregar unas pocas líneas:
#include <WebServer.h>
#include <ElegantOTA.h>
WebServer server(80);
En el setup(), después de conectar el WiFi:
server.on("/", []() {
server.send(200, "text/plain", "ESP32 OK");
});
ElegantOTA.begin(&server, "admin", "1234"); // usuario y contraseña
server.begin();
Serial.println("Servidor OTA listo");
En el loop:
server.handleClient();
ElegantOTA.loop();
Como se usa:
1. En Arduino IDE haces **Sketch → Export Compiled Binary** → genera el `.bin` (que queda guardado en una subcarpeta del sketch correspondiente)
2. Desde cualquier navegador (PC, móvil...) entras a:
```
Donde XX es la ip fija que hayamos elegido
3. Te pide usuario y contraseña (admin / 1234)
4. Seleccionas el .bin y subes
Ventajas frente a OTA del Arduino IDE
Funciona desde cualquier dispositivo con navegador
No necesitas IDE ni consola para subir
Solo necesitas el .bin compilado desde el PC, que se puede mandar y tener en el correo, en whatsapp o guardado en el móvil.
Esto es para verlo con calma a quien le interese, que creo que para montajes en campo o poco accesibles puede ser muy útil.