DIY & firmware
ESPHome e ESP32: construa seus próprios dispositivos
Como transformar um ESP32 de vinte reais em sensor, interruptor ou controlador integrado ao Home Assistant — com YAML, sem escrever uma linha de C++.
O ESPHome é o atalho mais elegante da casa inteligente: você descreve o dispositivo em YAML, ele compila um firmware sob medida, grava no microcontrolador e o aparelho aparece sozinho no Home Assistant — com atualização por Wi-Fi para sempre.
Por que isso muda o jogo#
- Sem nuvem e sem app: o ESP32 conversa direto com o Home Assistant pela API nativa (criptografada).
- Sem programação: nada de Arduino IDE, bibliotecas e conflitos de versão.
- Atualização OTA: subiu uma mudança no YAML, o dispositivo se atualiza pelo ar.
- Custo: um sensor comercial de presença custa o equivalente a três ESP32 com sensores.
Qual placa escolher#
| Placa | Boa para | Observação |
|---|---|---|
| ESP32 (clássico) | Uso geral, Bluetooth | Melhor custo-benefício; muitos exemplos |
| ESP32-S3 | Voz, câmera, telas | Mais RAM e PSRAM |
| ESP32-C6 | Futuro: Thread/Matter e Wi-Fi 6 | Suporte em amadurecimento |
| ESP8266 | Projetos mínimos | Sem Bluetooth; evite em projetos novos |
| M5Stack ATOM / ATOM Echo | Protótipo pronto em caixinha | Ótimo para satélites de voz |
Compre com USB-C e antena externa quando possível
Placas com conector de antena resolvem casos de Wi-Fi fraco em áreas externas e garagens.
O primeiro dispositivo, do zero#
Instale o add-on ESPHome Device Builder no Home Assistant (Configurações → Add-ons). Crie um novo dispositivo, conecte a placa por USB e grave a primeira vez pelo navegador — depois disso, só OTA.
Um sensor de temperatura e umidade completo cabe em 30 linhas:
esphome:
name: sensor-varanda
friendly_name: Sensor da Varanda
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
api:
encryption:
key: !secret api_key_varanda
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Cria um ponto de acesso de resgate se o Wi-Fi sumir
ap:
ssid: "Varanda Fallback"
sensor:
- platform: dht
pin: GPIO4
model: DHT22
temperature:
name: "Temperatura da varanda"
filters:
- median:
window_size: 5
humidity:
name: "Umidade da varanda"
update_interval: 60s
- platform: wifi_signal
name: "Sinal Wi-Fi"
update_interval: 120s
Salve, clique em Install → Wirelessly e o dispositivo aparece no Home Assistant com as entidades prontas.
Projetos que valem o fim de semana#
1. Sensor de presença real (mmWave)#
Sensores PIR só detectam movimento — você fica parado lendo e a luz apaga. Um sensor de radar de onda milimétrica (LD2410, LD2450) detecta presença, inclusive de quem está imóvel:
uart:
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 256000
parity: NONE
stop_bits: 1
ld2410:
binary_sensor:
- platform: ld2410
has_target:
name: "Presença"
has_moving_target:
name: "Movimento"
number:
- platform: ld2410
timeout:
name: "Tempo até considerar vazio"
2. Interruptor de parede que mantém a tecla física#
Um módulo relé atrás do interruptor preserva o uso normal da casa e adiciona controle remoto:
switch:
- platform: gpio
pin: GPIO12
id: rele_corredor
name: "Luz do corredor"
restore_mode: RESTORE_DEFAULT_OFF
binary_sensor:
- platform: gpio
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: true
id: tecla
on_press:
- switch.toggle: rele_corredor
Rede elétrica exige respeito
Trabalhar com 127/220 V dentro de caixas de parede é sério: desligue o disjuntor, confira com um detector de tensão e, em caso de dúvida, chame um eletricista. Módulos certificados (Sonoff, Shelly) já vêm com isolamento adequado e também rodam ESPHome.
3. Rastreador de presença por Bluetooth#
Um ESP32 por cômodo com esp32_ble_tracker transforma a casa num sistema de localização por aproximação,
útil para saber em qual ambiente alguém está sem instalar câmeras.
4. Satélite de voz#
Com um M5Stack ATOM Echo e 15 linhas de YAML você tem um ponto de voz do Assist na cozinha — processamento local, sem enviar áudio para fora.
Boas práticas que evitam dor de cabeça#
- Use
secrets.yamlpara Wi-Fi, chaves de API e senhas OTA; nunca versione esse arquivo no Git. - Nomes com padrão:
sala-presenca,varanda-clima. O nome vira o hostname e o prefixo das entidades. update_intervalhonesto: um sensor de temperatura a cada 10 segundos só enche o banco de dados.- Filtros no dispositivo (
median,sliding_window_moving_average,delta) evitam ruído e escrita inútil. api: reboot_timeoutdefine o que acontece se o Home Assistant cair — avalie antes de deixar o padrão.- Guarde os YAMLs num repositório Git; são a documentação real da sua casa.
ESPHome x Tasmota x firmware de fábrica#
- ESPHome: integração mais profunda com o Home Assistant, configuração declarativa. Padrão recomendado.
- Tasmota: excelente para flashar dispositivos comerciais prontos e falar MQTT com qualquer sistema.
- Firmware de fábrica: funciona, mas costuma exigir nuvem e app próprio. Quando o aparelho é baseado em ESP, vale trocar — muitos aceitam gravação pelo ar com ferramentas da comunidade.
Próximo passo natural: escolher o rádio dos sensores comprados prontos em Zigbee2MQTT ou ZHA e entender onde entra o Matter over Thread.