OTA del ESP32 y reporte de batería

Mantén al día el firmware de las sondas ESP32 con OTA por la LAN mientras la ingesta push envía la batería y el RSSI a la API HTTP de ProbeHarbor.

Vista superior de una placa microcontroladora Arduino Uno azul sobre fondo blanco
Las placas compatibles con Arduino ejecutan el sketch que consulta las sondas y publica JSON. Foto: Wikimedia Commons contributor. CC0

A ProbeHarbor le importan las lecturas por HTTPS, no cómo actualizas el microcontrolador. Mantén el OTA en tu red local y la ingesta apuntando a /api/ingest/<key>. Descarga un sketch ya configurado desde Devices después de crear un dispositivo push.

Primer flasheo frente a OTA

  • Primer flasheo por USB: usa la lista de comprobación del recuadro de Devices (paquete de placa ESP32, bibliotecas, Serial 115200). Consulta las opciones de flasheo para Arduino IDE, PlatformIO, MicroPython y el esptool web de Espressif.
  • OTA por la red local después: cuando el Wi‑Fi ya funciona, ArduinoOTA (o el OTA HTTPS de ESP-IDF) te permite enviar firmware nuevo sin tener que volver a la sonda con un cable.

ArduinoOTA (red local)

Cuando WiFi.begin se conecte, inicia el OTA y llama a handle() dentro de loop. Usa una contraseña en talleres en producción. Después, el «puerto de red» de PlatformIO / Arduino IDE mostrará la placa.

#include <ArduinoOTA.h>

void setup() {
  // … WiFi connected …
  ArduinoOTA.setHostname("garage-probe");
  ArduinoOTA.setPassword("change-me");
  ArduinoOTA.begin();
}

void loop() {
  ArduinoOTA.handle();
  // … your ingest POST on an interval …
}

El OTA y la ingesta son independientes: un POST fallido a la nube no bloquea el OTA, y una actualización OTA no cambia la clave de tu dispositivo ProbeHarbor.

Carga de ingesta con batería y RSSI

Los campos opcionales de nivel superior mantienen precisos el estado de salud en Devices y las alertas de batería baja o señal débil:

{
  "temp1": 42.5,
  "door1": false,
  "battery": 87,
  "rssi": -62
}

Los ejemplos de DS18B20 ya envían rssi. Añade battery o battery_pct si tienes un divisor de tensión o un medidor de carga. Activa las alertas de salud en Dashboard → Alerts.

Wi‑Fi sin recompilar

Dejar WIFI_SSID / WIFI_PASS fijos en el código está bien para un punto de acceso de garaje que no cambia. Si la red cambia a menudo, usa el portal cautivo del sketch de WiFiManager en el primer arranque; la URL de ingesta sigue viniendo de la descarga de Devices o de un #define.

Relacionado

Preguntas frecuentes

¿Los ESP32 pueden actualizar el firmware mientras envían datos a ProbeHarbor?
Sí: haz las actualizaciones OTA del firmware en tu red local y mantén la ingesta push enviando lecturas a la API en la nube. Los campos de batería y RSSI son opcionales en el payload. Descarga un sketch ya configurado desde Dashboard → Devices para el primer flasheo por USB.

¿Tengo que recompilar cuando cambie la contraseña del Wi‑Fi?
No si usas el ejemplo con WiFiManager (portal cautivo). Si no, edita WIFI_SSID / WIFI_PASS y vuelve a flashear. La URL de ingesta sigue viniendo de Devices.