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