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).
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.
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”
Il suffit ensuite de rechercher et d’ajouter 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.
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.
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 🙂
bonjour, tous fonctionne parfaitement sauf que a la place d’afficher la temperature et l’humidetée cela affichge juste non quelqu’un pourrait nous aider svp??????
Cela n’affiche pas “nan” plutôt ?
Na invullen van de gegevens zoals beschreven in tutoduino temperatuur en vochtigheids uitlening na verifiëren en uploaden geen foutmelding maar op lcd geen uitlezing
Pouvez-vous être plus précis sur l’erreur que vous rencontrez ?
Bonjour,
La librairie d’Adafruit est-elle disponible quelque part ou faut-il leur acheter le DHT pour qu’ils nous la fournissent ? Bravo et merci pour ce tuto !
La librairie Adafruit est bien gratuite en effet.
Il suffit de rajouter cette librairie via le menu “Croquis->Inclure une bibliothèque->Gérer les bibliothèques”
Il faut installer la librairie Adafruit unified sensor
Merci beaucoup mes cher frère s