Mesure d’humidité et de température sur Arduino (DHT11 / DHT22)

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.

DHT-11 DHT-21 DHT-22
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 meure 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 de 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

Premières mesures avec un Arduino

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

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 Farenheit (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.

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.