Utilisation d'un capteur de température et d'humidité DHT22 (DHT11)

Capteur DHT22

Retrouvez le tutoriel en video sur Youtube

Introduction


Dans ce tutoriel, nous allons apprendre à utiliser le capteur DHT22 à l'aide d'un microcontrôleur de type UNO.
 
Le but final, sera d'afficher sur le moniteur série de l'IDE ARDUINO la valeur de la température en °C, et la valeur de l'humidité en % de l'endroit ou se trouve le capteur.
 
POUR ALLER PLUS LOIN : Activation d'une sortie (relais pour notre exemple) à une température prédéfinie.(fonctionnement d'un thermostat)

1/ Le matériel

- Une carte Arduino© UNO                                                                                             
- Une bread board
 
- Une résistance de 4.7 kΩ
 
- Quelques fils de connexion
 
- Le capteur DHT22














2/ Le schéma

- Connecter la PIN 1 du capteur (en partant de la gauche) au +5V de l'ARDUINO©.
 
- Relier à la PIN 2 du capteur, la résistance de 4.7 kΩ
au port digital n°2 de l'ARDUINO©.
 
- Pour finir la PIN n°4 du capteur brancher à la masse (GND) de la carte.
 







3/ Le programme

 
/*Tutoriel sur le capteur de température et d'humidité DHT22. Le capteur est disponible sur notre site internet www.ihm3d.com */
 
#include "DHT.h"//bibliothéque
#define DHTPIN 2 // connexion de la pin digital du capteur sur la broche n°2
#define DHTTYPE DHT22   // on appelle le capteur dht22 dans la bibliothèque

//#define DHTTYPE DHT11 // Pour fonctionner avec le capteur DHT 11  
 
DHT dht(DHTPIN, DHTTYPE);
 
 
void setup() {
 
  Serial.begin(9600); //définition de la vitesse du port
 
  Serial.println("Bienvenu sur les TUTORIELS d'IHM 3D");
 
  dht.begin();
}
 
void loop() {
 
  // attente d'1 seconde entre chaque mesure une fois la boucle revenue au début
  delay(1000);
 
  float h = dht.readHumidity();//lecture de l'humidité.
 
  float t = dht.readTemperature();//lecture de la température en degrés Celsius.
 
  // Si la lecture ne s'effectue pas
 
  if (isnan(h) || isnan(t)) {
  Serial.println ("Probleme de lecture, verifier votre systeme");
    return;
  }
 
  Serial.print("Humidite: ");
  Serial.print(h);
  Serial.println (" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println (" *C ");
 
}
/***************FIN DU PROGRAMME*******************/.

4/ Résultat final

5/ Pour aller plus loin


IHM-3D vous proposes un fonctionnement simple d'un thermostat réglable à l'aide d'un potentiomètre. Réglez la température que vous souhaitez avec ce dernier. Lorsque la température est inférieure à la valeur réglée, un relais s'active (nous pouvons imaginer soit l'allumage d'un chauffage ou à l'inverse, le départ d'un fonctionnement de ventilateur).

5.1/ Le matériel

Il faudra rajouter un relais qui s'alimente en 5V et un potentiomètre de 10kΩ. Sinon, tout le reste vu précédemment sera nécessaire.









5.2/ Le schéma

- Pour le potentiomètre:
La pin de gauche relier à la masse du microcontrôleur.
La pin du milieu connecter à la broche ANALOGIQUE A0 de la carte.
La pin de droite au 5V de la carte.
 
- Pour le relais:
Le relais possède une bobine et 2 contacts: "Normalement ouvert" et "Normalement fermé".
Relié l'alimentation de la bobine à la sortie 10 de l'ARDUINO© et la seconde broche à la masse.
 
Il restera plus qu'a connecter la phase de l'appareil que vous souhaitez commander.


Attention

 J'utilise une carte relais qui est composé d'une résistance et d'un transistor. Les cartes sont disponibles sur notre site.

5.3/ Le programme

/*Tutoriel sur le capteur de température et d'humidité DHT22. Le capteur est disponible sur notre site internet www.ihm3d.com */
 
#include "DHT.h"
#define DHTPIN 2 // connexion de la pin digital du capteur sur la broche n°2
#define DHTTYPE DHT22   // on appelle le capteur dht22 dans la bibliothèque
//#define DHTTYPE DHT11 // Pour fonctionner avec le capteur DHT 11  


DHT dht(DHTPIN, DHTTYPE);
 
int RELAIS = 10; // déclaration de la PIN 10 pour le relais
 
int THERMO = A0;// déclaration du potentiomètre
 
void setup() {
 
  Serial.begin(9600); //définition de la vitesse du port
 
  pinMode (THERMO, INPUT);
  pinMode (RELAIS, OUTPUT);
 
  Serial.println("Bienvenue sur les TUTORIELS d'IHM 3D");
 
  dht.begin();
}
void loop() {
  // attente de 1 seconde entre chaque mesure une fois la boucle revenue au début
 
  delay(1000);
 
  /**************************PARTIE SONDE*******************************/
 
  float h = dht.readHumidity();//lecture de l'humidité.
 
  float t = dht.readTemperature();//lecture de la température en degrés Celsius.
 
 
  // Si la lecture ne s'effectue pas
  if (isnan(h) || isnan(t)) {
   
    Serial.println("Probleme de lecture, verifier votre systeme");
    return;
  }
  /*****************PARTIE THERMOSTAT ET RELAIS**************************/
 
  float VALTHERMO = (THERMO / 6.388888888889);// conversion valeur thermostat--> temperature
 
VALTHERMO = analogRead(THERMO); //lit la valeur la valeur du potentiomètre et la stocke dans la variable (VALTHERMO)
VALTHERMO = map(VALTHERMO, 0, 1023, - 10, 40); //conversion grâce au mappage de la valeur du potentiométre pour 0 = -10 degres et 1023 = 40 degrés.
  if (t <= VALTHERMO)// si la température est inférieur ou égale à ma valeur stockée
  {
    digitalWrite (RELAIS, 1);//alors j'allume le relais pour mon chauffage
  }
  else
  {
    digitalWrite (RELAIS, 0);
  }
  delay (500);
 
  Serial.println("");
  Serial.println("");
  Serial.println ("VALEUR DU THERMOSTAT");
  Serial.print ("THERMOSTAT REGLE A ");
  Serial.print (VALTHERMO);
  Serial.println (" DEGRES ");
  Serial.println("");
  Serial.println("");
 
  Serial.print("Humidite: ");
  Serial.print(h);
  Serial.println(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println(" DEGRES ");
}
/***************FIN DU PROGRAMME*******************/

5.4/ Le résultat final

La valeur réglée du thermostat est 24 DEGRES.
De ce fait, le relais est activé. Il se désactivera lorsque la température de la pièce aura atteint 24 degrés. (actuellement à 23.80)

La valeur réglée du thermostat est 19 DEGRES.
De ce fait, le relais est désactivé. Il s'activera lorsque la température de la pièce sera inférieur à 19 degrés. (actuellement à 23.80).

Conclusion

Ce document tutoriel est maintenant terminé. N'hésitez pas à parcourir le site d'IHM-3D et de découvrir ses activités, de regarder le fonctionnement en vidéo sur la chaîne Youtube© de l'entreprise et de poser vos questions à l'adresse située en pied de page ou de demander un devis sur le site internet pour y intégrer une IHM comme la suivante.

Vous voulez aller encore plus loin?

Voici une interface homme-machine simplifiée et développée pour WINDOWS© en mettant en application le chapitre précédent:

Module relais interface 5Volts

2.55 €
Ce module relais interfacé permet de commuter des tensions plus élevées à partir de la tension de commande du microcontrôleur de 5 Vcc. Pouvoir de coupure: 10 A/ 240 Vac ou 28 Vcc / 10A.

Plus...

Capteur de température et d'humidité DHT11

2.19 €
Capteur de température et d'humidité pour le connecter à votre micro-contrôleur. Faible consommation d'énergie.

Plus...

Capteur de température et d'humidité DHT22

5.30 €
Le capteur DHT22 regroupe deux fonctions: la température et l'humidité. Plus précis que son confrère le DHT11.

Plus...