ESP32 - Capteur de température et d'humidité

Ce tutoriel vous explique comment utiliser un ESP32 pour lire la température et l'humidité à partir des capteurs DHT11 ou DHT22 et les afficher sur le moniteur série.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×Temperature and Humidity Sensor DHT11
1×(Optional) Temperature and Humidity Sensor DHT22
1×10 kΩ resistor
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos des capteurs de température et d'humidité DHT11 et DHT22

En bref, le capteur DHT22 est plus précis, a une plus grande portée mais est plus cher que le DHT11. Voyons les points communs et les différences entre eux.

Les biens communs

  • Le même brochage
  • Le même câblage vers ESP32
  • Un code ESP32 similaire

Les différences

Le tableau ci-dessous montre les différences détaillées entre DHT11 et DHT22 :

DHT22 DHT11
The price low cost ultra low cost
The humidity range 0% to 100% 20% to 80%
The humidity accuracy ± 2% to 5% 5%
The temperature range -40°C to 80°C 0°C to 50°C
The temperature accuracy ± 0.5°C ± 2°C
The reading rate 0.5Hz (one time per 2 seconds) 1Hz (one time per second)
Dimension 15.1mm x 25mm x 7.7mm 15.5mm x 12mm x 5.5mm
Operating Voltage3 to 5V 3 to 5V

Brochage des DHT11 et DHT22

Le capteur DHT11 et DHT22 comprend 4 broches :

  • Broche GND : connectez cette broche à GND (0V)
  • Broche VCC : connectez cette broche à VCC (3,3V ou 5V)
  • Broche DATA : la broche est utilisée pour communiquer entre le capteur et l'ESP32
  • Broche NC : Non connectée
Capteur de température et d'humidité DHT11 et DHT22 Brochage

Nous vous recommandons vivement d'utiliser les modules de capteurs DHT11 et DHT22. Les modules possèdent une résistance intégrée et n'ont que trois broches : VCC, GND et broches DATA (ou alternativement : +, - et broches OUT).

Module de température et d'humidité DHT11 et DHT22 : Schéma des broches
image source: diyables.io

L'ordre des broches sur le module peut varier selon les fabricants. Veuillez vérifier attentivement les étiquettes des broches imprimées sur le module.

Schéma de câblage entre DHT11/DHT22 et ESP32

Le câblage pour l'ESP32 est le même pour les deux capteurs. Sous sa forme originale, une résistance de 5K à 10K Ohms est nécessaire pour maintenir la ligne de données haute et permettre la communication entre le capteur et l'ESP32.

Câblage du capteur ESP32 - DHT11

Schéma de câblage du capteur de température et d'humidité ESP32 DHT11

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Câblage du capteur ESP32 - DHT22

Schéma de câblage du capteur de température et d'humidité ESP32 DHT22

This image is created using Fritzing. Click to enlarge image

Câblage du module ESP32 - DHT11

La plupart des modules de capteur DHT22 possèdent une résistance intégrée, vous n'avez donc pas besoin de l'ajouter. Cela nous évite de faire des câblages ou des soudures.

Schéma de câblage du module de température et d'humidité ESP32 DHT11

This image is created using Fritzing. Click to enlarge image

Câblage du module ESP32 - DHT22

La plupart des modules de capteur DHT22 possèdent une résistance intégrée, donc vous n’avez pas besoin de l’ajouter. Cela nous évite des travaux de câblage ou de soudure.

Schéma de câblage du module de température et d'humidité ESP32 DHT22

This image is created using Fritzing. Click to enlarge image

Code ESP32 - DHT11

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 21 // ESP32 pin GPIO21 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 tempC = dht_sensor.readTemperature(); // read temperature in Fahrenheit float tempF = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(tempC) || isnan(tempF) || 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(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Code ESP32 - DHT22

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 21 // ESP32 pin GPIO21 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 tempC = dht_sensor.readTemperature(); // read temperature in Fahrenheit float tempF = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(tempC) || isnan(tempF) || 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(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Les deux codes ci-dessus n'ont qu'une seule ligne de différence.

Étapes rapides

  • Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Faites le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble micro USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, ESP32 Dev Module) et le port COM.
  • Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  • Tapez "DHT" dans la boîte de recherche, puis recherchez la bibliothèque de capteurs DHT par Adafruit.
  • Installez la bibliothèque en cliquant sur le bouton Install.
Bibliothèque de capteurs DHT ESP32
  • Une fenêtre apparaît pour vous demander d'installer les dépendances de la bibliothèque.
  • Installez toutes les dépendances de la bibliothèque en cliquant sur le bouton Install All.
Bibliothèque de capteurs unifiés Adafruit ESP32
  • Copiez l'un des codes ci-dessus et ouvrez-le avec l'IDE Arduino.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload de l'IDE Arduino.
  • Rendez le capteur plus froid ou plus chaud. Par exemple, en plaçant le capteur près d'une tasse de café chaud.
  • Voir le résultat sur le moniteur série. Cela ressemble à ce qui suit :.
COM6
Send
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
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!