Tag: Dht22

  • Sensores: Os Olhos, Ouvidos e Tato do Seu Projeto

    Sensores: Os Olhos, Ouvidos e Tato do Seu Projeto

    Um microcontrolador sem sensores é um cérebro numa cuba — processa, calcula, mas não sente o mundo. O que transforma uma placa de R$ 30 num termostato, num alarme de intrusão, num robô que se equilibra ou numa estação meteorológica são os sensores. Eles são a ponte entre o mundo físico — temperatura, luz, movimento, distância, aceleração — e o mundo digital dos bits. Escolher o sensor certo é mais importante que escolher o microcontrolador certo. E a maioria dos iniciantes escolhe errado.

    Este é o guia que eu gostaria de ter lido quando comecei: cinco sensores fundamentais, como funcionam, o que comprar, o que evitar e — crucial — como decidir entre opções parecidas.

    Sensores de Temperatura e Umidade: DHT22 vs. BME280 vs. DS18B20

    O DHT22 (AM2302) é o sensor mais usado em projetos maker de climatização. Mede temperatura (-40 a 80°C, ±0.5°C) e umidade (0-100%, ±2-5%). Comunicação digital por protocolo proprietário de um fio (one-wire). Custa R$ 15-25. É o “bom o suficiente” para 90% dos projetos.

    Mas o BME280 (Bosch) é superior em precisão de temperatura (±0.5°C), umidade (±3%) e ainda mede pressão atmosférica (±1 hPa). Comunicação I2C ou SPI. Custa R$ 20-40. Use quando você precisa de pressão (previsão do tempo, altímetro) ou quando a precisão importa.

    Se você precisa apenas de temperatura e em ambientes extremos (freezers, fornos, aquários), o DS18B20 (Maxim) é imbatível: -55 a 125°C, ±0.5°C, à prova d’água em encapsulamento de aço inox (versão “sonda”), comunicação one-wire Dallas genuína (confiável, endereçável — múltiplos sensores no mesmo fio).

    Medição de Distância: HC-SR04 vs. VL53L0X vs. LD2410

    O HC-SR04 é o sensor ultrassônico clássico: emite um pulso sonoro de 40 kHz e mede o tempo até o eco voltar. Alcance: 2 cm a 4 metros. Precisão: ~3 mm. Custa R$ 8-15. Funciona com qualquer microcontrolador usando dois pinos digitais (trigger + echo). Limitações: não funciona bem em superfícies macias/anguladas (absorvem/desviam o som), tem cone de detecção largo (~15°) e não mede distâncias menores que 2 cm.

    Código mínimo para Arduino:

    const int trig = 9, echo = 10;
    void setup() {
      Serial.begin(9600);
      pinMode(trig, OUTPUT); pinMode(echo, INPUT);
    }
    void loop() {
      digitalWrite(trig, LOW); delayMicroseconds(2);
      digitalWrite(trig, HIGH); delayMicroseconds(10);
      digitalWrite(trig, LOW);
      long duration = pulseIn(echo, HIGH);
      float distance = duration * 0.0343 / 2;
      Serial.print("Distancia: "); Serial.print(distance); Serial.println(" cm");
      delay(500);
    }
    

    O VL53L0X (STMicroelectronics) é um sensor Time-of-Flight a laser infravermelho (940 nm): mede o tempo que a luz leva para ir e voltar. Alcance: 3 cm a 2 metros. Precisão: ±3%. Comunicação I2C. Custa R$ 30-50. Vantagens: funciona em qualquer superfície, independente de cor ou textura; feixe estreito (~2°); baixíssimo consumo. É o sensor que robôs aspiradores usam para mapear ambientes.

    O LD2410 (Hi-Link) é um sensor de presença por radar de ondas milimétricas (mmWave, 24 GHz). Diferente de um PIR (infravermelho passivo) que só detecta movimento, o LD2410 detecta presença — uma pessoa parada, respirando, a 6 metros de distância, através de parede fina de gesso. Alcance: 0.75 a 6 metros configurável. Comunicação UART (serial). Custa R$ 40-60. É o santo graal da automação residencial: luz que acende quando você entra e não apaga enquanto você está parado lendo.

    Acelerômetro e Giroscópio: MPU6050

    O MPU6050 (InvenSense/TDK) é um IMU (Inertial Measurement Unit) de 6 eixos: acelerômetro de 3 eixos (±2/4/8/16 g) + giroscópio de 3 eixos (±250/500/1000/2000 °/s). Comunicação I2C. Custa R$ 15-25. É o sensor mais versátil da eletrônica maker: drones (estabilização PID), robôs que se equilibram (pêndulo invertido), pedômetros, controle gestual, detecção de queda, orientação 3D.

    Código básico com Arduino e biblioteca Adafruit MPU6050:

    #include <Adafruit_MPU6050.h>
    #include <Adafruit_Sensor.h>
    
    Adafruit_MPU6050 mpu;
    
    void setup() {
      Serial.begin(115200);
      if (!mpu.begin()) {
        Serial.println("MPU6050 nao encontrado!");
        while (1);
      }
      mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
      mpu.setGyroRange(MPU6050_RANGE_500_DEG);
      mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
    }
    
    void loop() {
      sensors_event_t a, g, temp;
      mpu.getEvent(&a, &g, &temp);
      Serial.print("Accel X:"); Serial.print(a.acceleration.x);
      Serial.print(" Y:"); Serial.print(a.acceleration.y);
      Serial.print(" Z:"); Serial.print(a.acceleration.z);
      Serial.print(" | Gyro X:"); Serial.println(g.gyro.x);
      delay(100);
    }
    

    Limitação do MPU6050: drift. O giroscópio acumula erro ao longo do tempo — em 10 segundos, a orientação calculada já divergiu. A solução é fusão de sensores: use o filtro complementar (simples) ou filtro de Kalman (preciso) para combinar acelerômetro (estável no longo prazo) com giroscópio (preciso no curto prazo). A biblioteca MadgwickAHRS implementa isso em poucas linhas.

    Tabela Comparativa Geral

    Sensor Mede Protocolo Preço (R$) Dificuldade Ideal Para
    DHT22 Temp + Umid One-wire 15-25 ★☆☆☆☆ Clima interno, termostato
    BME280 Temp + Umid + Pressão I2C/SPI 20-40 ★★☆☆☆ Estação meteorológica
    HC-SR04 Distância (US) GPIO 8-15 ★☆☆☆☆ Robô seguidor, nível de tanque
    VL53L0X Distância (ToF) I2C 30-50 ★★☆☆☆ Robô mapeador, drone altitude
    LD2410 Presença (mmWave) UART 40-60 ★★★☆☆ Automação, segurança
    MPU6050 Acel + Giro I2C 15-25 ★★★☆☆ Drones, robótica, gestos

    Como Escolher o Sensor Certo

    A regra de ouro: defina o problema antes de escolher a ferramenta. Não compre sensor por “parece legal” — compre porque seu projeto precisa medir algo específico. Pergunte-se:

    1. O que eu preciso medir? Temperatura? Presença? Distância?
    2. Qual a precisão necessária? ±5°C é aceitável ou preciso de ±0.5°C?
    3. Qual o ambiente? Outdoor (chuva, sol)? Alta temperatura? Vibração?
    4. Qual o protocolo de comunicação? Seu microcontrolador tem I2C livre? GPIOs suficientes?
    5. Qual o consumo de energia? Vai funcionar a bateria? Por quanto tempo?

    Respondidas essas perguntas, a tabela acima vai te levar ao sensor certo. E se errar, não se preocupe — errar sensor é barato (todos custam menos de R$ 60) e você ganha experiência que tutorial nenhum substitui.

    Fontes e Referências

  • Automação Residencial com ESPHome: Sua Casa Inteligente Sem Nuvem Alheia

    Automação Residencial com ESPHome: Sua Casa Inteligente Sem Nuvem Alheia

    Quando eu digo “casa inteligente”, qual imagem aparece na sua cabeça? Se for um assistente de voz que manda seus hábitos pra um datacenter em Ohio, temos um problema. Automação de verdade não precisa de internet — precisa de sensores, atuadores e um cérebro que mora dentro da sua casa. O combo ESP32 + ESPHome + Home Assistant faz exatamente isso: você controla luzes, temperatura, portões e cortinas com zero dependência de servidor externo. Se a internet cair, sua casa continua inteligente.

    Automação Residencial com ESPHome: Sua Casa Inteligente Sem Nuvem Alheia
    Wikimedia Commons — Apache License 2.0, autor Unknown authorUnknown author

    A Filosofia da Casa Offline

    Em 2026, o mercado de dispositivos smart home é dominado por marcas como Tuya, Sonoff e Philips Hue — todas funcionando, em maior ou menor grau, dependentes de nuvens proprietárias. O problema não é ideológico — é prático: servidores caem, empresas são compradas (lembra do Revolv da Nest?), APIs são descontinuadas, e de repente sua lâmpada inteligente de R$ 200 virou peso de papel.

    O ESPHome é um projeto open-source que resolve isso de raiz. Criado por Otto Winter em 2018 e integrado ao ecossistema Nabu Casa (os mesmos do Home Assistant), ele compila firmware personalizado para ESP8266 e ESP32 a partir de um simples arquivo YAML. Você escreve o que quer que a placa faça — ler um sensor, acionar um relé, controlar um LED PWM — e o ESPHome gera o firmware C++ correspondente e faz upload via USB ou OTA. Sem programar em C. Sem IDE. Sem bibliotecas conflitantes.

    Primeiro Projeto: Termostato Inteligente

    Vamos construir um sensor de temperatura e umidade com DHT22 que reporta ao Home Assistant e aciona um ventilador via relé quando a temperatura passa de 28°C. Objetivo prático: seu quarto não virar uma sauna no verão.

    Materiais

    • ESP32 DevKit V1 (~R$ 30-50 — FilipeFlop ou Robocore)
    • DHT22 (AM2302) — sensor de temperatura e umidade digital, preciso, ~R$ 15-25
    • Módulo relé 5V de 1 canal — para acionar o ventilador, ~R$ 12-20
    • Fonte 5V com micro-USB ou regulador de tensão para alimentar o ESP32
    • Resistor 10kΩ — pull-up para o pino de dados do DHT22 (alguns módulos já vêm com ele)

    Montagem

    São três conexões básicas:

    1. DHT22: VCC (pino 1) → 3.3V do ESP32. GND (pino 4) → GND. DATA (pino 2) → GPIO 23 do ESP32. Com resistor 10kΩ entre DATA e 3.3V (pull-up).
    2. Relé: VCC → 5V do ESP32 (ou VIN se alimentado por USB). GND → GND. IN (sinal) → GPIO 26 do ESP32.
    3. Carga (ventilador): Fio fase do ventilador passa pelo borne NA (Normalmente Aberto) do relé. Quando o relé fecha, o circuito fecha e o ventilador liga.

    O Arquivo YAML do ESPHome

    Crie um arquivo termostato.yaml no diretório de configuração do ESPHome:

    esphome:
      name: termostato-quarto
      friendly_name: Termostato Quarto
    
    esp32:
      board: esp32dev
      framework:
        type: arduino
    
    # Configura WiFi
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
    # API para Home Assistant
    api:
      encryption:
        key: !secret api_key
    
    ota:
      - platform: esphome
        password: !secret ota_password
    
    # Sensor DHT22 no GPIO 23
    sensor:
      - platform: dht
        pin: GPIO23
        model: DHT22
        temperature:
          name: "Temperatura Quarto"
          id: temp_quarto
        humidity:
          name: "Umidade Quarto"
        update_interval: 60s
    
    # Relé no GPIO 26
    switch:
      - platform: gpio
        pin: GPIO26
        name: "Ventilador Quarto"
        id: ventilador
        restore_mode: ALWAYS_OFF
    
    # Automação local: liga ventilador se temp > 28°C
    climate:
      - platform: thermostat
        name: "Termostato Quarto"
        sensor: temp_quarto
        default_target_temperature_low: 24 °C
        default_target_temperature_high: 28 °C
        min_cooling_run_time: 120s
        min_idle_time: 120s
        cool_action:
          - switch.turn_on: ventilador
        idle_action:
          - switch.turn_off: ventilador
    

    O ESPHome agora oferece um thermostat climate controller nativo — você define um sensor de temperatura e um switch, e ele gerencia a histerese sozinho. Sem programar lógica de controle. O YAML é declarativo: você diz o que quer, o compilador resolve o como.

    Primeiro Upload

    1. Instale o ESPHome Dashboard (basta um pip install esphome no terminal).
    2. Conecte o ESP32 via USB. Rode esphome run termostato.yaml.
    3. Na primeira vez, o upload é feito por USB. Depois, as atualizações podem ser over-the-air (OTA) — sem cabo.
    4. O Home Assistant detecta o dispositivo automaticamente via mDNS e pergunta se você quer adicioná-lo.

    Por Que Isso É Poderoso

    O que acabamos de fazer é uma automação que roda localmente. O ESP32 toma decisões sozinho com base na temperatura que ele mesmo mede. O relé fecha sem consultar servidor nenhum. Se o Home Assistant estiver offline, o ESPHome continua funcionando — o climate controller é embarcado no firmware.

    Compare isso com uma lâmpada Tuya que precisa enviar o comando “liga” para um servidor em Shenzhen, que devolve a confirmação, que chega na lâmpada, que finalmente acende — com 3 segundos de delay em dia bom. Casa inteligente de verdade é casa que responde em milissegundos.

    Expandindo: Sensores e Atuadores Suportados

    O ESPHome tem suporte nativo para centenas de componentes. Alguns que uso no meu setup:

    • LD2410 (sensor de presença por radar mmWave): detecta se tem gente no ambiente mesmo parado — acende e apaga luz automaticamente.
    • BME280: temperatura, umidade e pressão atmosférica em um sensor só. Mais preciso que o DHT22 para temperatura.
    • Display OLED SSD1306: mostra temperatura e status na própria placa.
    • Servo motor: controla cortinas, persianas, ventiladores direcionais.
    • Neopixel (WS2812B): fita LED endereçável para iluminação ambiente.

    O ESPHome tem integração nativa com todos esses. É só adicionar o bloco YAML correspondente.

    A Realidade do Mercado Brasileiro

    No Brasil, automação residencial comercial (Lutron, Crestron) é inviável para 99% das pessoas. Um interruptor inteligente Zigbee da Philips hue custa R$ 300. Um ESP32 de R$ 30 + relé de R$ 15 + case impresso em 3D de R$ 5 faz a mesma coisa, com mais flexibilidade e sem depender de hub proprietário. O trade-off é que você precisa montar — e é exatamente isso que torna o maker diferente do consumidor.

    Comece pelo termostato. Depois adicione um sensor de presença no corredor. Depois um relé no portão. Depois um sensor de gás na cozinha. Aos poucos, sua casa vai ficando mais inteligente, um ESP32 de cada vez. E quando a internet cair, você nem vai notar.

    Fontes e Referências