Bonjour ! Dans cette vidéo je vais vous apprendre à utiliser un capteur de température/humidité. Je vais utiliser le DHT11, mais la méthode est compatible avec le DHT21 et DHT22. Allez voir mon site web pour voir le guide complet de la procédure !

Si vous ne possédez pas le matériel nécessaire, il est possible de l’acheter ici:

Arduino Mega avec câble USB inclu

Capteur DHT11 (peu dispendieux, mais peu précis)

Capteur DHT22 (un peu plus dispendieux, plus précis)

Afficheur LCD 16×2

Potentiomètre 10k (kit de 5 potentiomètres)

Ensemble de breadboard avec fils et alimentation

Téléchargez et installez les bibliothèques suivantes:

Faites le montage de l’écran LCD et du capteur de température/humidité

https://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay

Programmez l’Arduino avec le code suivant:

//Créé par TD72PRO
//http://www.TD72PRO.com

//Basé sur les codes d'exemple des bibliothèques "LiquidCrystal" et "DHT Sensor Library"

// Dépend des bibliothèques suivantes:
// - Adafruit Unified Sensor Library: https://github.com/adafruit/Adafruit_Sensor
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Liquid Crystal (vient avec l'IDE Arduino)

//Bibliothèques pour le capteur température/humidité
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

//Pin du capteur
#define DHTPIN 7

// La bibliothèque DHT Sensor est compatible avec différentes sortes de capteurs, décommentez votre capteur
#define DHTTYPE           DHT11     // DHT 11 
//#define DHTTYPE           DHT22     // DHT 22 (AM2302)
//#define DHTTYPE           DHT21     // DHT 21 (AM2301)

//Création de l'objet dht avec le bon type et la bonne pin
DHT_Unified dht(DHTPIN, DHTTYPE);

//Déclaration de la variable de délais nécessaire entre les lectures (spécifique au capteur)
uint32_t delayMS;

//Bibliothèque de l'écran LCD
#include <LiquidCrystal.h>

//Déclaration des pins de l'écran LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
    //Initialisation du capteur
    dht.begin();
    
    //Déclaration de la variable sensor et création du lien entre l'objet dht et l'adresse du capteur
    sensor_t sensor;
    dht.temperature().getSensor(&sensor);
    dht.humidity().getSensor(&sensor);
    
    //Attribution du délais nécessaire entre chaque lectures à la variable delayMS
    delayMS = sensor.min_delay / 1000;
    
    //Initialisation de l'écran LCD
    lcd.begin(16, 2);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Tutoriel par:");
    lcd.setCursor(0,1);
    lcd.print("WWW.TD72PRO.COM");
    delay(3000);
}

void loop()
{
    //Délais entre les mesures
    delay(delayMS);
    
    //Creation de la variable event dans laquelle on met la valeur reçu à partir du capteur
    sensors_event_t event;  
    dht.temperature().getEvent(&event);
    
    if (isnan(event.temperature))
    {
        //Si la valeur lue n'est pas un nombre
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("Erreur...");
        lcd.print(0,1);
        lcd.print("#Temperature");
    }
    else
    {
        //Si la valeur lue est un nombre
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("Temperature: ");
        lcd.setCursor(0,1);
        lcd.print(event.temperature);
        lcd.setCursor(6,1);
        lcd.print("*C");
    }
    
    //Délais entre les mesures
    delay(delayMS);
    
    //On met la valeur reçu à partir du capteur dans la variable event
    dht.humidity().getEvent(&event);
    if (isnan(event.relative_humidity))
    {
        //Si la valeur lue n'est pas un nombre
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("Erreur...");
        lcd.setCursor(0,1);
        lcd.print("#Humidite");;
    }
    else
    {
        //Si la valeur lue est un nombre
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("Humidite: ");
        lcd.setCursor(0,1);
        lcd.print(event.relative_humidity);
        lcd.setCursor(6,1);
        lcd.print("%");
    }
}

Et voilà c’est terminé 😀 Bravo !