Mesure d’humidité et de température sur Arduino avec un capteur DHT11 ou DHT22

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Table des matières

Les capteurs de la série DHT (DHT11, DHT21, DHT22, DHT33, DHT44) permettent de mesurer l’humidité et la température de l’air ambiant à l’aide de votre Arduino. Le premier de la série, le DHT11 est un capteur économique parfait pour débuter ou des applications peu exigeantes en précision et vitesse de mesure. Le DHT22 (ou DHT21) coûte environ deux fois plus cher que le DHT11 mais vous offrira une plage de mesure et une précision plus importante.

 

Le DHT22 permet également de mesurer des températures négatives à partir de -40°C.

Le DHT21 est très similaire au DHT22. Vous le trouverez le plus souvent vendu dans un boitier à visser muni de 3 câbles de raccordement. Il est cependant plus difficile à trouver sur les sites marchands.

Beaucoup moins répandus, les capteurs DHT33 et DHT44 feront l’objets d’un article ultérieur.

Comparatif technique DHT11, DHT21 et DHT22

Plutôt que de passer en revue toutes les caractéristiques techniques, voici un petit tableau de comparaison des principales caractéristiques techniques du DHT11, DHT21 et DHT22.

DHT11 DHT21 DHT22
Alimentation De 3 à 5V De 3,5 à 5,5V De 3,3 à 6 V
Consommation (lors d’une mesure, au repos) 2,5mA  1,5mA

50 µA

Plage de mesure d’humidité de 20 à 80% (précision 5%)  de 0 à 100% (précision 2 à 5%)  de 0 à 100% (précision 2 à 5%)
Plage de mesure de température de 0 à 50°C (± 2°C)  de -40 to 80°C (±0.5°C)  de -40 to 80°C (±0.5°C)
Fréquence de mesure maxi 1 par seconde  4 par seconde  4 par seconde
Poids et dimensions 15.5mm x 12mm x 5.5mm  59 mm x 26 mm x 14 mm

14 g

 25 x 15 x 9 mm
Connexion 4 broches ou 3 si monté sur module  3 câbles  4 broches ou 3 si monté sur module ou boitier à visser
Documentation technique DHT-11  DHT21  DHT22

Correspondances des dénominations

Vous pouvez trouver ces capteurs sous différentes dénominations dont voici une table de correspondance.

  • DHT11 = RHT01
  • DHT21 = RHT02= AM2301 = HM2301
  • DHT22 = RHT03= AM2302
  • DHT33 = RHT04 = AM2303
  • DHT44 = RHT05

Identification des broches

Broches DHT22De gauche à droite

  • 1 : VCC (de 3 à 5V)
  • 2 : Signal
  • 3 : Non utilisé
  • 4 : GND

module DHT11 / DHT22Certains fabricants proposent également le DHT11 et le DHT22 déjà montés sur un module. Dans ce cas, il n’y a que 3 broches à cabler.

Branchement du DHT22

Coté câblage, rien de bien compliqué, il n’y a que 3 broches à connecter. J’ai représenté un Arduino Uno sur le schéma de câblage ci-dessous mais il sera identique si vous utilisez un Raspberry.

Pour les utilisateurs de Fritzing, vous trouverez les capteurs DHT11, DHT21 DHT22 sous la dénomination RHT

Cablage du DHT11 / DHT22 sur Arduino ou Rapsberry

Code Arduino pour réaliser une mesure simple

Pour réaliser vos premières mesures, voici un petit programme à installer sur votre Arduino.

// Test des capteurs d'humidité et de température DHT-11 / DHT-21 /  DHT-22
// Code adapté de l'exemple DHTTester de ladyada (Adafruit)
// Projets DIY - 22/01/2016

#include "DHT.h"   // Librairie des capteurs DHT

#define DHTPIN 2    // Changer le pin sur lequel est branché le DHT

// Dé-commentez la ligne qui correspond à votre capteur 
//#define DHTTYPE DHT11     // DHT 11 
#define DHTTYPE DHT22      // DHT 22  (AM2302)
//#define DHTTYPE DHT21     // DHT 21 (AM2301)

// Initialisation du capteur pour un Arduino à 16mhz par défaut
// Il faudra modifier le 3ème paramètres pour une autre carte (sinon le capteur renvoie 0). Quelques valeurs : 8mhz => 3, 16mhz => 6, 84mhz => 84

DHT dht(DHTPIN, DHTTYPE); 
void setup() {
  Serial.begin(9600); 
  Serial.println("DHTxx test!");
 
  dht.begin();
}

void loop() {
  // Délai de 2 secondes entre chaque mesure. La lecture prend 250 millisecondes
  delay(2000);

  // Lecture du taux d'humidité
  float h = dht.readHumidity();
  // Lecture de la température en Celcius
  float t = dht.readTemperature();
  // Pour lire la température en Fahrenheit
  float f = dht.readTemperature(true);
  
  // Stop le programme et renvoie un message d'erreur si le capteur ne renvoie aucune mesure
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Echec de lecture !");
    return;
  }

  // Calcul la température ressentie. Il calcul est effectué à partir de la température en Fahrenheit
  // On fait la conversion en Celcius dans la foulée
  float hi = dht.computeHeatIndex(f, h);
  

  Serial.print("Humidite: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: "); 
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print("Temperature ressentie: ");
  Serial.print(dht.convertFtoC(hi));
  Serial.println(" *C");
}

Que permet de faire la librairie DHT ?

Voyons maintenant ce que nous pouvons faire avec la librairie DHT.

  • DHT(uint8_t pin, uint8_t type, uint8_t count=6) : initialisation du capteur
    • pin  : broche sur laquelle est branchée la sortie numérique du capteur
    • type : DHT11, DHT22, DHT21 ou AM2301
    • count : par défaut l’Arduino fonctionne à 16mhz
  • readTemperature(bool Unit) : lire la température
    • Unit : TRUE pour récupérer la température en Fahrenheit (nécessaire pour calculer la température ressentie)
  • convertCtoF(float) conversion de la température en Fahrenheit
  • convertFtoC(float) conversion de la température en Celcius
  • computeHeatIndex(float tempFahrenheit, float percentHumidity) : calcul la température ressentie. Utilisez convertFtoC pour convertir la température en Celcius.
  • readHumidity()

Si vous avez besoin d’aller plus loin, je vous conseille cet article publié sur le Playground Arduino.

English Version

Avez-vous aimé cet article ?
[Total: 3 Moyenne: 4.7]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

4 Commentaires
  1. Bonjour a quel endroit dans ton script dois t-on faire la modif:

    // Initialisation du capteur pour un Arduino à 16mhz par défaut
    // Il faudra modifier le 3ème paramètres pour une autre carte (sinon le capteur renvoie 0). Quelques valeurs : 8mhz => 3, 16mhz => 6, 84mhz => 84

    merci de ton aide.
    A+ M le PoP

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Calculateurs
×
Calculateur loi d'Ohm
Tension (U) - en Volt
Courant (I) - en Ampère
Résistance (R) - en Ohms
Puissance (P) - en Watts

Ce calculateur permet de calculer les relations entre le courant, la tension, la résistance et la puissance dans les circuits résistifs.

Saisir au moins deux valeurs puis cliquer sur calculer pour calculer les valeurs restantes. Réinitialisez après chaque calcul.

Rappel sur la Loi d'Ohm
La loi d'Ohm explique la relation entre la tension, le courant et la résistance en déclarant que le courant traversant un conducteur entre deux points est directement proportionnel à la différence de potentiel entre les deux points.
La loi d'Ohm s'écrit U = IR, où U est la différence de tension, I est le courant en ampère et R est la résistance en Ohms (symbole Ω).
Loi d'Ohm (U=RI)
×
Déchiffrer le code couleur d'une résistance à 4 bandes
Bande 1 Bande 2 Multiplicateur Tolérance
   

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 4 anneaux
Formule : ab*cΩ ±d%
Les deux premières bandes (a, b) permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0) donne le nombre 10.
La troisième bande (c) est un coefficient multiplicateur. Par exemple, l'anneau rouge est un coefficient multiplicateur de 100, ce qui donne 10 X 100 = 1000Ω.
Le quatrième anneau (d) indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que sa valeur soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 4 bandes
×
Déchiffrer le code couleur d'une résistance à 5 bandes
Bande 1 Bande 2 Bande 3 Multiplicateur Tolérance

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 5 anneaux
Formule : abc*dΩ ±e%
Les trois premières bandes permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0), Noir (0) donne le nombre 100
La quatrième bande est un coefficient multiplicateur. Par exemple, l'anneau brun correspond au coefficient multiplicateur 10, ce qui donne 100 X 10 = 1000Ω.
Le cinquième anneau indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que la valeur de la résistance soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 5 bandes
×
Calculateur de résistance série pour une ou plusieurs LED
Tension d'alimentation en Volt
Tension directe en Volt
Courant en mA
Résistance calculée en Ω
Puissance estimée en W

Ce calculateur permet de déterminer la résistance requise pour piloter une ou plusieurs LED connectées en série à partir d'une source de tension à un niveau de courant spécifié.

Remarque. Il est préférable d'alimenter le circuit avec une puissance nominale comprise entre 2 et 10 fois la valeur calculée afin d'éviter la surchauffe
Couleur Longueur d'onde (nm) Tension (V) pour LED ⌀3mm Tension(V) pour LED ⌀5mm
Rouge 625-630  1,9-2,1 2,1-2,2
Bleu 460-470 3,0-3,2 3,2-3,4
Vert 520-525 2,0-2,2 2,0-2,2
Jaune 585-595 2,0-2,2 3,0-3,2
Blanc 460-470 3,0-3,2 1,9-2,1
Résistance en série pour une ou plusieurs LED
×
Calculateur durée de vie d'une batterie
Capacité de la batterie
Consommation de l'appareil ou objet connecté

Ce calculateur estime la durée de vie d'une batterie, en fonction de sa capacité nominale et du courant ou de la puissance qu'une charge en tire.

La durée de vie de la batterie est une estimation idéalisée. La durée de vie réelle peut varier en fonction de l'état de la batterie, de son âge, de la température, du taux de décharge et d'autres facteurs. C'est le mieux que vous pouvez espérer obtenir.

Autonomie de la batterie = capacité de la batterie en mAh / courant de charge en mA

Durée de vie batterie
Publicité
À lire aussi
Composants
Sur le Forum
Domotique et objets connectés à faire soi-même
Domotique et objets connectés à faire soi-même
Vous avez aimé ce tutoriel

Ne manquez plus les prochains projets

Recevez chaque semaine le récapitulatif des tutoriels et projets.

Vous pouvez vous désabonner à tout moment.