1. A Força da ESPHome Native API
Diferente do MQTT tradicional (onde você precisa definir tópicos, payloads JSON e formatar estados manualmente), o ESPHome utiliza a Native API (porta 6053 TCP) com o protocolo de criptografia Noise:
- Autodescoberta Zero-Config: Assim que a placa ESP32 entra na rede Wi-Fi, o Home Assistant exibe uma notificação de novo dispositivo encontrado.
- Comunicação Bidirecional em Tempo Real: Latência inferior a 10ms para acionamento de relés e leitura analógica.
- Autonomia Local: Todas as automações e proteções críticas rodam dentro do próprio microcontrolador. Se o servidor Home Assistant ou o roteador desligarem, o ESP32 continua controlando a bomba d'água e lendo os sensores com segurança.
2. Exemplo Canônico: Firmware do Monitor de Cisterna
Abaixo está o arquivo YAML de produção para monitorar o nível de água com sensor ultrassônico JSN-SR04T à prova d'água, aplicando filtro de mediana contra ruídos de gotas e cálculo linear de volume em litros:
esphome:
name: cisterna-artesdosul
friendly_name: "Cisterna Artes do Sul"
esp32:
board: esp32dev
framework:
type: esp-idf
api:
encryption:
key: "SUA_CHAVE_NOISE_GERADA_PELO_ESPHOME_32_BYTES"
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.180
gateway: 192.168.1.1
subnet: 255.255.255.0
sensor:
- platform: ultrasonic
trigger_pin: GPIO5
echo_pin: GPIO18
name: "Nível da Cisterna (%)"
update_interval: 5s
unit_of_measurement: "%"
icon: "mdi:water-percent"
filters:
- filter_out: nan
- median:
window_size: 7
send_every: 3
- lambda: |-
float altura_total = 2.20;
float distancia_lida = x;
float nivel_agua = altura_total - distancia_lida;
float perc = (nivel_agua / altura_total) * 100.0;
if (perc < 0.0) perc = 0.0;
if (perc > 100.0) perc = 100.0;
return perc;
- platform: template
name: "Volume da Cisterna (Litros)"
unit_of_measurement: "L"
icon: "mdi:water"
lambda: |-
float perc = id(nivel_da_cisterna).state;
return (perc / 100.0) * 5000.0;
switch:
- platform: gpio
pin: GPIO23
name: "Bomba da Cisterna"
icon: "mdi:pump"
id: rele_bomba
3. Displays Touch & Painéis de Parede (CYD 2.8" & LVGL)
O ESP32 Cheap Yellow Display (CYD 2432S028) de R$ 50,00 pode ser transformado em um elegante painel touch para mesa ou parede com a biblioteca lvgl no ESPHome. Ele se conecta via Wi-Fi ao Home Assistant e exibe botões virtuais, medições de temperatura e controle de lâmpadas.
4. Sincronização com as Bancadas Artes do Sul
Todos os projetos desenvolvidos na Oficina Maker, os nós portáteis do M5Stack Lab e a malha do Portão ESP-NOW integram-se de forma transparente nesta mesma central.