Passer au contenu principal Passer à la recherche Passer à la navigation principale
Menu

Lire la température avec le capteur DHT11 via Arduino


Dans ce tutoriel, nous vous montrons comment mesurer la température et l'humidité relative de l'air avec le capteur de température DHT11.

Ce module capteur DHT11 est idéal pour surveiller la température et l'humidité relative dans les pièces d'habitation. Le capteur mesure des températures de 0°C à 50°C avec une précision de ±2°C et l'humidité de 20% à 95% avec une précision de ±5%.

Le module DHT11 est câblé avec seulement 3 broches et fonctionne avec une tension de 3V à 5V. Il peut être facilement connecté à un Arduino pour obtenir rapidement et sans complication des valeurs de mesure. Dans le gestionnaire de bibliothèques du logiciel Arduino, plusieurs bibliothèques avec des exemples de code sont déjà disponibles par défaut, permettant ainsi de mettre en service le capteur DHT11 en très peu de temps.

Composants nécessaires : 

  • Carte compatible Arduino UNO
  • Câble USB 
  • Module DHT11 
  • 3 câbles Dupont femelle-mâle

Ignorer la galerie de produits
20
yourDroid UNO R3 carte de développement ATMEGA328P-PU compatible arduino yourDroid UNO R3 carte de développement ATMEGA328P-PU compatible arduino – Image 2

Note moyenne de 5 sur 5 étoiles

(6)
yourDroid UNO R3 carte de développement ATMEGA328P-PU compatible arduino
RBS14165

Disponible immédiatement

Prix de vente : A partir de 10,12 € Prix régulier : 12,65 €
Câble USB 2.0 USB-A vers USB-B 30 cm

Note moyenne de 0 sur 5 étoiles

Câble USB 2.0 USB-A vers USB-B 30 cm
RBS12341

Disponible immédiatement

Prix régulier : A partir de 0,75 €
Module DHT11 capteur numérique d'humidité et de température Module DHT11 capteur numérique d'humidité et de température – Image 2

Note moyenne de 5 sur 5 étoiles

(1)
Module DHT11 capteur numérique d'humidité et de température
RBS11848

Disponible immédiatement

Prix régulier : A partir de 1,55 €
Capteur numérique DHT11 d'humidité et de température Capteur numérique DHT11 d'humidité et de température – Image 2

Note moyenne de 5 sur 5 étoiles

(4)
Capteur numérique DHT11 d'humidité et de température
RBS10010

Disponible immédiatement

Prix régulier : A partir de 1,65 €
Capteur numérique DHT11 de température et d'humidité Capteur numérique DHT11 de température et d'humidité – Image 2

Note moyenne de 0 sur 5 étoiles

Capteur numérique DHT11 de température et d'humidité
RBS11875

Actuellement non disponible

Prix régulier : A partir de 2,09 €
Capteur numérique DHT22 de température et d'humidité

Note moyenne de 5 sur 5 étoiles

(2)
Capteur numérique DHT22 de température et d'humidité
RBS10244

Disponible immédiatement

Prix régulier : A partir de 7,59 €
Câbles jumper 40 broches femelle-mâle 20 cm

Note moyenne de 4.87 sur 5 étoiles

(30)
Câbles jumper 40 broches femelle-mâle 20 cm
RBS10038

Actuellement non disponible

Prix régulier : A partir de 1,09 €
Kit de démarrage pour Arduino UNO R3 RFID Kit de démarrage pour Arduino UNO R3 RFID – Image 2

Note moyenne de 4.83 sur 5 étoiles

(24)
Kit de démarrage pour Arduino UNO R3 RFID
RBS11368

Disponible immédiatement

Prix régulier : A partir de 28,95 €

DHT11 vs DHT22

Une alternative est le capteur DHT22, un peu plus cher, qui peut détecter des plages de mesure plus grandes, est plus précis et peut mesurer deux fois par seconde.

Si vous vous demandez quel capteur convient le mieux à votre projet, nous avons compilé ici un petit aperçu.

Valeur de comparaison

DHT11
DHT22
Plage (température)0 - 50 °C-40 - 80°C
Précision (température)+-2°C+-0.5°C
Plage (humidité de l'air)20-95%0-100%
Précision (humidité de l'air)+-5%+-2%
Intervalle de mesure1000 Millisecondes500 Millisecondes

En conclusion, on peut dire que le DHT22 se distingue sur toute la ligne, sauf en ce qui concerne le prix. Pourtant, le DHT11 reste le capteur de température le plus populaire pour les projets de microcontrôleurs, car il est très économique, précis et économe en énergie.

Schéma de connexion

cliquez sur les images pour les agrandir

DHT11

Arduino
S (fil de données)Broche 2
VCC (alimentation 3-5 V)5V
- (GND)GND

Installer la bibliothèque DHT Sensor

Pour afficher simplement les valeurs mesurées en °C, nous utilisons la bibliothèque DHT. L'installation se fait facilement via l'IDE Arduino. Cette bibliothèque peut également être utilisée pour d'autres capteurs DHT.

1. Ouvrir la gestion des bibliothèques

2. Rechercher DHT11 et installer la bibliothèque DHT Sensor Library

Code pour Arduino

Vous trouverez le code sous « Fichier – Exemples – DHT ». Il suffit de décommenter DHT11 au lieu de DHT22.

Afficher / masquer le code
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor

#include "DHT.h"

#define DHTPIN 2 // Digital pin connected to the DHT sensor

// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// Initialize DHT sensor.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println(F("DHTxx test!"));

  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("% Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));
}