Le DHT11 est le capteur d’entrée de gamme de la mesure d’ambiance : il donne à la fois la température et l’humidité relative de l’air, en numérique, sur un seul fil de données. Pas de réglage, pas d’étalonnage, pas de conversion analogique : la bibliothèque lit une trame et renvoie directement des degrés Celsius et des pour cent d’humidité.
La pièce livrée est le boîtier bleu à quatre broches, celui du composant nu tel qu’il sort de l’usine : un boîtier plastique ajouré qui laisse l’air circuler autour de la sonde, et quatre broches à planter dans une plaque d’essai. C’est le capteur des stations météo d’intérieur, des thermostats de bricolage et des premiers projets Arduino tout simplement parce qu’il fonctionne du premier coup avec trois composants.
Un capteur lent et précis à sa manière
Il faut le savoir avant de l’acheter : le DHT11 ne mesure pas au dixième de degré. Sa résolution est de 1 °C et 1 % d’humidité, et il se rafraîchit au maximum une fois par seconde. Ce n’est pas un défaut caché, c’est la fiche technique du composant — et pour surveiller une pièce, une serre, une cave ou un carton de stockage, c’est largement suffisant.
En échange de cette modestie, il apporte ce qui compte vraiment dans un montage : une sortie numérique déjà calibrée en usine. Rien à régler, rien à compenser, et une trame qui se vérifie toute seule grâce à sa somme de contrôle. Si un fil capte une perturbation, la lecture est signalée invalide au lieu de renvoyer une valeur fausse sans prévenir.
Caractéristiques techniques
| Référence | DHT11 — boîtier nu à 4 broches |
|---|---|
| Tension d’alimentation | 3,3 V à 5,5 V continu |
| Consommation | 0,5 mA en mesure, moins d’1 mA en pointe |
| Interface | Numérique, bus unique propriétaire (un seul fil de données, ni I2C ni Dallas 1-Wire) |
| Plage de température | 0 °C à +50 °C — précision ±2 °C, résolution 1 °C |
| Plage d’humidité | 20 % à 90 % d’humidité relative — précision ±5 %, résolution 1 % |
| Cadence de mesure | Une mesure par seconde au maximum |
| Dérive à long terme | ±1 % d’humidité par an |
| Boîtier | Plastique ajouré, environ 15,5 × 12 × 5,5 mm |
| Broches | 4 broches au pas de 2,54 mm, brochables directement dans une plaque d’essai |
Brochage : quatre broches, trois utilisées
Tenue face à vous, grille d’aération vers l’avant et broches vers le bas, les quatre broches se lisent de gauche à droite dans cet ordre :
Broche 1 — VCC | Alimentation. À relier au 3,3 V ou au 5 V de la carte. |
|---|---|
Broche 2 — DATA | Le fil de données. À relier à une entrée numérique, avec une résistance de tirage vers VCC. |
Broche 3 — NC | Non connectée. Elle n’est reliée à rien à l’intérieur du boîtier : la laisser libre, ne jamais la mettre à la masse. |
Broche 4 — GND | La masse, référence commune du montage. |
Vous trouverez aussi, ailleurs, des modules DHT11 à trois broches montés sur un petit circuit imprimé : la résistance de tirage et un condensateur y sont déjà soudés. Le produit de cette page est le composant nu : la résistance de tirage est donc à prévoir, c’est la seule chose à ne pas oublier.
La résistance de tirage, seule vraie source de panne
Au repos, la ligne de données doit rester à l’état haut. C’est une résistance placée entre DATA et VCC qui s’en charge — 10 kΩ convient parfaitement, de 4,7 à 10 kΩ selon la longueur du câblage. Sans elle, le fil flotte et le capteur répond n’importe quoi : des lectures invalides en série, de la valeur à zéro, ou un capteur qui « ne répond pas » alors qu’il est parfaitement branché.
Le symptôme est trompeur, alors retenez la règle : boîtier nu à quatre broches, une résistance de 10 kΩ entre la broche 2 et la broche 1, toujours. Sur la plupart des montages elle se plante simplement dans la plaque d’essai, à cheval entre la ligne du DATA et la ligne d’alimentation.
Applications courantes
- Station météo d’intérieur — température et humidité affichées sur un écran, rafraîchies toutes les deux secondes.
- Surveillance d’une pièce sensible — cave, local technique, placard, salle de culture : prévenir quand l’humidité monte.
- Thermostat ou déshumidificateur — déclencher un ventilateur, un chauffage ou un relais selon le seuil mesuré.
- Conservation du matériel — les cartes électroniques, les filaments et les documents n’aiment pas l’humidité durablement élevée.
- Premier projet Arduino — un capteur qui se lit en trois lignes de code, idéal pour comprendre une trame numérique.
- Enregistreur de données — consigner les mesures sur une carte mémoire ou les envoyer par Wi-Fi.
Mini-projet : une station de mesure avec écran
Le montage complet tient sur une plaque d’essai et se câble en dix minutes : le capteur lit l’ambiance, l’écran l’affiche, et la même information part sur le moniteur série de l’ordinateur.
Ce qu’il faut
| La mesure | Le capteur DHT11 — celui de cette page |
|---|---|
| Le cerveau | Uno R3 + câble USB |
| Le fil qui tient la ligne haute | 10 × résistance 1/4 W 10 kΩ |
| L’affichage | Afficheur LCD 16×02 I2C |
| Le support | Plaque d’essai 830 points |
| Les liaisons | 10 × fil mâle-femelle |
L’afficheur I2C ne demande que quatre fils, dont deux partagés par toutes les cartes : c’est ce qui en fait le compagnon naturel de ce capteur. Il faut y voir son intérêt ici : sans lui, la mesure n’existe que dans le moniteur série, donc seulement quand l’ordinateur est branché.
Le câblage
DHT11 VCC (broche 1) | → Arduino 5V |
|---|---|
DHT11 DATA (broche 2) | → Arduino D2, et résistance 10 kΩ vers 5V |
DHT11 NC (broche 3) | → rien, laissée libre |
DHT11 GND (broche 4) | → Arduino GND |
LCD VCC | → Arduino 5V |
LCD GND | → Arduino GND |
LCD SDA | → Arduino A4 |
LCD SCL | → Arduino A5 |
Deux points de vigilance sur les branchements. D’abord, la broche 3 du capteur ne se raccorde à rien : la mettre à la masse ou au 5 V ne sert à rien et peut perturber la lecture. Ensuite, si l’écran reste bleu et muet, c’est presque toujours son adresse I2C : la plupart des modules répondent à 0x27, certains à 0x3F. Dans ce cas, remplacez l’adresse dans la ligne de déclaration du programme.
Le programme
Deux bibliothèques sont nécessaires, disponibles depuis le gestionnaire de bibliothèques de l’IDE Arduino : DHT sensor library et LiquidCrystal I2C.
/*
* Station de mesure - capteur DHT11 et afficheur LCD 16x02 I2C
* Carte : Arduino Uno R3
* Montage : DHT11 sur D2 avec resistance de tirage de 10 k vers 5 V
* LCD I2C sur A4 (SDA) et A5 (SCL)
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "DHT.h"
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
const byte PIN_DHT = 2; // broche DATA du DHT11
DHT dht(PIN_DHT, DHT11);
LiquidCrystal_I2C lcd(0x27, 16, 2); // adresse 0x3F sur certains modules
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
lcd.print("Station de mesure");
delay(1500); // le temps de lire le message au demarrage
lcd.clear();
// Le capteur a besoin d'une seconde pour se stabiliser apres la mise
// sous tension : on ecarte sa toute premiere lecture.
delay(1000);
}
void loop() {
float humidite = dht.readHumidity();
float temperature = dht.readTemperature();
// isnan() signale une trame invalide : le capteur a mal repondu.
// On recommence au tour suivant plutot que d'afficher un chiffre faux.
if (isnan(humidite) || isnan(temperature)) {
lcd.setCursor(0, 0);
lcd.print("Lecture invalide");
delay(2000);
return;
}
lcd.setCursor(0, 0);
lcd.print("Temp : ");
lcd.print(temperature, 0);
lcd.print((char)223); // code du symbole degre
lcd.print("C ");
lcd.setCursor(0, 1);
lcd.print("Hum : ");
lcd.print(humidite, 0);
lcd.print(" % ");
Serial.print("Temperature : ");
Serial.print(temperature);
Serial.print(" C Humidite : ");
Serial.print(humidite);
Serial.println(" %");
// Le DHT11 ne se rafraichit pas plus vite qu'une fois par seconde.
// Relire plus souvent renvoie la meme valeur, parfois abimee.
delay(2000);
}Comment ça marche
dht.readTemperature()etdht.readHumidity()envoient la demande au capteur, lisent la trame de 40 bits et vérifient sa somme de contrôle. Si la trame est abîmée, la fonction renvoieNAN— d’où le testisnan(): il vaut mieux afficher « lecture invalide » que 0 °C alors qu’il fait 22 °C.- La pause de deux secondes n’est pas une précaution de confort : elle respecte la cadence maximale du composant. Interroger le capteur toutes les 100 ms ne donne pas des mesures plus fraîches, seulement des lectures répétées et davantage de trames invalides.
- Le second argument de
lcd.print(valeur, 0)est le nombre de décimales. À0, la valeur s’affiche en entier — ce qui correspond exactement à la résolution du DHT11. Demander deux décimales afficherait des chiffres que le capteur n’a jamais mesurés. - La première lecture après la mise sous tension est écartée volontairement : elle tombe pendant la phase de stabilisation du capteur et n’est pas fiable.
Pour aller plus loin
- Ajouter une alarme — un buzzer actif bipe dès que l’humidité dépasse le seuil que vous fixez.
- Commander un ventilateur — un module relais 5 V s’enclenche sur le même principe que le buzzer, la partie puissance en plus.
- Envoyer les mesures par Wi-Fi — remplacez la carte Uno par un NodeMCU ESP8266 : le même programme marche en changeant deux numéros de broches.
Points d’attention
- Une mesure par seconde, pas plus. Le composant est lent par construction ; au-delà, les lectures se répètent et le taux d’erreur monte.
- Alimentez le capteur sous la même tension que la logique de votre carte. Sous 5 V, la ligne de données monte à 5 V : très bien pour une Uno, mais à éviter avec un ESP32 ou un module en 3,3 V, qui préfèrent une alimentation du capteur en 3,3 V.
- À l’abri de l’eau. Le boîtier n’est pas étanche et craint la condensation. Pour une mesure dans un liquide ou dans la terre, ce n’est pas le bon composant.
- Loin des sources de chaleur — un capteur posé sur le régulateur de la carte ou juste au-dessus d’un transformateur mesure la chaleur de l’électronique, pas celle de la pièce.
- Câblage court. La liaison est fiable sur une plaque d’essai ou une vingtaine de centimètres de fils. Plus loin, la lecture devient irrégulière.
- Ce n’est pas un capteur 1-Wire Dallas. Il utilise son propre protocole, sur une broche dédiée : il ne peut pas partager le même fil qu’une sonde DS18B20, et plusieurs DHT11 se branchent sur plusieurs broches distinctes.
Dans la même famille
Le DHT11 est le plus simple de sa famille. Deux références montent en précision si votre projet l’exige :
- Le DHT22, mesuré de −40 °C à +80 °C avec une précision de ±0,5 °C et une résolution au dixième de degré, pour une humidité de 0 à 100 %.
- La sonde AM2302 — la même électronique que le DHT22, mais dans un boîtier ajouré avec trois fils déjà soudés, à raccorder sans plaque d’essai.
Et si la température seule vous intéresse, en particulier dans une mesure immergée ou à distance sur câble, la sonde DS18B20 en acier inoxydable est le choix habituel. Le DHT11 garde son avantage : il donne les deux grandeurs à la fois, avec trois composants en moins dans le montage.
Questions fréquentes
Pourquoi mes lectures sont-elles invalides une fois sur deux ?
Dans l’ordre : la résistance de tirage de 10 kΩ entre DATA et VCC est absente ou mal plantée, le capteur est interrogé plus d’une fois par seconde, ou les fils sont trop longs. Dans la grande majorité des cas observés, c’est la résistance : elle est obligatoire sur le boîtier nu à quatre broches, alors qu’elle est déjà intégrée sur les modules.
Pourquoi la valeur ne change-t-elle pas quand je réchauffe la pièce ?
Parce que le capteur a une inertie réelle : la sonde doit se mettre à la température de l’air ambiant avant de la mesurer, et cela prend du temps. Attendez la minute, et surtout écartez un chiffre resté figé au bout de quelques secondes seulement. Un écart d’un degré d’une mesure à l’autre est normal : c’est la résolution du composant.
Peut-on le brancher en 3,3 V ?
Oui, la plage va de 3,3 V à 5,5 V. C’est même la solution à retenir avec un ESP32 ou un ESP8266, dont les entrées ne supportent pas 5 V. Sous 3,3 V la mesure reste correcte : seule la vitesse de réponse baisse légèrement.
Faut-il une bibliothèque, ou peut-on lire la trame soi-même ?
La bibliothèque est fortement recommandée. Le protocole impose des fenêtres de temps de quelques dizaines de microsecondes, que seule une lecture très précise permet de respecter — un code écrit à la main tombe vite dans les insuccès. La bibliothèque gère l’ensemble du dialogue et la vérification de la somme de contrôle.
Peut-on en brancher plusieurs sur la même carte ?
Oui, autant que vous avez de broches numériques disponibles, à raison d’un capteur par broche et d’une résistance de tirage par capteur. Le bus n’est pas partagé : chaque DHT11 a son propre fil de données, et le programme déclare un objet par capteur.
Peut-il rester en service en permanence ?
Sans problème : sa consommation est négligeable, et il ne s’use pas par la mesure. Pour un montage autonome sur pile, c’est même l’un des capteurs les plus économes de sa catégorie. Prévoyez simplement une aération : un boîtier étanche à l’air mesurerait l’humidité de l’intérieur du boîtier, et non celle de la pièce.
À combiner avec
Ce capteur n’exige qu’un microcontrôleur, une résistance de 10 kΩ et quelques fils : il fait partie des montages les plus simples à démarrer. Le KIT Starter contient la carte Uno, la plaque d’essai, les fils et les résistances — il ne reste que le capteur et l’afficheur à ajouter pour reproduire la station de mesure de cette page. Pour une base plus large, le Kit Arduino Uno couvre davantage de projets et laissera de quoi réutiliser ce capteur autrement.









