Aller au contenu


Photo
- - - - -

DHT22, Capteur de température et d'hygrométrie

dht22 capteur temperature humidite meteo

2 réponses à ce sujet

#1 Jekert

Jekert

    Auteur

  • Modérateur
  • PipPip
  • 214 messages
  • Gender:Male

Posté 17 mai 2019 - 04:37

Bonjour à tous,
 
Je vais vous présenter aujourd'hui le DHT22, un capteur de température et d'hygrométrie répandu très utile pour construire une petite station météo.

 

La datasheet fournie par Adafruit est disponible ici et en pièce jointe. Celle-ci indique que les capacités suivantes pour le capteur :

 

opera_2019-05-17_17-31-08.png

 

 

Quelques liens utiles :

J'avais déjà écrit rapidement une page (pour un ouvrage qui n'a pas encore été publié) sur l'utilisation de ce capteur, donc j'ai ressayé mes programmes avec ce montage (la résistance de pull-up est de 10k ohms):

 

Fritzing_2019-05-17_17-14-48.png
 

Ce programme permet d'afficher les valeurs de température et le pourcentage d'humidité dans l'air sur l'interface Série d'Arduino IDE :

//Bibliothèque :
#include "DHT.h"

//Déclaration du DHT22:
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  //Initialisation de la liaison Série :
  Serial.begin(9600);
  Serial.println("Test du DHT22");

  //Initialisation du capteur :
  dht.begin();
}

void loop() {
  //Lecture des données :
  float h = dht.readHumidity(); //Lis le taux d'humidité
  float t = dht.readTemperature(); //Lis la température en Celsius

  //Affichage des valeurs :
  Serial.print("Humidite: ");
  Serial.print(h);
  Serial.print("% | Temperature: ");
  Serial.print(t);
  Serial.println(" degres celsius");

  //Temporisation :
  delay(2000);
}

javaw_2019-05-17_17-11-10.png
 

Puis j'ai modifié un peu ce programme pour utiliser la fonction de Traceur Série d'Arduino pour afficher de belles courbes :
 

//Bibliothèque :
#include "DHT.h"

//Déclaration du DHT22:
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  //Initialisation de la liaison Série :
  Serial.begin(9600);
  //Serial.println("Test du DHT22");

  //Initialisation du capteur :
  dht.begin();
}

void loop() {
  //Lecture des données :
  float h = dht.readHumidity(); //Lis le taux d'humidité
  float t = dht.readTemperature(); //Lis la température en Celsius

  //Affichage des valeurs :
  Serial.print(h);
  Serial.print(" ");
  Serial.println(t);

  //Temporisation :
  delay(2000);
}



La température est représentée en rouge et l'humidité en bleu. On peut voir un pic quand je m'approche du capteur et un retour à la normal ensuite (il est très sensible aux mouvements d'air):

 

javaw_2019-05-17_16-45-32.png

 

 

Et enfin, j'ai fait un petit test avec un écran LCD 1602 contrôlé en I2C :

 

SAM_2718-1200x900.jpg

DHT22LCD-1200x646.png

La résistance de pullup est toujours une 10k ohms.

//Bibliothèques :
#include "DHT.h"
#include "Wire.h"
#include "LiquidCrystal_I2C.h"

//Ecran LCD :
LiquidCrystal_I2C lcd(0x3F, 2, 1 , 0, 4, 5, 6, 7, 3, POSITIVE); //Seul le premier paramètre, l'adresse I2C de l'écran, est à modifier

//Déclaration du DHT22:
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

//Création du symbole symbole degrès :
byte degres[8] = { B00111, 
                    B00101, 
                    B00111, 
                    B00000, 
                    B00000, 
                    B00000, 
                    B00000, 
                    B00000 };
uint8_t deg = 0;

void setup() {
  //Initialisation du capteur :
  dht.begin();

  //Initialisation de l'écran :
  lcd.begin(16,2);
  lcd.backlight();

  //Ajout du caractère :
  lcd.createChar(deg, degres);
}

void loop() {
  //Lecture des données :
  float h = dht.readHumidity(); //Lis le taux d'humidité
  float t = dht.readTemperature(); //Lis la température en Celsius

  //Affichage des valeurs :
  lcd.clear();
  lcd.home();
  lcd.print("Humidite: ");
  lcd.print(h);
  lcd.print("%");
  lcd.setCursor(0,1);
  lcd.print("Temp :");
  lcd.print(t);
  lcd.write(deg);
  lcd.print("C");

  //Temporisation :
  delay(2000);
}


#2 Amhnemus

Amhnemus

    Membre passionné

  • Membres
  • PipPipPip
  • 588 messages
  • Gender:Male
  • Location:Montigny-le-bretonneux

Posté 17 mai 2019 - 06:13

Très beau post ;)
1ère place Robot Warrior 2019 humanoïdes autonome

#3 Jekert

Jekert

    Auteur

  • Modérateur
  • PipPip
  • 214 messages
  • Gender:Male

Posté 19 mai 2019 - 02:43

Très beau post ;)

Merci  :)





Répondre à ce sujet



  



0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users