Capteur de température et d’humidité

4.3
(107)

Dans ce tuto nous allons voir comment utiliser le capteur de température et d’humidité DHT11 avec un Arduino. Ce tuto est accessible aux débutants.

Le capteur DHT11

Le capteur DHT11 mesure la température et l’humidité. L’utilisation de ce type de capteur est intéressante pour un débutant car il permet de mesurer une grandeur physique accessible à tous.

Le capteur DHT11 a 4 broches, mais il est souvent vendu sur une carte support qui possède 3 broches. Il communique avec l’Arduino très simplement au travers d’une de ses entrées numériques. Les 2 autres broches sont pour son alimentation 5 V et la masse (GND).

DHT11
Module DHT11

Le montage

Le montage est très simple, il suffit de câbler le 5 V de l’Arduino Uno sur la broche 5 V, la masse de l’Arduino Uno sur la broche GND et la broche DATA du capteur sur la broche numérique 2 de l’Arduino Uno par exemple.

schéma-dht11
Câblage du module DHT11 sur l’Arduino Uno

La librairie “DHT sensor library”

Afin d’ajouter une librairie à l’IDE Arduino, il faut aller dans le menu “Outils->Gérer les bibliothèques”

Ouverture du menu de gestion des librairies

Il suffit ensuite de rechercher et d’ajouter la librairie “DHT sensor library” de Adafruit.

Ajout de la librairie “DHT sensor library” de Adafruit

Le croquis

Le croquis (programme) de l’Arduino est très simple grâce à cette librairie “DHT sensor library”.

// Capteur de temperature et d'humidite DHT11
// https://tutoduino.fr/
// Copyleft 2020
#include "DHT.h"
// Definit la broche de l'Arduino sur laquelle la 
// broche DATA du capteur est reliee 
#define DHTPIN 2
// Definit le type de capteur utilise
#define DHTTYPE DHT11
// Declare un objet de type DHT
// Il faut passer en parametre du constructeur 
// de l'objet la broche et le type de capteur
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(9600);
  
  // Initialise la capteur DHT11
  dht.begin();
}
void loop() {
  // Recupere la temperature et l'humidite du capteur et l'affiche
  // sur le moniteur serie
  Serial.println("Temperature = " + String(dht.readTemperature())+" °C");
  Serial.println("Humidite = " + String(dht.readHumidity())+" %");
  // Attend 10 secondes avant de reboucler
  delay(10000);
}

L’affichage de la température et de l’humidité se fait sur le moniteur série de l’Arduino.

affichage sur l'arduino de la température
Affichage de la température et de l’humidité sur le moniteur série

Le capteur DHT22

Le capteur DHT22 est très similaire au DHT11, mais il offre une meilleur précision de mesure (± 0,5 °C) et il peut être alimenté avec une tension de 3.3V ou 5V.

Il faut faire attention car le câblage du module DHT22 est différent du DHT11. Les broches GND et DATA sont inversées sur ces deux modules.

Module DHT22
DHT22
Montage du DHT22 sur ma breadboard

Sinon la programmation est identique, il suffit de changer la partie du code :

#define DHTTYPE DHT11

en :

#define DHTTYPE DHT22

Étalonner le capteur de température

J’ai remarqué que l’étalonnage des capteurs était souvent assez mauvais, il peut-être utile d’utiliser un thermomètre de référence et d’appliquer une correction à la mesure retournée par le capteur. L’utilisation d’une variable dédiée permettra de modifier facilement cette valeur étalonnage d’un capteur à l’autre. D’ailleur il ne s’agit pas d’une variable mais d’un #define car il permet d’économiser de la mémoire sur l’Arduino par rapport à l’utilisation d’une variable.

// Capteur de temperature et d'humidite DHT22
// https://tutoduino.fr/
// Copyleft 2020
#include "DHT.h"
// Definit la broche de l'Arduino sur laquelle la 
// broche DATA du capteur est reliee 
#define DHTPIN 2
// Definit le type de capteur utilise
#define DHTTYPE DHT22
// Constante mesuree avec un thermometre de reference
// qui sert a etalonner le capteur de temperature
#define DELTA_TEMPERATURE 0.7
// Declare un objet de type DHT
// Il faut passer en parametre du constructeur 
// de l'objet la broche et le type de capteur
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(9600);
  
  // Initialise la capteur DHT11
  dht.begin();
}
void loop() {
  // Recupere la temperature et l'humidite du capteur et l'affiche
  // sur le moniteur serie
  Serial.println("Temperature = " + String(dht.readTemperature() - DELTA_TEMPERATURE)+" °C");
  Serial.println("Humidite = " + String(dht.readHumidity())+" %");
  // Attend 10 secondes avant de reboucler
  delay(1000);
}

Pour aller (beaucoup) plus loin

Si vous souhaitez utiliser ce capteur dans un projet réel, je vous invite à jeter un œil à mon tuto “Capteur de température et d’humidité sans fil”.

J’espère que ce tuto vous aura intéressé. N’hésitez pas à donner votre avis en cliquant sur les étoiles ci-dessous. Je ne suis pas rémunéré au nombre d’étoiles mais c’est important pour moi afin de vérifier que mon travail est utile aux autres 🙂

Votre avis compte !

Note moyenne : 4.3 / 5. Nombre de votes : 107

Pas encore de vote pour ce tutoriel

Désolé si cet article ne vous a pas intéressé

Merci de commenter afin que je puisse l’améliorer.

Dites-moi comment améliorer cette page.