Aller au contenu
Drones

Le capteur de température (DHT11)

1. Le composant : Le capteur DHT11

Le DHT11 est un capteur numérique qui permet de mesurer deux données : la température et le taux d'humidité de l'air. Contrairement au potentiomètre qui envoie une tension analogique brute, le DHT11 communique des informations déjà traitées sous forme de données numériques.

Le branchement : Il possède 3 broches.

  • GND : À relier à la masse.

  • VCC (5V) : À relier à l'alimentation.

  • DATA : C'est la broche de signal. Nous la brancherons sur la broche numérique 4 de l'Arduino.

2. Utiliser une Librairie (Bibliothèque)

L'Arduino est une machine capable de beaucoup de choses, mais il ne sait pas nativement "décoder" le signal complexe du DHT11. Pour lui apprendre, on utilise une librairie.

C'est quoi une librairie ?

Imagine que tu achètes un meuble en kit. La librairie, c'est la notice de montage. C'est un bloc de code écrit par des experts qui contient toutes les fonctions prêtes à l'emploi. On l'importe pour s'éviter de réécrire des centaines de lignes de calculs compliqués.

Installation :

  1. Allez dans le menu Outils > Gérer les bibliothèques.

  2. Recherchez "DHT sensor library" (choisissez celle d'Adafruit).

  3. Cliquez sur Installer.

3. Configuration du code

Avant d'écrire nos instructions, il faut dire à l'Arduino d'aller lire cette "notice". On ajoute une ligne tout en haut de notre fichier, avant même le setup.

#include "DHT.h" // On importe la bibliothèque pour gérer le capteur

const int pinCapteur = 4;   // On définit le numéro de la broche (fixe)
DHT dht(pinCapteur, DHT11); // On initialise le capteur sur le pin 4 avec le modèle DHT11

void setup() {
  // Les configurations initiales iront ici
}

void loop() {
  // La boucle du programme principal ira ici
}

Pourquoi cette ligne #include ? Elle permet de copier-coller virtuellement tout le code de la bibliothèque dans notre programme. Sans elle, l'ordinateur ne comprendrait pas ce que signifie l'objet dht.

4. Initialisation et Lecture

Pour que le capteur s'active, on doit le "réveiller" dans le setup(). Ensuite, on récupère les données dans des variables de type float.

Le type Float : Jusqu'ici, nous utilisions int pour les nombres entiers (1, 2, 10). Mais la température est précise : il peut faire 22,5°C. Le type float est indispensable car il permet de stocker ces nombres à virgule.

void setup() {
  dht.begin(); // On lance la communication avec le capteur
}

void loop() {
  // On crée deux variables pour stocker les mesures
  float humiditee = dht.readHumidity();
  float temperature = dht.readTemperature();
  
  // Note : Le DHT11 est lent, on doit attendre au moins 2 secondes entre chaque lecture
  delay(2000); 
}

5. Le Moniteur Série (L'espion de l'Arduino)

L'Arduino n'a pas d'écran pour nous montrer ce qu'il lit. Pour voir les résultats, on utilise le Moniteur Série (accessible via la petite loupe en haut à droite de votre logiciel). C'est un canal de discussion entre l'Arduino et votre ordinateur.

  • Configuration : Dans le setup(), on écrit Serial.begin(9600);. Cela définit la vitesse de discussion.

  • Affichage :

    • Serial.print() : Affiche du texte ou une valeur sur la même ligne.

    • Serial.println() : Affiche et saute une ligne (Ligne Nouvelle).

Exemple d'affichage :

void setup() {
    Serial.begin(9600);
    // le reste du setup
    // ...
}

void loop() {
    // La lecture des données du capteur ici
    // ...

    // Ecrire dans le moniteur
    Serial.print("Temp: ");
    Serial.print(temperature);
    Serial.print("°C | Humidite: ");
    Serial.print(humiditee);
    Serial.println("%");
}

6. Exercices pratiques

Niveau 1 : Alerte Humidité 💧

Objectif : Construire un circuit avec une LED sur la broche 13. Le programme doit allumer la LED si le taux d'humidité lu par le DHT11 dépasse 50%.

  • Indice : Utilisez une condition if (humiditee > 50.0).

Niveau 2 : Le Thermostat Manuel 🌡️

Objectif : On veut pouvoir régler la température d'alerte sans changer le code.

  1. Branchez un potentiomètre sur l'entrée A0.

  2. Dans le code, lisez la valeur du potentiomètre (0-1023).

  3. Utilisez la fonction map() pour transformer cette valeur en une échelle de température allant de 0 à 50°C. Cela devient votre "seuil".

  4. Si la température mesurée par le DHT11 est supérieure à ce seuil, la LED s'allume.