Como criar um sensor de temperatura e umidade com ESP32 e Home Assistant
Por que montar seu próprio sensor?
Sensores de temperatura prontos como o Xiaomi Aqara ou Sonoff SNZB-02 custam entre R$ 80 e R$ 150 cada. Se você quer colocar um em cada cômodo da casa, a conta sobe rápido. Com um ESP32 é um DHT22, você monta o mesmo sensor por menos de R$ 45 e ainda tem a liberdade de adicionar outros sensores na mesma placa depois.
Além do custo, o sensor caseiro te dá controle total: você decide o intervalo de leitura, o nome das entidades, pode adicionar sensores extras (luminosidade, qualidade do ar, presença) e não depende de nenhum fabricante ou app de terceiro.
Lista de materiais
- ESP32 DevKit V1 (~R$ 30): a placa de desenvolvimento. Tem Wi-Fi e Bluetooth integrados, 34 GPIOs e roda o ESPHome perfeitamente. Compre no AliExpress ou mercado livre
- Sensor DHT22 (AM2302) (~R$ 15): mede temperatura de -40°C a 80°C (precisão ±0.5°C) e umidade de 0 a 100% (precisão ±2-5%). Existe o DHT11 que é mais barato, mas a precisão é bem pior
- 3 fios jumper fêmea-fêmea: para conectar o sensor na placa
- Cabo micro-USB: para alimentação e primeira gravação
- Fonte USB 5V/1A: qualquer carregador de celular serve para alimentação definitiva
Opcional mas recomendado: um case impresso em 3D ou uma caixinha de projeto elétrico pequena (R$ 5 em loja de eletrônica). Protege a placa e fica mais apresentável.
Esquema de ligação
A ligação é direta, sem protoboard e sem solda:
- Pino 1 do DHT22 (VCC) vai no 3.3V do ESP32
- Pino 2 do DHT22 (DATA) vai no GPIO4 do ESP32
- Pino 4 do DHT22 (GND) vai no GND do ESP32
- Pino 3 do DHT22 não é usado (deixe solto)
Se o seu DHT22 veio no módulo com 3 pinos (a plaquinha azul ou vermelha), o resistor pull-up de 10kΩ entre VCC e DATA já está incluído. Se veio o sensor solto com 4 pinos, coloque um resistor de 10kΩ entre o pino 1 (VCC) e o pino 2 (DATA). Sem esse resistor, a leitura pode falhar intermitentemente.
Preparando o ESPHome
No seu Home Assistant, vá em Configurações > Add-ons > Loja de Add-ons e instale o ESPHome. Depois de instalado, acesse o painel do ESPHome e clique em "New Device".
Dê um nome descritivo para o dispositivo. Eu costumo usar o padrão sensor-[cômodo], por exemplo: sensor-quarto, sensor-sala, sensor-garagem. Isso facilita quando você tem vários espalhados pela casa.
Arquivo de configuração completo
Aqui está a configuração YAML completa. Copie, ajuste o nome da rede Wi-Fi e a senha:
esphome:
name: sensor-quarto
friendly_name: "Sensor do Quarto"
esp32:
board: esp32dev
framework:
type: arduino
# Conexão Wi-Fi
wifi:
ssid: "NomeDaSuaRede"
password: "SenhaDoWiFi"
# Caso perca o Wi-Fi, cria um AP para reconfigurar
ap:
ssid: "Sensor Quarto Fallback"
password: "senhaqualquer"
# Portal de configuração caso caia o Wi-Fi
captive_portal:
# Permite logs pelo Wi-Fi (útil para debug)
logger:
# API para integração com Home Assistant
api:
encryption:
key: "sua-chave-será-gerada-automaticamente"
# Atualização sem fio (OTA)
ota:
- platform: esphome
password: "sua-senha-ota"
# Sensor de temperatura e umidade
sensor:
- platform: dht
pin: GPIO4
model: DHT22
temperature:
name: "Temperatura"
filters:
- offset: -1.0 # Calibração se necessário
humidity:
name: "Umidade"
update_interval: 30s
# Sensor de sinal Wi-Fi (bonus: monitora qualidade da conexão)
- platform: wifi_signal
name: "Sinal Wi-Fi"
update_interval: 60s
# Tempo ligado (útil para saber se reiniciou)
- platform: uptime
name: "Uptime"
# Sensor binário: status da conexão
binary_sensor:
- platform: status
name: "Status"O que cada bloco faz
- wifi > ap: se o ESP32 perder a conexão com seu Wi-Fi, ele cria uma rede própria chamada "Sensor Quarto Fallback". Você conecta nessa rede e reconfigura pelo navegador. Muito útil se mudar a senha do Wi-Fi
- captive_portal: trabalha junto com o AP de fallback, abre uma página de configuração automática quando você conecta
- api + encryption: a chave de criptografia é gerada automaticamente pelo ESPHome na primeira compilação. Ela protege a comunicação entre o ESP32 e o Home Assistant
- ota: permite atualizar o firmware pelo Wi-Fi. Depois da primeira gravação por USB, você nunca mais precisa conectar cabo
- filters > offset: calibração de temperatura. Se o sensor marca 1°C a mais que um termômetro de referência, coloque
offset: -1.0. Se marca 1°C a menos, coloqueoffset: 1.0 - wifi_signal: sensor bônus que mostra a qualidade do sinal Wi-Fi. Se ficar abaixo de -75 dBm, o ESP32 está longe demais do roteador
- uptime + status: sensores de diagnóstico. Você sabe há quanto tempo o sensor está ligado e se está conectado
Primeira gravação (USB)
- Conecte o ESP32 no computador via USB
- No painel do ESPHome, clique nos 3 pontos do dispositivo > Install
- Escolha "Plug into this computer"
- Selecione a porta serial (geralmente aparece como CP2102 ou CH340)
- Aguarde a compilação e gravação (leva 2 a 5 minutos na primeira vez)
Se a porta não aparecer, pode ser que falte o driver do chip USB do seu ESP32. Os mais comuns são o CP2102 (da Silicon Labs) e o CH340 (da WCH). Baixe o driver no site do fabricante do chip.
Integração automática com Home Assistant
Depois da gravação, o ESP32 conecta no Wi-Fi e o Home Assistant detecta automaticamente. Vai aparecer uma notificação "Novo dispositivo descoberto". Clique em configurar, confirme a chave de criptografia e pronto.
Os sensores aparecem como entidades:
sensor.sensor_quarto_temperaturasensor.sensor_quarto_umidadesensor.sensor_quarto_sinal_wi_fisensor.sensor_quarto_uptimebinary_sensor.sensor_quarto_status
Automações que você pode criar com esse sensor
Com o sensor funcionando, as possibilidades se abrem:
- Ar-condicionado automático: temperatura passa de 26°C > liga o ar. Cai abaixo de 23°C > desliga. Precisa de um controle IR (Broadlink RM4 Mini, ~R$ 80)
- Alerta de umidade baixa: umidade abaixo de 30% > notificação no celular para ligar o umidificador. Importante no inverno paulista
- Alerta de umidade alta: umidade acima de 80% por mais de 2 horas > pode indicar infiltração ou vazamento
- Gráficos de histórico: o Home Assistant guarda o histórico e você vê a variação ao longo do dia. Útil para entender o comportamento térmico do cômodo
Dica: calibração fácil
O DHT22 é razoavelmente preciso de fábrica, mas cada sensor tem uma pequena variação. Para calibrar:
- Coloque o ESP32 ao lado de um termômetro confiável por 30 minutos
- Compare as leituras
- Ajuste o valor do
offsetna configuração - Atualize pelo OTA (sem fio, pelo painel do ESPHome)
Quanto custa montar um para cada cômodo?
Com os componentes comprados no AliExpress:
- 1 sensor: ~R$ 45
- 3 sensores (sala, quarto, escritório): ~R$ 120
- 5 sensores (casa inteira): ~R$ 180
Compare com 5 sensores Aqara que custariam R$ 400 a R$ 750. E o ESP32 ainda aceita sensores extras na mesma placa.
Expansões possíveis na mesma placa
O ESP32 tem GPIOs sobrando. Você pode adicionar na mesma placa, sem custo extra de hardware:
- BH1750: sensor de luminosidade (~R$ 8). Automação: acender a luz quando escurece
- BME280: substitui o DHT22 com mais precisão e adiciona pressão atmosférica (~R$ 15)
- PIR HC-SR501: sensor de movimento (~R$ 8). Automação: acender luz quando detecta presença
- LD2410: sensor de presença mmWave (~R$ 25). Detecta presença mesmo com pessoa parada
- MQ-135: qualidade do ar (~R$ 12). Alerta quando o ar está ruim
Com um ESP32 + BME280 + BH1750 + LD2410 você tem um sensor multifunção completo por menos de R$ 80 que substitui 3 ou 4 dispositivos separados.
Se você curtiu a ideia mas prefere um projeto pronto e configurado, a Blackdog.dev monta sensores customizados e instala na sua casa em Amparo, Serra Negra, Socorro e região do Circuito das Águas. Fale com a gente.