Tutorial ESP32 28/55 - Sensor de Temperatura DHT11 com LCD | Kit de Aprendizado IoT ESP32 da SunFounder

Tutorial ESP32 28/55 - Sensor de Temperatura DHT11 com LCD | Kit de Aprendizado IoT ESP32 da SunFounder

Neste tutorial, exploraremos como interligar o sensor de temperatura e umidade DHT11 com o microcontrolador ESP32. Usando esta configuração, mediremos a temperatura e a umidade ambiente, exibindo os resultados tanto no monitor serial quanto em uma tela LCD. Além disso, implementaremos um buzzer que é ativado quando a temperatura excede um determinado limite.

ESP32-28_sensor de temperatura DHT-principal

Este projeto não apenas demonstra o uso do sensor DHT11, mas também destaca a versatilidade do ESP32, que inclui capacidades de Wi-Fi e Bluetooth integradas. Ao final deste tutorial, você terá uma configuração funcional que monitora continuamente as condições ambientais e fornece feedback em tempo real.

Para um guia visual, confira o vídeo que acompanha este tutorial (no vídeo às 00:00). Vamos mergulhar!

Hardware Explicado

Os principais componentes usados neste projeto são o microcontrolador ESP32, o sensor DHT11 e um display LCD. O ESP32 servirá como o cérebro da operação, processando dados do sensor DHT11 e controlando a saída do LCD.

O sensor DHT11 mede a umidade e a temperatura, fornecendo leituras através de uma única linha de dados. Ele requer uma fonte de alimentação de 3,3V a 5,5V e tem um baixo consumo de corrente, tornando-o adequado para aplicações alimentadas por bateria. O LCD exibirá os valores de temperatura e umidade em tempo real.

Detalhes da Ficha Técnica

Fabricante POMAR
Número da peça DHT11
Tensão de lógica/IO 3,3 - 5,5 V
Tensão de alimentação 3,3 V
Corrente de saída (por canal) 0,5 mA típico
Corrente de pico (por canal) 2,5 mA máx.
Orientação sobre frequência PWM N/A
Limiares de lógica de entrada 0,3 VCC (baixo), 0,7 VCC (alto)
Queda de tensão / RDS(on)saturação Não aplicável
Limites térmicos 0°C a 60°C
Pacote DIP-4
Notas / variantes Resolução: 1°C / 1% UR

  • Use um resistor pull-up (5 kΩ recomendado) na linha de dados.
  • Mantenha os fios do sensor curtos (menos de 20 m) para garantir leituras precisas.
  • Alimente o DHT11 com 3,3V para um desempenho ideal.
  • O período de amostragem não deve ser inferior a 1 segundo.
  • Verifique as conexões da fiação se as leituras falharem (por exemplo, não conectado, pino incorreto).

Instruções de Fiação

ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer

Para conectar o sensor DHT11 ao ESP32, comece ligando o pino VCC do DHT11 (o pino mais à esquerda) à saída de 3,3V do ESP32. Em seguida, conecte o pino de terra (o quarto pino) a um pino de terra (GND) no ESP32. O pino de dados (o segundo pino) deve ser conectado ao pino GPIO 14 no ESP32.

Para o LCD, conecte o pino VCC à saída de 5V do ESP32. O pino de terra deve ser conectado a um pino de terra no ESP32. Os pinos SDA e SCL do LCD devem ser conectados aos pinos GPIO 21 e 22, respectivamente. Certifique-se de que todas as conexões estejam seguras para evitar problemas ao ler os dados.

Exemplos de Código e Passo a Passo

Na primeira parte do código, inicializamos o sensor DHT e definimos o número do pino com#define DHTPIN 14Este identificador nos permite referenciar facilmente o pino conectado à linha de dados do DHT11 ao longo do código.

#include "DHT.h"

#define DHTPIN 14  // Set the pin connected to the DHT11 data pin
#define DHTTYPE DHT11 // DHT 11 
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

No textosetup()função, inicializamos a comunicação serial para depuração e começamos o sensor DHT. O loop principal inclui um atraso de 2 segundos para garantir que não sobrecarreguemos o sensor com solicitações.

Em seguida, lemos os valores de umidade e temperatura usandofloat humidity = dht.readHumidity();efloat temperature = dht.readTemperature();Esses identificadores armazenam os valores medidos para uso posterior.

void loop() {
  delay(2000);
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
}

Finalmente, verificamos se há erros de leitura e imprimimos os valores no monitor serial usandoSerial.print(). Isso nos permite observar as leituras em tempo real.

if (isnan(humidity) || isnan(temperature)) {
  Serial.println("Failed to read from DHT sensor!");
  return;
}
Serial.print("Humidity: "); 
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: "); 
Serial.print(temperature);
Serial.println(" *C");

No texto do código LCD, inicializamos o LCD e exibimos a temperatura e a umidade na tela usando olcd.print()função. Isso fornece uma representação visual dos dados coletados pelo sensor DHT11.

Demonstração / O que Esperar

Uma vez que tudo esteja conectado corretamente e o código esteja carregado no ESP32, você deve ver as leituras de temperatura e umidade exibidas no monitor serial e na tela LCD. Se a temperatura exceder 30°C, o buzzer será ativado, fornecendo um alerta sonoro.

Tenha cuidado com conexões invertidas e certifique-se de que o sensor não esteja exposto a condições extremas, pois isso pode afetar as leituras. Você pode precisar ajustar o limite para o alarme dependendo das suas necessidades (no vídeo às 15:30).

Marcadores de Vídeo

  • 00:00 Início
  • 1:57 Introdução ao DHT11
  • 6:18 Ligação do DHT11 com o ESP32
  • 7:67 Código Arduino explicado
  • 11:49 Selecionando a placa ESP32 e a porta COM no Arduino IDE
  • 13:30 Demonstração do projeto
  • 15:32 Obtendo Fahrenheit
  • 16:04 exibindo temperatura no LCD usando ESP32
  • 17:20 DHT11 e LCD com código ESP32
  • 19:49 Demonstração do DHT11 LCD com ESP32
  • 21:33 Tomando medidas sobre o valor da Temperatura

Imagens

ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer
DHT11_with_buzzer
ESP32-28_dht_temperature-sensor-main
ESP32-28_dht_temperature-sensor-main
828-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor
Idioma: C++
829-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor with LCD
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Arquivo Fritzing

Manual do Usuário