ESP8266 - DHT11

Este tutorial ensina você a usar o ESP8266 para ler a temperatura e a umidade do sensor DHT11. Em detalhes, vamos aprender:

Sobre o Sensor de Temperatura e Umidade DHT11

Pinagem do Sensor de Temperatura e Umidade

O DHT11 encontrado no mercado vem em duas formas: sensor e módulo.

O sensor DHT11 tem quatro pinos:

  • Pino GND: deve ser conectado ao GND (0V)
  • Pino VCC: deve ser conectado ao VCC (5V)
  • Pino DATA: usado para a comunicação entre o sensor e o ESP8266
  • Pino NC: Não conectado, este pino pode ser ignorado
Pinagem do sensor de temperatura e umidade DHT11

O módulo DHT11 tem três pinos:

  • Pino GND (-): deve ser conectado ao GND (0V)
  • Pino VCC (+): deve ser conectado ao VCC (5V)
  • Pino OUT: usado para a comunicação entre o sensor e o ESP8266

※ Nota:

A disposição dos pinos em um módulo pode ser diferente dependendo do fabricante. É IMPRESCINDÍVEL usar como referência as indicações impressas no módulo. Certifique-se de olhar com atenção!

Diagrama de Ligação

ESP8266 - Ligação do Sensor DHT11

Um resistor com valor entre 5K e 10K Ohms é necessário para manter a linha de dados em nível alto, permitindo assim a comunicação entre o sensor e o ESP8266.

Diagrama de ligação do sensor de temperatura e umidade DHT11 com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

ESP8266 - Ligação do Módulo DHT11

A maioria dos módulos de sensor DHT11 tem um resistor integrado, eliminando a necessidade de ligações adicionais ou de solda.

Diagrama de ligação do módulo de temperatura e umidade DHT11 com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Como Programar o Sensor de Temperatura DHT11

  • Para começar, a biblioteca deve ser incluída:
#include "DHT.h"
  • Especifique o pino do ESP8266 que está conectado ao sensor DHT11.
#define DHT_PIN D7
  • Especifique o tipo de sensor: DHT11
#define DHT_TYPE DHT11
  • Crie um objeto DHT.
DHT dht11(DHT_PIN, DHT_TYPE);
  • Inicie a configuração do sensor:
dht11.begin();
  • Leia o valor da umidade.
float humi = dht11.readHumidity();
  • Leia a temperatura em Celsius.
float temperature_C = dht11.readTemperature();
  • Leia a temperatura em Fahrenheit.
float temperature_F = dht11.readTemperature(true);

Código ESP8266 para o DHT11

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-dht11 */ #include <DHT.h> #define DHT_SENSOR_PIN D7 // The ESP8266 pin D7 connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); dht_sensor.begin(); // initialize the DHT sensor } void loop() { // read humidity float humi = dht_sensor.readHumidity(); // read temperature in Celsius float temperature_C = dht_sensor.readTemperature(); // read temperature in Fahrenheit float temperature_F = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(temperature_C) || isnan(temperature_F) || isnan(humi)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(temperature_C); Serial.print("°C ~ "); Serial.print(temperature_F); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Conecte um cabo USB ao ESP8266 e ao PC.
  • Abra o Arduino IDE e selecione a placa e a porta corretas.
  • Clique no ícone Libraries na barra lateral esquerda do Arduino IDE.
  • Pesquise por “DHT” e depois localize a biblioteca de sensor DHT da Adafruit.
  • Pressione o botão Install para concluir a instalação.
Biblioteca do sensor DHT11 para ESP8266 NodeMCU
  • Você será solicitado a instalar algumas outras dependências de bibliotecas.
  • Para instalar todas essas bibliotecas, clique no botão Install All.
Biblioteca Adafruit Unified Sensor para ESP8266 NodeMCU
  • Copie o código correspondente ao sensor que você tem e abra-o com o Arduino IDE.
  • Clique no botão Upload no Arduino IDE para compilar e fazer upload do código para o ESP8266.
  • Mude a temperatura do ambiente ao redor do sensor.
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Vídeo

Conhecimento Adicional

Vamos comparar os sensores DHT11 e DHT22.

O que o DHT11 e o DHT22 têm em comum

  • A pinagem é a mesma.
  • A ligação ao ESP8266 não muda.
  • A programação, com o uso de uma biblioteca, é semelhante, exigindo apenas que uma linha de código seja alterada.

As diferenças entre o DHT11 e o DHT22

DHT11 DHT22
Preço custo ultrabaixo custo baixo
Faixa de temperatura 0°C a 50°C -40°C a 80°C
Precisão da temperatura ± 2°C ± 0.5°C
Faixa de umidade 20% a 80% 0% a 100%
Precisão da umidade 5% ± 2 a 5%
Taxa de leitura 1Hz (uma vez por segundo) 0.5Hz (uma vez a cada 2 segundos)
Tamanho do corpo 15.5mm x 12mm x 5.5mm 15.1mm x 25mm x 7.7mm

Evidentemente, o DHT22 é mais preciso que o DHT11 e tem uma faixa de medição maior, mas custa mais.

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!