Mesure hygrométrie & température avec un DHT22

Introduction :

Dans cet article nous allons voir commet mesurer simplement la température et l’hygrométrie avec une sonde DHT22 que l’on peut voir ci-dessous :

dht22_brochage

Ses caractéristiques sont les suivantes :

  • Supporte une alimentation et des signaux de 3.3 V ou 5 V,
  • Consommation maximale de 2.5mA (lors de la mesure),
  • Plage température : 0-100% d’humidité avec une précision de 2-5%,
  • Plage hygrométrie : -40 à 80°C avec une précision de 0.5°C,
  • Fréquence maximale d’échantillonnage : 0.5Hz (une fois toutes les 2 secondes).

 

Montage

Celui-ci est très simple. On relie les pattes de la sonde DHT22 comme indiqué ci-dessous :

  • la patte 1 (à gauche de la sonde) au 5 Volts,
  • la patte 2 a l’entrée numérique de votre choix (7 dans cet article) de l’Arduino ainsi qu’au + 5 V via une résistance de rappel de 4,7 k ohms,
  • la patte 3 n’est pas utilisée,
  • la patte 4 (à droite) à la masse.

phmo_arduino_dht22_schema

 

Code

Il faut dans un premier temps ajouter une bibliothèque spécifique prenant en charge les sondes DHT.

Pour cela, il suffit avec l’IDE Arduino d’aller dans le menu « Croquis / Inclure une bibliothèque/ Gérer les bibliothèques« . Il faut ensuite taper dans la zone de recherche DHT. Deux bibliothèques disponibles apparaissent, vous pouvez sélectionner une de deux puis demander son installation comme on peut le voir ci-dessous :

phmo_arduino_dht22_bib

Le code utilisé pour tester est le suivant :

/* 
Objet : Mesure temperature et hygrometrie avec un capteur dht22
Nom : phmo_temp_humi_dht22.ino
Infos sketch : 
 - Créé le 10 jan 2017
*/

#include "DHT.h" // ajout de la bibliothèque DHT

#define DHTPIN 7        // patte de l'arduino sur laquelle se fait la mesure
#define DHTTYPE DHT22   // type de sonde

DHT dht(DHTPIN, DHTTYPE); // instanciation objet dht

void setup() {
Serial.begin(9600); // ouverture connexion serie
Serial.println("Tets DHT22 ----------------------");  //

dht.begin(); 
}

void loop() {

float h = dht.readHumidity();    // lecture humidité et affectation a une variable de type float
float t = dht.readTemperature(); // lecture température et affectation a une variable de type float

// test si retour sonde dht2  ok ou pas ...
if (isnan(t) || isnan(h)) {
Serial.println("Erreur de lecture sonde dht22");
} else {
//affichage des donnees sur la console serie
Serial.print("Humidite : " ); 
Serial.print(h);
Serial.print( " %\t ");
Serial.print(" Temperature : " );
Serial.print(t);
Serial.println(" C ");
delay(1000); // attente de 1 seconde avant de refaire une mesure
}

}

Le code est disponible sous GitHub à l’adresse https://github.com/pmottier53/Arduino/tree/master/dht22

Résultats

Les résultats obtenus dans la console série sont les suivants :

phmo_arduino_dht22_results

Publicités

4 réflexions au sujet de « Mesure hygrométrie & température avec un DHT22 »

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s