Le DHT11 est un capteur économique et populaire utilisé pour mesurer la température et l’humidité dans divers projets électroniques.
Le DHT11 est un capteur numérique qui communique avec le microcontrôleur via un seul fil de données (en mode “one-wire”).
Il peut mesurer des températures allant de 0 à 50°C avec une précision de ±2°C et des niveaux d’humidité compris entre 20 et 80 % avec une précision de ±5 % RH (humidité relative).
Le capteur renvoie ces valeurs sous forme de données numériques, ce qui simplifie l’intégration avec des plateformes comme le Raspberry Pi Pico.
Voici les différentes pins du capteur DHT11 :
Signal : Permet d’envoyer la valeur à la Raspberry PICO
Vcc : La tension d’alimentation (5V)
GND : La masse
Schéma du circuit
Programmation
Pour pouvoir compiler les programmes faisant fonctionner le capteur de température, vous allez avoir besoin de la librairie DHT11.
C’est un dossier en .zip, donc pour l’installer, vous devez aller dans sketch, puis include library et add .zip library. Vous pouvez retrouver plus d’explication sur notre cours sur les librairies.
Voici le programme pour faire fonctionner le capteur DHT11 :
#include <DHT.h>// Définir la broche du capteur DHT11
#define DHTPIN 11// GPIO11 de la Raspberry Pi Pico// Définir le type de capteur (DHT11)
#define DHTTYPE DHT11
// Initialiser l'objet DHTDHTdht(DHTPIN, DHTTYPE);voidsetup(){// Initialisation de la communication série pour afficher les résultatsSerial.begin(9600);// Initialiser le capteur DHT11
dht.begin();}voidloop(){// Attendre avant de lire de nouvelles valeursdelay(2000);// Délai de 2 secondes// Lire l'humiditéfloat humidity = dht.readHumidity();// Lire la température en Celsiusfloat temperature = dht.readTemperature();// Vérifier si les lectures ont échoué et afficher un message d'erreurif(isnan(humidity)||isnan(temperature)){Serial.println("Échec de la lecture du capteur DHT11 !");return;}// Afficher les valeurs sur le moniteur sérieSerial.print("Température: ");Serial.print(temperature);Serial.print(" °C\t");Serial.print("Humidité: ");Serial.print(humidity);Serial.println(" %");}
Voici l’affichage de la température ainsi que l’humidité sur le moniteur série :