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)
Potentiomètre 10k (kit de 5 potentiomètres)
Ensemble de breadboard avec fils et alimentation
Téléchargez et installez les bibliothèques suivantes:
- Adafruit Unified Sensor Library: https://github.com/adafruit/Adafruit_Sensor
- DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
Faites le montage de l’écran LCD et du capteur de température/humidité


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("%");
}
}
