Tag: Iot

  • Manutenção Preditiva com TinyML: Quando o Motor Avisa Antes de Quebrar

    Manutenção Preditiva com TinyML: Quando o Motor Avisa Antes de Quebrar

    Todo motor elétrico conta uma história antes de quebrar. Um rolamento começa a vibrar numa frequência específica. Uma correia desalinhada produz harmônicos diferentes. Um desbalanceamento crescente aparece como um pico espectral que aumenta dia após dia. O problema é que nós, humanos, só percebemos quando o barulho fica alto demais — aí já é tarde, a peça já foi pro sacrifício. E se um microcontrolador de R$ 30 pudesse ouvir essa história e te avisar semanas antes da falha?

    Isso é manutenção preditiva. E graças ao TinyML, você não precisa de um PhD em processamento de sinais para implementá-la.

    TinyML: IA Que Cabe no Seu Bolso

    TinyML (Tiny Machine Learning) é a interseção entre machine learning e sistemas embarcados: redes neurais otimizadas para rodar em microcontroladores com kilobytes de RAM e megahertz de clock. O termo foi cunhado por Pete Warden (Google) e Matthew Stewart (Harvard) por volta de 2019, mas o campo explodiu com o lançamento do TensorFlow Lite for Microcontrollers em 2020 e, mais importante para makers, do Edge Impulse.

    O Edge Impulse é uma plataforma que abstrai todo o pipeline de ML embarcado: coleta de dados do sensor → pré-processamento digital de sinais (DSP) → treinamento da rede neural → exportação do modelo como biblioteca C++ → deploy no microcontrolador. Você não escreve uma linha de rede neural. Conecta o sensor, coleta amostras, clica em “train” e exporta o modelo compilado.

    Como Funciona a Detecção de Anomalias por Vibração

    Um motor saudável vibra de forma previsível. Sua assinatura espectral (distribuição de energia por frequência) é estável. Quando algo começa a dar errado — um rolamento desgastado, um eixo desalinhado, uma pá quebrada — essa assinatura muda.

    A abordagem clássica seria FFT (Fast Fourier Transform) + thresholds manuais. Funciona para casos simples, mas falha quando as anomalias são sutis ou quando múltiplos modos de falha coexistem. A abordagem TinyML é: treinar uma rede neural com exemplos de vibração “normal” e “anormal”, e deixar o modelo aprender sozinho quais padrões espectrais indicam problema.

    Mão na Massa: Detector de Vibração Anômala

    Materiais

    • ESP32 DevKit (~R$ 30-50)
    • MPU6050 (acelerômetro + giroscópio) (~R$ 15-25)
    • Motor DC ou ventilador para simular a máquina monitorada
    • Fita dupla-face ou suporte para fixar o MPU6050 no motor

    Passo 1: Criar Projeto no Edge Impulse

    1. Crie uma conta gratuita em edgeimpulse.com.
    2. Crie um novo projeto → “Manutenção Preditiva Motor”.
    3. Conecte seu dispositivo: instale a CLI do Edge Impulse (npm install -g edge-impulse-cli) e rode edge-impulse-data-forwarder no computador conectado ao ESP32 via serial.
    4. O Data Forwarder transmite os dados do sensor via serial → WebSocket → Edge Impulse cloud. A coleta é feita no navegador, mas o sensor está no ESP32.

    Passo 2: Firmware do ESP32 para Coleta de Dados

    Carregue este código no ESP32 usando Arduino IDE:

    #include <Wire.h>
    #include <Adafruit_MPU6050.h>
    #include <Adafruit_Sensor.h>
    
    Adafruit_MPU6050 mpu;
    
    void setup() {
      Serial.begin(115200);
      while (!Serial);
      
      if (!mpu.begin()) {
        Serial.println("Erro: MPU6050 nao encontrado");
        while (1) delay(10);
      }
      
      mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
      mpu.setFilterBandwidth(MPU6050_BAND_260_HZ);
      mpu.setGyroRange(MPU6050_RANGE_500_DEG);
      
      Serial.println("AccelX,AccelY,AccelZ,GyroX,GyroY,GyroZ");
    }
    
    void loop() {
      sensors_event_t a, g, temp;
      mpu.getEvent(&a, &g, &temp);
      
      // Imprime em CSV para o Edge Impulse Data Forwarder
      Serial.print(a.acceleration.x); Serial.print(",");
      Serial.print(a.acceleration.y); Serial.print(",");
      Serial.print(a.acceleration.z); Serial.print(",");
      Serial.print(g.gyro.x); Serial.print(",");
      Serial.print(g.gyro.y); Serial.print(",");
      Serial.println(g.gyro.z);
      
      delay(10); // ~100 Hz de amostragem
    }
    

    Passo 3: Coletar Dados de Treinamento

    No Edge Impulse, crie duas classes de dados:

    • Normal: grave 5 minutos de vibração com o motor funcionando normalmente.
    • Anomalia: cole um peso pequeno (moeda ou parafuso) na pá do ventilador para criar desbalanceamento. Grave mais 5 minutos.

    Cada amostra deve ter ~2 segundos de duração (200 amostras a 100 Hz). O Edge Impulse vai gerar automaticamente dezenas de amostras a partir das gravações longas usando janelamento.

    Passo 4: Criar o Pipeline de Processamento

    O bloco de processamento recomendado para vibração é o Spectral Analysis: ele calcula a FFT dos sinais de aceleração, extraindo as magnitudes de frequência como features. Isso transforma 200 amostras temporais em ~33 bins de frequência — uma representação muito mais informativa para a rede neural.

    Configure: eixos = AccelX, AccelY, AccelZ. FFT length = 64. Com essa configuração, cada janela de 2 segundos produz 33 features espectrais × 3 eixos = 99 features.

    Passo 5: Treinar a Rede Neural

    No Edge Impulse, vá para “Impulse Design” → “Classifier” e use a arquitetura padrão (Dense neural network com 2 camadas: 20 neurons + 10 neurons). Clique em “Start Training”. Em 30 segundos, o modelo treina na nuvem e você vê a matriz de confusão.

    Resultado típico para este experimento: >95% de acurácia. O modelo aprende que “Normal” tem baixa amplitude em todas as frequências, enquanto “Anomalia” tem picos espectrais característicos do desbalanceamento (tipicamente na frequência de rotação do motor).

    Passo 6: Deploy no ESP32

    Exporte o modelo como “Arduino library”. Baixe o ZIP, instale na Arduino IDE (Sketch → Include Library → Add .ZIP Library). Modifique o código do ESP32 para executar inferência contínua:

    #include <seu_projeto_inferencing.h>  // Biblioteca gerada pelo Edge Impulse
    
    void loop() {
      // Coleta 200 amostras do MPU6050 (~2s a 100 Hz)
      float buffer[EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE] = {0};
      for (int i = 0; i < EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE; i += 3) {
        sensors_event_t a, g, temp;
        mpu.getEvent(&a, &g, &temp);
        buffer[i] = a.acceleration.x;
        buffer[i+1] = a.acceleration.y;
        buffer[i+2] = a.acceleration.z;
        delay(10);
      }
    
      // Converte sinal bruto para features (igual ao bloco de processamento)
      signal_t signal;
      numpy::signal_from_buffer(buffer, EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, &signal);
      
      // Executa a inferência
      ei_impulse_result_t result;
      EI_IMPULSE_ERROR err = run_classifier(&signal, &result, false);
      
      if (err == EI_IMPULSE_OK) {
        float normal_score = result.classification[0].value;
        float anomaly_score = result.classification[1].value;
        
        Serial.print("Normal: "); Serial.print(normal_score);
        Serial.print(" | Anomalia: "); Serial.println(anomaly_score);
        
        if (anomaly_score > 0.8) {
          Serial.println("⚠️  ALERTA: Vibração anômala detectada!");
          // Aqui você pode acionar relé, enviar MQTT, notificar Telegram
        }
      }
    }
    

    Seu ESP32 agora é um detector de falhas em tempo real. A inferência roda no microcontrolador — zero latência de rede, zero dependência de nuvem. Apenas o sensor, o modelo compilado e o problema sendo resolvido.

    Onde Isso Funciona de Verdade

    Manutenção preditiva com TinyML não é só demonstração de laboratório. Empresas já usam isso em escala:

    • Bombas d’água: uma fazenda nos EUA monitora 200 bombas de irrigação com ESP32 + acelerômetros, prevendo falhas com 2 semanas de antecedência. Economia: US$ 120 mil/ano em paradas não programadas.
    • Ventiladores industriais: fábrica na Índia usa TinyML para detectar desbalanceamento em ventiladores de teto de grande porte, reduzindo consumo de energia e risco de acidentes.
    • Máquinas CNC: makers com impressoras 3D de grande porte monitoram a vibração dos motores de passo para detectar quando as correias estão frouxas ou os rolamentos desgastados.
    • Elevadores: sensores TinyML detectam padrões de vibração que precedem falhas em cabos e polias — com alerta enviado por MQTT ao painel de manutenção.

    Por Que Isso Importa para o Maker

    Manutenção preditiva democratizada significa que pequenas oficinas, fazendas familiares, makerspaces e startups podem competir com a indústria pesada em confiabilidade. Você não precisa de um contrato de US$ 50 mil com fornecedor de sensores industriais — precisa de um ESP32, um MPU6050 e uma conta gratuita no Edge Impulse.

    O sensor que detecta vibração anômala hoje é o mesmo hardware que amanhã monitora sua impressora 3D, depois sua máquina de lavar, depois o compressor do ar-condicionado. O modelo treinado é específico para cada máquina, mas o processo é o mesmo. E quando sua lavadora te avisa que a correia está frouxa antes de ela arrebentar num sábado à tarde, você vai entender o valor de ouvir as máquinas.

    Fontes e Referências

  • Energia Solar para Makers: Do Painel ao Projeto Alimentado

    Energia Solar para Makers: Do Painel ao Projeto Alimentado

    Existe uma cena que define o que significa ser maker em 2026: você está no meio de um pasto, sem tomada num raio de 500 metros, e seu dispositivo está ligado, medindo, transmitindo. A energia não veio da concessionária — veio de uma placa de silício de R$ 80 apontada para o sol. Energia solar não é só sobre sustentabilidade — é sobre liberdade de localização. Qualquer projeto que você imaginar pode existir em qualquer lugar, desde que você saiba dimensionar um sistema solar.

    Os Três Componentes de Todo Sistema Solar Maker

    Antes de comprar qualquer coisa, entenda o fluxo: o painel solar gera eletricidade (DC) → o controlador de carga regula a tensão → a bateria armazena → o dispositivo consome. Três componentes, mas cada um tem armadilhas que podem arruinar seu projeto.

    1. Painel Solar: Nem Todo Watt É Igual

    Painéis solares têm uma especificação que parece simples — “10W, 12V” — e uma realidade mais complexa. A potência nominal (10W) é medida em condições ideais de laboratório: irradiância de 1000 W/m², temperatura de célula de 25°C, espectro AM 1.5. Na prática, você vai obter 60-80% disso em dia bom, e 10-20% em dia nublado.

    Para projetos makers, três categorias importam:

    • Mini-painéis de 1W a 5W (5-12V): para sensores remotos, ESP32 em deep sleep, projetos de baixíssimo consumo. Exemplo: 5W/12V alimenta confortavelmente um ESP32 que transmite a cada 15 minutos. Preço: R$ 15-40.
    • Painéis de 10W a 50W (12-18V): para projetos contínuos: estação meteorológica com display, câmera de segurança solar, bomba d’água para irrigação. Preço: R$ 60-200.
    • Painéis de 100W+ (18-24V): para alimentar Raspberry Pi 24/7, notebooks em campo, sistemas maiores. Preço: R$ 300-600.

    Onde comprar no Brasil: Mercado Livre tem dezenas de vendedores com mini-painéis. Para projetos sérios, lojas especializadas como NeoSolar e Minha Casa Solar vendem equipamento homologado com garantia.

    2. Controlador de Carga: PWM vs. MPPT

    O controlador de carga senta entre o painel e a bateria. Ele impede sobrecarga (que destrói baterias) e descarga profunda (que também destrói baterias). Existem dois tipos:

    • PWM (Pulse Width Modulation): barato (R$ 20-50), simples, adequado para painéis pequenos (até 50W). A tensão do painel precisa ser próxima à da bateria (ex: painel 12V, bateria 12V). Eficiência: ~70-80%. Perde os volts excedentes como calor.
    • MPPT (Maximum Power Point Tracking): mais caro (R$ 80-300), mais eficiente (~95%), converte o excedente de tensão em mais corrente. Pode usar painel de 18V com bateria de 12V sem desperdício — o MPPT transforma a tensão extra em corrente extra. Para sistemas acima de 10W, MPPT compensa o investimento.

    Para makers, o controlador MPPT mais recomendado é a linha CN3791 (chip único, módulos prontos no AliExpress por ~R$ 30-50) ou, para correntes maiores, o Renogy Wanderer 10A (~US$ 30).

    3. Bateria: LiFePO4 É o Novo Padrão

    Durante décadas, baterias de chumbo-ácido seladas (SLA) dominaram projetos solares — baratas, tolerantes a abuso, mas pesadas, volumosas e com vida útil de 300-500 ciclos. Em 2026, a tecnologia que recomendo para makers é LiFePO4 (fosfato de ferro-lítio):

    • Segurança: diferente das LiPo/Li-Ion (que pegam fogo se perfuradas ou sobrecarregadas), LiFePO4 é intrinsecamente segura — não sofre thermal runaway.
    • Vida útil: 2000-5000 ciclos (vs. 300-500 da SLA). Uma LiFePO4 de 12V/6Ah (~R$ 120-180) pode alimentar um ESP32 por 10 anos com ciclos diários.
    • Tensão estável: LiFePO4 mantém 12.8V nominais com curva de descarga plana — o dispositivo recebe tensão constante até quase o fim da carga.
    • Descarga profunda: pode descarregar até 80-90% sem degradação significativa (SLA sofre abaixo de 50%).

    Marcas confiáveis: LiTime, Battle Born (EUA), Ecoworthy ou células avulsas da EVE/Lishen. No Brasil, busque no Mercado Livre vendedores com boa reputação — cuidado com células falsificadas de capacidade inflada.

    Mão na Massa: Estação Meteorológica Solar

    Vamos dimensionar um sistema solar para uma estação meteorológica baseada em ESP32 com BME280 (temperatura, umidade, pressão) que transmite dados via WiFi a cada 10 minutos.

    Cálculo de Consumo

    Consumo do ESP32:
      Modo normal com WiFi tx: ~200 mA @ 3.3V por ~5 segundos a cada 600s
      Deep sleep entre transmissões: ~20 µA @ 3.3V
      Corrente média: (200 mA × 5s + 0.02 mA × 595s) / 600s ≈ 1.68 mA
      Potência média a 3.3V: 1.68 mA × 3.3V = 5.5 mW
    
    Consumo com regulador (eficiência 85%): 5.5 / 0.85 = 6.5 mW
    Consumo diário: 6.5 mW × 24h = 156 mWh = 0.156 Wh por dia
    

    Com esse consumo irrisório, o dimensionamento solar é dominado não pelo consumo, mas pela necessidade de sobreviver a dias nublados consecutivos.

    Dimensionamento

    Painel: 5W / 12V (R$ 35)
    Bateria: LiFePO4 12.8V 3Ah (R$ 90)
    Controlador: CN3791 MPPT (R$ 40)
    
    Autonomia sem sol: 3Ah × 12.8V = 38.4 Wh / 0.156 Wh/dia ≈ 246 dias
      → Ridículo. Sobra bateria.
    
    Recarga: 5W × 4h sol pleno × 0.7 (eficiência real) = 14 Wh/dia
      → Recarrega a bateria em 38.4 / 14 ≈ 3 dias de sol pleno
      → Margem de segurança excelente para dias nublados
    

    Este sistema vai funcionar ininterruptamente por anos. Com um painel de 5W, a autonomia é tão folgada que dá pra adicionar um display ePaper de 2.9″ que atualiza a cada 10 minutos (consumo médio adicional de ~5 mA) e ainda sobra energia.

    Montagem

    1. Painel → Controlador CN3791 → Bateria LiFePO4. O controlador gerencia a carga automaticamente.
    2. Bateria → Regulador Buck 3.3V → ESP32. Um módulo buck step-down LM2596 ajustado para 3.3V converte os 12.8V da bateria para os 3.3V do ESP32 com eficiência de ~85%.
    3. Proteção: coloque um diodo Schottky entre painel e controlador para evitar corrente reversa à noite (alguns controladores já incluem).
    4. Abrigo: a eletrônica dentro de caixa estanque IP65, painel exposto ao norte (hemisfério sul) com inclinação igual à latitude local.

    A Filosofia do Off-Grid

    Energia solar para makers não é sobre economizar na conta de luz — é sobre poder colocar seu projeto em qualquer lugar. Uma estação meteorológica no topo do morro. Um sensor de nível de rio na fazenda. Uma câmera de vida selvagem na trilha. Um repetidor LoRa no ponto mais alto da propriedade. Lugares onde não chega fio — mas chega sol. E agora chega seu projeto também.

    Fontes e Referências

  • ESP32: O Arduino Que Aprendeu a Falar

    ESP32: O Arduino Que Aprendeu a Falar

    O Arduino Uno é um monge silencioso: faz o que você manda, rápido e sem distrações. O ESP32 é o amigo que acabou de descobrir a internet e quer te mostrar tudo ao mesmo tempo. Dual-core, WiFi, Bluetooth, 240 MHz, 520 KB de SRAM — tudo isso por menos de R$ 30 no Mercado Livre. Quando você conecta um ESP32 pela primeira vez, a pergunta deixa de ser “o que eu posso fazer com um microcontrolador” e passa a ser “o que eu não posso”.

    ESP32: O Arduino Que Aprendeu a Falar
    Wikimedia Commons — CC BY-SA 4.0, autor Brian Krent

    A História da Espressif

    A Espressif Systems foi fundada em 2008 em Xangai por Teo Swee Ann, um engenheiro de Cingapura que estudou na Universidade de Tsinghua. A empresa inicialmente focava em chips de rádio para aplicações de WiFi de baixo consumo. Em 2014, lançaram o ESP8266 — um módulo WiFi barato, originalmente pensado como ponte serial-para-WiFi para outros microcontroladores. Mas a comunidade hacker percebeu algo que a Espressif não tinha planejado: o ESP8266 tinha um processador bom o suficiente para rodar código próprio. Em meses, surgiram firmwares alternativos (NodeMCU, MicroPython) e a placa virou um microcontrolador independente com WiFi — por US$ 3.

    O ESP32 chegou em 2016 como a resposta madura a essa descoberta acidental: processador dual-core Tensilica Xtensa LX6, WiFi 802.11 b/g/n, Bluetooth 4.2 + BLE, 34 GPIOs, touch sensors, DAC, CAN bus, Ethernet MAC. A Espressif entendeu o recado: o mercado não queria um módulo WiFi auxiliar — queria um cérebro conectado.

    ESP32 vs. Arduino Uno vs. Raspberry Pi Pico

    Vamos ser diretos — números na mesa:

    Especificação Arduino Uno R3 ESP32 (WROOM) Raspberry Pi Pico (RP2040)
    Processador ATmega328P 8-bit Xtensa LX6 32-bit dual-core RP2040 ARM Cortex-M0+ dual-core
    Clock 16 MHz 240 MHz 133 MHz
    RAM 2 KB SRAM 520 KB SRAM 264 KB SRAM
    Flash 32 KB 4 MB (externo) 2 MB (externo)
    WiFi Não Sim Não (precisa do Pi Pico W)
    Bluetooth Não Sim Não
    GPIOs 14 (6 PWM) 34 (16 PWM) 26 (16 PWM)
    Preço (BR) ~R$ 70-120 ~R$ 25-50 ~R$ 20-40

    O ESP32 tem um hardware muito superior ao Arduino Uno pelo mesmo preço (ou menos). A diferença é que o ecossistema do Arduino é mais maduro para iniciantes: bibliotecas mais testadas, mais tutoriais, menos armadilhas. O ESP32 exige que você preste atenção em detalhes como nível lógico de 3.3V (conectar 5V nos GPIOs queima a placa), partição de memória e gerenciamento de energia. Mas a recompensa é uma placa que literalmente conversa com a internet.

    Primeiro Projeto Além do Blink: Conectar ao WiFi

    Se o ritual do Arduino é piscar um LED, o ritual do ESP32 é conectar ao WiFi. Vamos fazer isso em três passos.

    1. Preparar o Ambiente

    Na Arduino IDE, instale o suporte a ESP32: vá em Arquivo > Preferências > URLs adicionais de placas e cole:

    https://espressif.github.io/arduino-esp32/package_esp32_index.json

    Depois em Ferramentas > Placa > Gerenciador de Placas, busque por “ESP32” e instale o pacote “esp32 by Espressif Systems”. Selecione a placa “ESP32 Dev Module” e a porta COM correta.

    2. O Código

    #include <WiFi.h>
    
    const char* ssid = "NOME_DA_SUA_REDE";
    const char* password = "SENHA_DA_REDE";
    
    void setup() {
      Serial.begin(115200);
      WiFi.begin(ssid, password);
      
      Serial.print("Conectando");
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      
      Serial.println();
      Serial.print("Conectado! IP: ");
      Serial.println(WiFi.localIP());
    }
    
    void loop() {
      // Seu código principal aqui
    }
    

    3. O Que Fazer Depois

    Com WiFi, o ESP32 pode: enviar dados de sensores para a nuvem (MQTT, HTTP), receber comandos remotos, servir uma página web no seu navegador, acionar relés pelo celular, postar temperatura no ThingSpeak, criar um dashboard no Home Assistant. O limite não é mais o hardware — é sua imaginação.

    Dica Especial: ESP32-CAM

    Se você quer um projeto que impressiona visualmente, compre uma ESP32-CAM (R$ 30-50 no Mercado Livre). É um ESP32 com slot para câmera OV2640 de 2MP, slot para cartão microSD e LED de flash. Com ela você faz: câmera de segurança WiFi, timelapse, reconhecimento facial básico (com a biblioteca ESP-WHO da Espressif), fotografia remota. Só precisa de um programador FTDI externo para o primeiro upload — depois, OTA (Over-The-Air) resolve.

    No meu setup, tenho uma ESP32-CAM apontada para a impressora 3D transmitindo timelapse para um servidor local. Custo total: R$ 45 e uma tarde de sábado. Isso era projeto de empresa em 2015.

    O Futuro: ESP32-S3 e Além

    A Espressif não parou no ESP32 original. A família cresceu: ESP32-S2 (USB nativo, sem Bluetooth), ESP32-S3 (AI acceleration, USB OTG, mais GPIOs), ESP32-C3 (RISC-V, WiFi 6, Bluetooth 5), ESP32-C6 (WiFi 6 + Zigbee + Thread — Matter ready). Cada novo chip resolve uma lacuna diferente. Para começar, o ESP32 WROOM clássico ainda é o rei: barato, maduro, suportado por tudo.

    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