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

Dans ce tutoriel, nous allons apprendre :

Si vous souhaitez uniquement obtenir la température, nous vous recommandons d'utiliser un capteur de température étanche DS18B20 à la place. C'est un capteur peu coûteux et soigné. Vous pouvez le placer dans de l'eau chaude ou froide.

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Temperature and Humidity Sensor DHT11
1×Temperature and Humidity Sensor DHT22
1×10 kΩ resistor
1×Breadboard
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

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

Les points communs entre DHT11 et DHT22

  • Les brochages sont identiques
  • Le câblage vers Arduino est le même
  • La programmation (avec une bibliothèque) est similaire (seule une ligne de code est différente)

Les différences entre DHT11 et DHT22

DHT11 DHT22
Price ultra low cost low cost
Temperature Range 0°C to 50°C -40°C to 80°C
Temperature Accuracy ± 2°C ± 0.5°C
Humidity Range 20% to 80% 0% to 100%
Humidity Accuracy 5% ± 2 to 5%
Reading Rate 1Hz (once every second) 0.5Hz (once every 2 seconds)
Body size 15.5mm x 12mm x 5.5mm 15.1mm x 25mm x 7.7mm
Operating Voltage3 to 5V 3 to 5V

Comme vous pouvez le voir, le DHT22 est un peu plus précis, a une plus grande portée mais est plus cher que le DHT11.

Brochage

Le capteur DHT11 et DHT22 sous leur forme originale possèdent quatre broches :

  • Broche GND : doit être connectée à GND (0V)
  • Broche VCC : doit être connectée à VCC (5V ou 3.3V)
  • Broche DATA : la broche est utilisée pour la communication entre le capteur et l'Arduino
  • Broche NC : Non connectée, nous pouvons ignorer cette broche
Brochage des capteurs de température et d'humidité DHT11 et DHT22.

Certains fabricants fournissent les capteurs DHT11 et DHT22 sous forme de module avec trois broches : GND, VCC et les broches DATA (ou alternativement : -, + et les broches OUT).

※ NOTE THAT:

Sous forme de module, l'ordre des broches peut varier selon les fabricants. Utilisez TOUJOURS les étiquettes imprimées sur le module. Regardez de près !

Brochage du module de température et d'humidité DHT11 et DHT22

Diagramme de câblage

Le câblage vers l'Arduino est le même pour les deux capteurs. Sous 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'Arduino.

Arduino - Câblage du capteur DHT11

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

This image is created using Fritzing. Click to enlarge image

Arduino - Câblage du capteur DHT22

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

This image is created using Fritzing. Click to enlarge image

Câblage du module Arduino - DHT11

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 épargne certains travaux de câblage ou de soudure.

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

This image is created using Fritzing. Click to enlarge image

Câblage du module Arduino - DHT22

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 économise quelques travaux de câblage ou de soudure.

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

This image is created using Fritzing. Click to enlarge image

Comment programmer le capteur de température DHTxx

La programmation pour les deux capteurs est similaire. Il n'y a qu'une seule ligne de code qui diffère.

  • Inclure la bibliothèque :
#include "DHT.h"
  • Définissez la broche Arduino connectée au capteur DHT :
#define DHTPIN 2
  • Définir le type de capteur : DHT11 ou DHT22 (Ceci est la ligne de code différente)
#define DHTTYPE DHT11

ou

#define DHTTYPE DHT22
  • Déclarer l'objet DHT
DHT dht(DHTPIN, DHTTYPE);
  • Initialiser le capteur :
dht.begin();
  • Lire l'humidité :
float humi = dht.readHumidity();
  • Lire la température en Celsius :
float tempC = dht.readTemperature();
  • Lire la température en Fahrenheit :
float tempF = dht.readTemperature(true);

Code Arduino - DHT11

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht.readHumidity(); // read temperature as Celsius float tempC = dht.readTemperature(); // read temperature as Fahrenheit float tempF = dht.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { 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"); } }

Code Arduino - DHT22

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht.readHumidity(); // read temperature as Celsius float tempC = dht.readTemperature(); // read temperature as Fahrenheit float tempF = dht.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { 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"); } }

Si vous comparez les deux codes ci-dessus, vous remarquerez qu'une ligne est différente (ligne 11)

Étapes rapides

  • Connectez l'Arduino au PC via le câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
  • Naviguez jusqu'à l'icône Libraries sur la barre gauche de l'IDE Arduino.
  • Recherchez "DHT", puis trouvez la bibliothèque de capteurs DHT par Adafruit
  • Cliquez sur le bouton Install pour installer la bibliothèque.
Bibliothèque de capteur DHT Arduino
  • On vous demandera d'installer d'autres dépendances de bibliothèques.
  • Cliquez sur le bouton Install All pour installer toutes les dépendances des bibliothèques.
Bibliothèque de capteurs unifiés Arduino Adafruit
  • Copiez le code ci-dessus correspondant au capteur que vous avez et ouvrez-le avec Arduino IDE
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code vers Arduino
  • Rendez l'environnement autour du capteur plus chaud ou plus froid
  • Consultez le résultat sur le moniteur série.
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!