Arduino Nano ESP32 - Sensor de Temperatura e Umidade

Este tutorial mostra como usar o Arduino Nano ESP32 para ler o valor de temperatura e umidade dos sensores DHT11 ou DHT22 e imprimi-lo no Serial Monitor.

Sobre o Sensor de Temperatura e Umidade DHT11 e DHT22

Em resumo, o sensor DHT22 é mais preciso e tem uma faixa maior, mas é mais caro que o DHT11. Vamos ver o que eles têm em comum e quais são as diferenças

O que eles têm em comum

  • A mesma pinagem
  • A mesma ligação ao Arduino Nano ESP32
  • Um código Arduino Nano ESP32 semelhante

As diferenças

A tabela abaixo mostra as diferenças detalhadas entre o DHT11 e o DHT22:

DHT22 DHT11
O preço baixo custo custo ultrabaixo
A faixa de umidade 0% a 100% 20% a 80%
A precisão da umidade ± 2% a 5% 5%
A faixa de temperatura -40°C a 80°C 0°C a 50°C
A precisão da temperatura ± 0.5°C ± 2°C
A taxa de leitura 0.5Hz (uma vez a cada 2 segundos) 1Hz (uma vez por segundo)
Dimensões 15.1mm x 25mm x 7.7mm 15.5mm x 12mm x 5.5mm
Tensão de operação3 a 5V 3 a 5V

Pinagem do DHT11 e DHT22

Os sensores DHT11 e DHT22 têm 4 pinos:

  • Pino GND: conecte este pino ao GND (0V)
  • Pino VCC: conecte este pino ao VCC (3.3V ou 5V)
  • Pino DATA: o pino usado para a comunicação entre o sensor e o Arduino Nano ESP32
  • Pino NC: Não conectado
Pinagem do sensor de temperatura e umidade DHT11 e DHT22

Recomendamos fortemente o uso dos módulos sensores DHT11 e DHT22. Os módulos têm um resistor embutido e possuem apenas três pinos: VCC, GND e DATA (ou, alternativamente: +, - e OUT).

Pinagem do módulo de temperatura e umidade DHT11 e DHT22
image source: diyables.io

A ordem dos pinos no módulo pode ser diferente entre fabricantes. Verifique com atenção os rótulos dos pinos impressos no módulo.

Diagrama de Ligação entre o DHT11/DHT22 e o Arduino Nano ESP32

A ligação ao Arduino Nano ESP32 é a mesma para os dois sensores. Na forma original, um resistor de 5K a 10K Ohms é necessário para manter a linha de dados em nível alto e permitir a comunicação entre o sensor e o Arduino Nano ESP32

Arduino Nano ESP32 - Ligação do Sensor DHT11

Diagrama de ligação do sensor de temperatura e umidade DHT11 com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Ligação do Sensor DHT22

Diagrama de ligação do sensor de temperatura e umidade DHT22 com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Ligação do Módulo DHT11

A maioria dos módulos sensores DHT22 tem um resistor embutido, então você não precisa adicioná-lo. Isso nos poupa um pouco de trabalho de ligação ou soldagem.

Diagrama de ligação do módulo de temperatura e umidade DHT11 com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Ligação do Módulo DHT22

A maioria dos módulos sensores DHT22 tem um resistor embutido, então você não precisa adicioná-lo. Isso nos poupa um pouco de trabalho de ligação ou soldagem.

Diagrama de ligação do módulo de temperatura e umidade DHT22 com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código Arduino Nano ESP32 - DHT11

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN D3 // The Arduino Nano ESP32 pin D31 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); }

Código Arduino Nano ESP32 - DHT22

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN D3 // The Arduino Nano ESP32 pin D31 connected to DHT22 sensor #define DHT_SENSOR_TYPE DHT22 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); }

Os dois códigos acima têm apenas uma linha diferente.

Passos Rápidos

Para começar com o Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 na Arduino IDE.
  • Faça a ligação dos componentes de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Abra o Library Manager clicando no ícone Library Manager na barra de navegação à esquerda da Arduino IDE
  • Digite “Adafruit DHT” na caixa de pesquisa e procure a biblioteca DHT sensor library da Adafruit
  • Instale a biblioteca clicando no botão Install.
Biblioteca DHT sensor library do Arduino Nano ESP32
  • Uma janela pode aparecer pedindo para você instalar as dependências da biblioteca
  • Instale todas as dependências da biblioteca clicando no botão Install All.
Biblioteca Adafruit Unified sensor do Arduino Nano ESP32
  • Copie um dos códigos acima e abra na Arduino IDE
  • Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload na Arduino IDE
  • Deixe o sensor mais frio ou mais quente. Por exemplo, coloque o sensor perto de uma xícara de café quente
  • Veja o resultado no Serial Monitor. Ele se parece com o exemplo abaixo:.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' 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
Arduino Nano ESP32 on COM15
2

Vídeo

※ 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!