Le DHT22, également commercialisé sous la référence AM2302, est un capteur numérique qui mesure la température et l’humidité relative de l’air. Il ne délivre pas une tension proportionnelle à mesurer par un convertisseur analogique : il envoie directement une trame numérique contenant les deux grandeurs, déjà converties en degrés Celsius et en pourcentage d’humidité. Un microcontrôleur Arduino, ESP32 ou Raspberry Pi lit cette trame sur une seule broche de données.
Le boîtier blanc ajouré visible sur la photo protège deux éléments sensibles : une thermistance pour la température et un condensateur pour l’humidité. Les ouïes laissent l’air circuler sans laisser passer la poussière ni la lumière directe, qui fausseraient les mesures.
Caractéristiques techniques
| Tension d’alimentation | 3,3 V à 6 V (5 V typique) |
|---|---|
| Consommation | environ 1,5 mA pendant la mesure, quelques dizaines de microampères en veille |
| Plage de température | -40 °C à +80 °C |
| Précision en température | ± 0,5 °C |
| Plage d’humidité | 0 % à 100 % d’humidité relative |
| Précision en humidité | ± 2 % d’humidité relative |
| Résolution | 0,1 °C et 0,1 % d’humidité relative |
| Cadence de mesure | une mesure toutes les 2 secondes au maximum |
| Interface | signal numérique sur une broche de données, protocole propre au capteur |
| Broches | 4 broches au pas de 2,54 mm |
| Boîtier | environ 15 mm x 25 mm x 8 mm, fixation par un trou traversant en partie haute |
Brochage
Le capteur se présente face ajourée vers soi, broches vers le bas. De gauche à droite :
- broche 1 : alimentation, à relier au 5 V de la carte ;
- broche 2 : données, à relier à une entrée numérique ;
- broche 3 : non connectée, à laisser libre ;
- broche 4 : masse, à relier au GND de la carte.
La résistance de tirage sur la ligne de données
La photo montre le capteur nu, monté sur son seul boîtier : il n’embarque aucune résistance. La ligne de données doit être reliée à l’alimentation par une résistance de 4,7 kΩ à 10 kΩ, la valeur courante étant 10 kΩ : une résistance 1/4 W 10 kΩ convient. Sans ce tirage, la ligne reste flottante entre deux mesures et la lecture renvoie une valeur invalide. C’est de très loin la cause la plus fréquente d’un capteur qui ne répond pas.
Certains vendeurs appellent « AM2302 » la version du capteur déjà soudée sur une petite carte, avec la résistance de tirage et parfois une LED de mise sous tension. Ce produit-ci est le capteur nu à 4 broches ; si vous achetez une version sur carte, vérifiez la présence de la résistance avant d’en ajouter une seconde.
Comment se fait la lecture
Le capteur ne parle ni I2C ni 1-Wire : il utilise un protocole à une seule ligne, où la carte tire la ligne au niveau bas pendant quelques millisecondes pour déclencher une mesure, puis le capteur répond par une trame de 40 bits. Les deux premiers octets portent l’humidité, les deux suivants la température, le dernier est un octet de contrôle. La bibliothèque DHT, disponible dans le gestionnaire de bibliothèques de l’IDE Arduino, gère entièrement ce dialogue et renvoie directement deux nombres décimaux.
Deux conséquences pratiques : il faut respecter un délai d’au moins deux secondes entre deux lectures, sinon le capteur renvoie la mesure précédente ou une erreur ; et un câble très long entre le capteur et la carte dégrade le signal, un tirage plus faible étant alors préférable.
Applications
- station météo intérieure ou abri de jardin, avec relevé régulier des deux grandeurs ;
- surveillance d’une pièce technique, d’une cave, d’un local de stockage ou d’une salle de serveurs ;
- régulation d’une serre, d’une chambre de culture ou d’un incubateur ;
- déclenchement automatique d’un ventilateur, d’un chauffage ou d’un humidificateur par un module relais piloté par la carte ;
- contrôle du séchage d’un produit, d’un enduit ou d’un filament avant impression ;
- journalisation horodatée sur carte mémoire, affichage permanent sur écran ou envoi vers un serveur.
Mini-projet : afficher la température et l’humidité sur le moniteur série
Le programme ci-dessous lit les deux grandeurs toutes les deux secondes et les affiche dans le moniteur série de l’IDE Arduino. C’est la base de tout montage plus complet : une fois les valeurs lues correctement, on peut les afficher, les enregistrer ou déclencher un relais.
Matériel nécessaire
- une carte Arduino Uno R3 et son câble USB ;
- une plaque d’essai de 830 points ;
- trois câbles de prototypage mâle-mâle ;
- une résistance de 10 kΩ pour le tirage de la ligne de données ;
- le capteur DHT22.
Câblage
- broche 1 du capteur vers la sortie 5 V de la carte ;
- broche 4 du capteur vers une masse de la carte ;
- broche 2 du capteur vers l’entrée numérique D2 ;
- résistance de 10 kΩ entre l’entrée D2 et la sortie 5 V ;
- broche 3 laissée libre.
Programme
/*
* Mesure de temperature et d'humidite avec un DHT22
* Composants, brochage et fiche complete : www.marocproduits.com
* Bibliotheque requise : DHT sensor library (Adafruit)
*/
#include "DHT.h"
#define BROCHE_DHT 2
#define MODELE_DHT DHT22
DHT capteur(BROCHE_DHT, MODELE_DHT);
void setup() {
Serial.begin(9600);
capteur.begin();
}
void loop() {
float humidite = capteur.readHumidity();
float temperature = capteur.readTemperature();
if (isnan(humidite) || isnan(temperature)) {
Serial.println("Lecture impossible : verifier le tirage de la ligne de donnees");
delay(2000);
return;
}
Serial.print("Temperature : ");
Serial.print(temperature);
Serial.println(" degres C");
Serial.print("Humidite : ");
Serial.print(humidite);
Serial.println(" pour cent");
Serial.println("---");
delay(2000);
}Ce que l’on doit observer
Le moniteur série affiche deux valeurs qui se rafraîchissent toutes les deux secondes et qui suivent l’air ambiant : en soufflant doucement sur le capteur, l’humidité monte en quelques secondes. Si le message d’erreur apparaît en boucle, vérifier dans l’ordre le tirage de 10 kΩ, la masse, puis le délai entre deux lectures.
Questions fréquentes
Quelle différence avec le DHT11 ?
Le DHT11 coûte moins cher mais mesure la température à ± 2 °C et l’humidité seulement entre 20 % et 80 %. Le DHT22 couvre toute la plage utile, de 0 % à 100 %, avec une précision nettement meilleure et une résolution de 0,1. Pour afficher une valeur d’agrément, le DHT11 suffit ; pour réguler une serre, une chambre froide ou une pièce technique, le DHT22 est le bon choix.
Faut-il une résistance, et où se place-t-elle ?
Oui, sur ce modèle nu. Elle se place entre la broche de données et l’alimentation, du côté de la carte : le capteur n’impose aucun sens de montage pour cette résistance. Une valeur de 4,7 kΩ fonctionne avec des câbles courts, 10 kΩ tolère des liaisons plus longues.
Le programme renvoie toujours une valeur invalide, que faire ?
Vérifier dans cet ordre : la résistance de tirage est bien présente et bien enfichée ; la masse du capteur rejoint bien celle de la carte ; le délai entre deux lectures est au moins de deux secondes ; l’alimentation est bien de 5 V et non prise sur une sortie faible ; aucun moteur ni relais ne partage la même ligne d’alimentation que le capteur. Sur un montage où le capteur est au bout d’un câble de plusieurs mètres, réduire la résistance de tirage vers 4,7 kΩ corrige souvent le problème.
Peut-on le laisser dehors ou dans une serre humide ?
Non : le boîtier n’est pas étanche, l’eau qui entre dans les ouïes détruit le capteur et fausse durablement les mesures. Pour une mesure en extérieur ou en milieu humide, une sonde DS18B20 en acier inoxydable est étanche et faite pour cela, mais elle ne mesure que la température. Pour l’humidité, il faut abriter le DHT22 sous un capot ventilé.
Comment afficher les mesures sur un écran ?
Un afficheur LCD 16×02 en I2C se branche sur deux broches seulement, en plus de l’alimentation et de la masse, et permet d’afficher les deux valeurs en permanence sans ordinateur. Le programme reste le même : les deux lectures alimentent l’affichage au lieu du moniteur série.
Les mesures dérivent-elles avec le temps ?
Le capteur est calibré en usine et sa dérive annoncée reste faible, de l’ordre de quelques dixièmes de pour cent d’humidité par an. En revanche, un capteur exposé à des produits volatils, à de la fumée, à de la poussière grasse ou à la condensation perd sa précision sans se remettre : l’air qui traverse les ouïes doit rester propre, et le capteur se place à l’écart de toute source de chaleur rayonnante.
À combiner avec
- Arduino Uno R3 avec câble USB — la carte qui lit le capteur et traite les mesures.
- Plaque d’essai 830 points — pour monter le câblage sans soudure.
- Câbles de prototypage mâle-mâle — la liaison entre la carte, le capteur et la résistance.
- Module 1 relais 5 V — pour commander un ventilateur, un chauffage ou un humidificateur selon le seuil mesuré.
- Afficheur LCD 16×02 en I2C — afficher les deux valeurs en continu, sans ordinateur.
- DHT11 — la version économique, moins précise, pour un montage de démonstration.
- Sonde DS18B20 en acier inoxydable — version étanche, pour une mesure de température en extérieur ou en milieu humide.
- Horloge temps réel DS3231 — pour horodater chaque relevé d’un enregistreur de température et d’humidité.








