OTA no ESP32 e envio do nível de bateria

Mantenha o firmware das sondas ESP32 atualizado via OTA na rede local enquanto a ingestão push envia bateria e RSSI para a API HTTP do ProbeHarbor.

Vista de cima de uma placa microcontroladora Arduino Uno azul sobre fundo branco
Placas compatíveis com Arduino rodam o sketch que lê as sondas e publica o JSON. Foto: Wikimedia Commons contributor. CC0

O que importa para o ProbeHarbor são as leituras via HTTPS, não como você atualiza o microcontrolador. Mantenha o OTA na sua rede local e a ingestão apontando para /api/ingest/<key>. Baixe um sketch já preenchido no Devices depois de criar um dispositivo push.

Primeira gravação x OTA

  • Primeira gravação via USB: use o checklist do quadro do Devices (pacote da placa ESP32, bibliotecas, Serial 115200). Veja as opções de gravação para Arduino IDE, PlatformIO, MicroPython e o esptool web da Espressif.
  • OTA pela rede local depois: quando o Wi‑Fi estiver funcionando, o ArduinoOTA (ou o OTA HTTPS do ESP-IDF) permite enviar um firmware novo sem precisar voltar até a sonda com um cabo.

ArduinoOTA (rede local)

Depois que o WiFi.begin conectar, inicie o OTA e chame handle() dentro do loop. Use uma senha em oficinas em produção. A “porta de rede” do PlatformIO / Arduino IDE passa então a mostrar a 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 …
}

OTA e ingestão são independentes: um POST para a nuvem que falha não bloqueia o OTA, e uma atualização OTA não muda a chave do seu dispositivo ProbeHarbor.

Payload de ingestão com bateria e RSSI

Campos opcionais no nível principal mantêm corretos o status de saúde no Devices e os alertas de bateria fraca ou sinal fraco:

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

Os exemplos de DS18B20 já enviam rssi. Adicione battery ou battery_pct quando tiver um divisor de tensão ou um medidor de carga. Ative os alertas de saúde em Dashboard → Alerts.

Wi‑Fi sem recompilar

WIFI_SSID / WIFI_PASS fixos no código funcionam bem para um ponto de acesso fixo na garagem. Se a rede muda com frequência, use o portal cativo do sketch WiFiManager na primeira inicialização; a URL de ingestão continua vindo do download do Devices ou de um #define.

Relacionados

Perguntas frequentes

Dispositivos ESP32 podem atualizar o firmware enquanto enviam para o ProbeHarbor?
Sim: faça o OTA do firmware na sua rede local e mantenha a ingestão push enviando leituras para a API na nuvem. Os campos de bateria e RSSI são opcionais no payload. Baixe um sketch já preenchido em Dashboard → Devices para a primeira gravação via USB.

Preciso recompilar quando a senha do Wi-Fi mudar?
Não, se você usar o exemplo com WiFiManager (portal cativo). Caso contrário, edite WIFI_SSID / WIFI_PASS e grave de novo. A URL de ingestão continua vindo de Devices.