Introduction

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

Schéma du circuit

Programmation

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

C’est un dossier en .zip, donc pour l’installer, vous devez aller dans sketch, puis include library et add .zip library. Vous pouvez retrouver plus d’explication sur notre cours sur les librairies.

Voici le programme pour faire fonctionner le capteur DHT11 : 

#include <DHT.h>

// Définir la broche du capteur DHT11
#define DHTPIN 11      // GPIO11 de la Raspberry Pi Pico

// Définir le type de capteur (DHT11)
#define DHTTYPE DHT11

// Initialiser l'objet DHT
DHT dht(DHTPIN, DHTTYPE);

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

void loop() {
  // Attendre avant de lire de nouvelles valeurs
  delay(2000);  // Délai de 2 secondes

  // Lire l'humidité
  float humidity = dht.readHumidity();
  // Lire la température en Celsius
  float temperature = dht.readTemperature();

  // Vérifier si les lectures ont échoué et afficher un message d'erreur
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Échec de la lecture du capteur DHT11 !");
    return;
  }

  // Afficher les valeurs 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 :