Le DHT11 est un capteur économique et populaire utilisé pour mesurer la température et l’humidité dans divers projets électroniques. Le DHT11 est un capteur numérique qui communique avec le microcontrôleur via un seul fil de données (en mode “one-wire”).

Il peut mesurer des températures allant de 0 à 50°C avec une précision de ±2°C et des niveaux d’humidité compris entre 20 et 80 % avec une précision de ±5 % RH (humidité relative). 

Le capteur renvoie ces valeurs sous forme de données numériques, ce qui simplifie l’intégration avec des plateformes comme le Raspberry Pi Pico.

Voici les différentes pins du capteur DHT11 :

  • Signal : Permet d’envoyer la valeur à la Raspberry PICO
  • Vcc : La tension d’alimentation (5V)
  • GND : La masse

Pour pouvoir compiler les programmes faisant fonctionner le capteur de température, vous allez avoir besoin de la librairie DHT11 pour ESP32.

Pour cela dans Arduino IDE, cliquez sur Gestionnaire de librairie puis rechercher la librairie suivante :  

#include <DHT.h>  // Inclure la bibliothèque DHT

// Définir la broche à laquelle le capteur est connecté
#define DHTPIN 23     // Broche GPIO23
#define DHTTYPE DHT11 // Définir le type de capteur DHT (ici DHT11)

DHT dht(DHTPIN, DHTTYPE);  // Créer un objet DHT

void setup() {
  Serial.begin(115200);  // Initialiser la communication série pour afficher les résultats
  dht.begin();  // Initialiser le capteur DHT
}

void loop() {
  // Attendre 2 secondes entre chaque lecture
  delay(2000);

  // Lire l'humidité et la température
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();  // Lire la température en degrés Celsius
  
  // Vérifier si la lecture a échoué et recommencer
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Erreur de lecture du capteur DHT");
    return;
  }

  // Afficher les valeurs lues sur le moniteur série
  Serial.print("Température: ");
  Serial.print(temperature);
  Serial.print(" °C\t");
  Serial.print("Humidité: ");
  Serial.print(humidity);
  Serial.println(" %");
}

 

Voici l’affichage de la température ainsi que l’humidité sur le moniteur série :