¿Por qué OTA es importante?
Imagina un sensor ESP32 instalado en el techo de tu invernadero o dentro de un panel sellado. Cada vez que necesitas actualizar el firmware debes desmontarlo, conectar el cable, programar y volver a instalar. Con OTA puedes actualizar el firmware vía WiFi desde tu computador sin tocar el dispositivo físico. En producción con decenas de dispositivos, esto es imprescindible.
OTA Básico con ArduinoOTA
- Incluye las librerías WiFi.h, ESPmDNS.h, WiFiUdp.h y ArduinoOTA.h
- En setup(): conecta al WiFi y llama ArduinoOTA.begin()
- En loop(): llama ArduinoOTA.handle() en cada iteración
- Configura contraseña OTA: ArduinoOTA.setPassword("tu_clave")
- El nombre del dispositivo en red: ArduinoOTA.setHostname("ESP32-Sensor-Roof")
- En Arduino IDE: el dispositivo aparece en Herramientas → Puerto como puerto de red
OTA HTTP con ElegantOTA
La librería ElegantOTA añade una página web integrada en el ESP32 para subir el archivo .bin del firmware desde el navegador. Es más amigable que ArduinoOTA y funciona sin el Arduino IDE en el computador del operador. Simplemente abre la IP del ESP32 seguido de /update en el navegador, selecciona el archivo .bin compilado y listo.
Rollback de emergencia
Una buena práctica: en el primer minuto después de un OTA exitoso, verifica que el nuevo firmware funciona correctamente (se conecta al WiFi, lee sensores). Si hay algún error, llama esp_ota_mark_app_invalid_rollback_and_reboot() para volver automáticamente a la versión anterior. Esto previene que un firmware defectuoso deje el dispositivo inaccesible permanentemente. Los ESP32 disponibles en Especificar.cl soportan esta funcionalidad de forma nativa.