2- Principe de fonctionnement du capteur DHT11
L’objectif de ce tutoriel est d’apprendre à mesurer la température et l’humidité de l’air en utilisant le capteur DHT11 connecté à la carte ESP8266 NodeMCU.
À travers ce projet, nous allons comprendre comment le capteur DHT11 fonctionne, comment le relier à la carte ESP8266 via les broches de données et comment programmer cette carte pour lire les valeurs mesurées par le capteur.
Les données de température et d’humidité seront affichées directement sur le moniteur série (ou sur un écran LCD I2C si disponible).
Ce tutoriel permettra donc de :
- découvrir le principe de fonctionnement du capteur DHT11.
- apprendre à connecter correctement le DHT11 à la carte ESP8266 NodeMCU.
- écrire un programme en MicroPython pour lire et afficher les données mesurées.
- comprendre comment exploiter ces valeurs dans des applications IoT, telles qu’une station météo connectée ou un système de surveillance d’environnement.
Le DHT11 est un capteur numérique capable de mesurer la température et l’humidité relative de l’air. Il est largement utilisé dans les projets électroniques et IoT pour sa simplicité d’utilisation et son faible coût.
1. Structure du capteur
Le capteur DHT11 est composé de deux éléments principaux :
Un capteur d’humidité de type capacitif : il mesure l’humidité relative de l’air.
Une thermistance (résistance dépendant de la température) : elle mesure la température ambiante.
Ces deux composants sont reliés à un microcontrôleur interne intégré dans le module DHT11, qui se charge de convertir les valeurs analogiques en données numériques prêtes à être envoyées vers la carte (comme l’ESP8266 NodeMCU).
2. Mesure de l’humidité
Le capteur d’humidité contient deux électrodes entourant un matériau polymère conducteur.
Lorsque le taux d’humidité de l’air change, la quantité d’eau absorbée par le polymère varie, ce qui modifie sa capacité électrique.
Cette variation de capacité est convertie en un signal numérique représentant le pourcentage d’humidité relative (en %RH).
3. Mesure de la température
La thermistance interne change de résistance selon la température de l’air.
Cette variation est détectée par le microcontrôleur du DHT11, qui calcule la température en degrés Celsius (°C).
4. Communication avec la carte ESP8266 NodeMCU
Le DHT11 envoie les données numériques (température et humidité) via une seule broche de données (Data).
La communication se fait selon un protocole de signal série spécifique à synchronisation par temporisation.
Après une requête envoyée par l’ESP8266, le DHT11 répond avec un paquet de 40 bits (5 octets) contenant les valeurs d’humidité, de température et un bit de vérification (checksum) pour garantir la fiabilité des données.
1- Carte ESP8266 NodeMCU
La carte ESP8266 NodeMCU est une carte de développement qui sert à lire les données de température et d’humidité fournies par le capteur DHT11, à les traiter et à les afficher sur un écran LCD I2C.
2- Écran LCD I2C 20x4
L’écran LCD 20x4 avec interface I2C permet d’afficher facilement les valeurs de température et d’humidité mesurées sans passer par le moniteur série.
3- Capteur DHT11
C’est le capteur principal qui capte les variations de température et d’humidité et envoie les valeurs numériques à la carte NodeMCU.
4- Plaque d’essai (Breadboard)
La breadboard est une plaque de prototypage utilisée pour réaliser les connexions sans soudure.
Elle permet de connecter facilement les broches du DHT11 à celles de la carte NodeMCU à l’aide de fils dupont.
5- Fils de connexion (Fils Dupont)
Les fils dupont sont utilisés pour relier les composants électroniques entre eux (VCC, GND, DATA).
On utilise des fils mâle-femelle ou mâle-mâle selon les besoins du montage.
Pour le Capteur DHT11 :
- Connecter la broche VCC(+) du DHT11 à 3V de la carte ESP8266
- Connecter la broche DATA du DHT11 à la broche D0 (GPIO16) de la carte ESP8266
- Connecter la broche GND(-) du DHT11 à la broche GND de la carte ESP8266
Pour l'Afficheur LCD I2C :
- Connecter la broche VCC de l'afficheur à 5V de la carte ESP8266
- Connecter la broche GND de l'afficheur à GND de la carte ESP8266
- Connecter la broche SDA de l'afficheur à la broche D2 (GPIO4) de la carte ESP8266
- Connecter la broche SCL de l'afficheur à la broche D1 (GPIO5) de la carte ESP8266
Voici un programme complet en MicroPython pour lire la température et l’humidité à l’aide du capteur DHT11 connecté à la carte ESP8266 NodeMCU :
Bibliothèques requises : i2c_lcd et lcd_api → pour afficher les informations sur l’écran LCD I2C.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import machine from machine import Pin, SoftI2C from time import sleep from lcd_api import LcdApi from i2c_lcd import I2cLcd import dht I2C_ADDR = 0x27 totalRows = 4 totalColumns = 20 # === Initialisation LCD I2C === i2c = SoftI2C(scl=Pin(5), sda=Pin(4), freq=10000) #initializing the I2C method for ESP8266 lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns) #lcd2 = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns) p16=Pin(16, Pin.IN) # Configuration du capteur DHT11 d=dht.DHT22(p16) lcd.clear() while True: d.measure() t=d.temperature() #read temperature h=d.humidity() #read humidity lcd.clear() lcd.move_to(0,0) lcd.putstr("temperature:"+str(int(t))+"C") lcd.move_to(0,1) lcd.putstr("humdidity:"+str(int(h))+"%") sleep(4) |
Explication du code :
1- Importation des modules :
- machine : permet de configurer les broches GPIO.
- dht : contient les fonctions pour communiquer avec le capteur DHT11.
- time : utilisé pour insérer des pauses entre les lectures.
2- Initialisation du capteur :
- Le DHT11 est branché sur la broche D0 (GPIO16) de la carte ESP8266.
- La ligne d = dht.DHT11(p16) crée un objet pour interagir avec le capteur.
3- Mesure et affichage :
- d.measure() lance une nouvelle mesure.
- d.temperature() lit la température en degrés Celsius.
- d.humidity() lit le taux d’humidité relative en pourcentage.
- lcd.putstr() affiche Les données l'écran LCD I2C.
- time.sleep(4) permet d’attendre 4 secondes entre deux mesures (le DHT11 ne supporte pas des lectures trop rapides).
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info