#371IntermediárioIoT

ESP32 Estação IoT do Cômodo (Relé + DHT22)

Ligue a lâmpada pelo celular e veja a temperatura e a umidade do seu cômodo ao vivo, onde você estiver. Este projeto é o guia passo a passo do modelo IoT Estação do cômodo do app, com um ESP32, um módulo relé e um DHT22. Vá em Oficina › Dispositivos › Adicionar dispositivo e escolha Estação do cômodo; o Ohmi prepara o código com a sua chave de dispositivo. O código daqui é um exemplo: a chave e o Wi-Fi são valores de exemplo.

0.0(0)
1 concluído
ESP32 Estação IoT do Cômodo (Relé + DHT22)
Se você quer acender a luz sem sair do sofá ou ver a temperatura do quarto quando está fora de casa, este projeto é para você. A placa liga e desliga uma lâmpada com um relé, e um sensor de temperatura e umidade manda as leituras para o seu celular a cada poucos segundos, onde elas vão formando um gráfico. O app prepara o código para você; você liga os fios e envia para a placa. Você começa com um LED no lugar da lâmpada e aprende a ligação e a segurança antes de mexer na rede elétrica.
IoT · controle remotoSeu primeiro dispositivo é grátis

Controle este dispositivo pelo app

Conecte seu ESP32 ou Raspberry Pi Pico W ao Wi-Fi, ligue e desligue pelo celular e veja as leituras ao vivo. O Ohmi prepara o código; você só informa os dados do Wi-Fi e faz o upload.

Modelo no app: Estação do cômodo

  • Onde fica no app?Adicione um novo dispositivo pela aba Ferramentas ou em Oficina › Dispositivos e escolha este modelo.
  • Biblioteca ArduinoAbra o Gerenciador de Bibliotecas no Arduino IDE, procure BlueGraysIoT e instale.
Baixe o app grátis

O plano grátis inclui 1 dispositivo, 1 gráfico e 24 horas de histórico. Com o Premium, você tem mais dispositivos, mais gráficos e histórico mais longo.

Esquema do circuito

ESP32 Estação IoT do Cômodo (Relé + DHT22) - Circuit

Código-fonte

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   ESP32 Estação IoT do Cômodo (Relé + DHT22)
4// ─────────────────────────────────────────
5// O modelo IoT "Estação do cômodo" do app BlueGrays: você liga e desliga
6// uma lâmpada com um relé pelo celular, e o DHT22 manda a temperatura e a
7// umidade do cômodo para o app a cada 2 segundos. O Ohmi prepara o código
8// de verdade no app com a sua própria chave de dispositivo (Oficina ›
9// Dispositivos › Adicionar dispositivo); o código daqui é um exemplo, a
10// chave do dispositivo e os dados do Wi-Fi são valores de exemplo.
11// Gerenciador de bibliotecas: BlueGraysIoT (com as dependências). A placa
12// só se conecta a redes Wi-Fi de 2,4 GHz. O relé aciona com LOW. Ligue uma
13// lâmpada de 127/220 V só com alguém experiente; teste primeiro com um
14// LED.
15//
16// Pinos:
17//   GPIO26 -> Módulo relé IN
18//   5V, GND -> Módulo relé VCC, GND
19//   Relé COM -> 5V, NO -> 220 ohm -> ânodo do LED, cátodo do LED -> GND
20//   GPIO4 -> DHT22 OUT (dados)
21//   3V3, GND -> DHT22 VCC, GND
22//   Pico W: relé IN GP15, DHT22 OUT GP16
23
24/*
25 * Estação do cômodo · BlueGrays IoT
26 * BlueGrays · bluegrays.com
27 * Não compartilhe este código: ele contém a chave do dispositivo e a senha do Wi-Fi.
28 */
29
30#include <BlueGraysIoT.h>
31#include <DHT.h>
32
33const char *DEVICE_KEY = "SUA_CHAVE_DO_DISPOSITIVO";
34const char *WIFI_NAME = "SUA_REDE_WIFI";
35const char *WIFI_PASSWORD = "SUA_SENHA_WIFI";
36
37BlueGraysIoT bg(DEVICE_KEY);
38
39const int RELAY_PIN = 26;
40const bool RELAY_ACTIVE_LOW = true;  // a maioria dos módulos de relé liga com LOW
41void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
42DHT dht(4, DHT22);
43unsigned long lastReadMs = 0;
44
45void setup() {
46  Serial.begin(115200);
47  pinMode(RELAY_PIN, OUTPUT);
48  setRelay(false);
49  bg.onSwitch("lamba", setRelay);
50  dht.begin();
51  bg.setDeadband("sicaklik", 0.1);
52  bg.setDeadband("nem", 1.0);
53  bg.setDebug(Serial);
54  bg.setLanguage(BG_LANG_EN);
55  bg.begin(WIFI_NAME, WIFI_PASSWORD);
56}
57
58void loop() {
59  bg.loop();  // evite delay() longos aqui
60  if (millis() - lastReadMs >= 2000) {
61    lastReadMs = millis();
62    bg.send("sicaklik", dht.readTemperature());
63    bg.send("nem", dht.readHumidity());
64  }
65}
66

Perguntas frequentes

Posso enviar o código desta página direto para a placa?

Pode, mas ela não vai se conectar: a chave do dispositivo e os dados do Wi-Fi são valores de exemplo. No app, vá em Oficina › Dispositivos › Adicionar dispositivo e escolha Estação do cômodo; o Ohmi prepara o código com a sua chave, o nome da sua rede e a sua senha. Copie esse código e envie para a placa. Depois você vê o código completo em Dispositivo › Código e chave.

Funciona também com uma Pico W?

Funciona. Ao adicionar o dispositivo, escolha Pico W como placa; o código continua igual, só os pinos mudam: o relé no GP15 e o DHT22 no GP16. Na Arduino IDE, instale o pacote "pico" pelo Gerenciador de placas. O circuito e a foto desta página foram feitos com um ESP32.

Posso ligar uma lâmpada de verdade em 127/220 V?

A rede elétrica de 127/220 V pode matar e causar incêndio. Teste primeiro com um LED, como nesta página. Se for passar para uma lâmpada de verdade, faça isso com alguém que entenda de eletricidade: tomada desligada, só a fase passa pelos terminais COM e NO do relé, nenhum fio desencapado à mostra, o circuito numa caixa fechada e a potência da lâmpada abaixo do limite impresso no módulo.

Minha senha do Wi-Fi e a chave do dispositivo estão seguras?

A senha do Wi-Fi fica no seu celular e nunca é enviada ao nosso servidor; ela entra no código ali mesmo, no celular. A chave do dispositivo só viaja no cabeçalho da conexão segura e nunca aparece no Monitor Serial. Mesmo assim, as duas estão dentro do código, então não compartilhe o código que você copia do app. Se alguém viu sua chave, gere outra com Renovar chave e envie o código novo.