Tutoriel ESP32 28/55 - Capteur de température DHT11 avec LCD | Kit d'apprentissage IoT ESP32 de SunFounder
Dans ce tutoriel, nous allons explorer comment interfacer le capteur de température et d'humidité DHT11 avec le microcontrôleur ESP32. Avec cette configuration, nous allons mesurer la température et l'humidité ambiantes, en affichant les résultats à la fois sur le moniteur série et sur un écran LCD. De plus, nous mettrons en œuvre un buzzer qui s'active lorsque la température dépasse un certain seuil.
Ce projet démontre non seulement l'utilisation du capteur DHT11, mais met également en avant la polyvalence de l'ESP32, qui comprend des capacités Wi-Fi et Bluetooth intégrées. À la fin de ce tutoriel, vous disposerez d'une configuration opérationnelle qui surveille en continu les conditions environnementales et fournit des retours en temps réel.
Pour un guide visuel, consultez la vidéo accompagnant ce tutoriel (dans la vidéo à 00:00). Plongeons-nous !
Matériel expliqué
Les principaux composants utilisés dans ce projet sont le microcontrôleur ESP32, le capteur DHT11 et un écran LCD. L'ESP32 servira de cerveau à l'opération, traitant les données du capteur DHT11 et contrôlant la sortie LCD.
Le capteur DHT11 mesure l'humidité et la température, fournissant des lectures via une seule ligne de données. Il nécessite une alimentation de 3,3V à 5,5V et a une faible consommation de courant, ce qui le rend adapté aux applications alimentées par batterie. L'écran LCD affichera les valeurs de température et d'humidité en temps réel.
Détails de la fiche technique
| Fabricant | BOIS |
|---|---|
| Numéro de pièce | DHT11 |
| Tension logique/IO | 3,3 - 5,5 V |
| Tension d'alimentation | 3,3 V |
| Courant de sortie (par canal) | 0,5 mA typ. |
| Courant de crête (par canal) | 2,5 mA max. |
| Directives sur la fréquence PWM | N/A |
| Seuils de logique d'entrée | 0,3 VCC (bas), 0,7 VCC (haut) |
| Chute de tension / RDS(on)/ saturation | Non applicable |
| Limites thermiques | 0°C à 60°C |
| Paquet | DIP-4 |
| Notes / variantes | Résolution : 1°C / 1% HR |
- Utilisez une résistance de tirage (5 kΩ recommandé) sur la ligne de données.
- Gardez les fils du capteur courts (moins de 20 m) pour garantir des mesures précises.
- Alimentez le DHT11 avec 3,3 V pour des performances optimales.
- La période d'échantillonnage ne doit pas être inférieure à 1 seconde.
- Vérifiez les connexions des fils si les lectures échouent (par exemple, pas connecté, broche incorrecte).
Instructions de câblage


Pour câbler le capteur DHT11 à l'ESP32, commencez par connecter la broche VCC du DHT11 (la broche la plus à gauche) à la sortie 3,3V de l'ESP32. Ensuite, connectez la broche de masse (la quatrième broche) à une broche de masse (GND) sur l'ESP32. La broche de données (la deuxième broche) doit être connectée à la broche GPIO 14 sur l'ESP32.
Pour l'écran LCD, connectez la broche VCC à la sortie 5V de l'ESP32. La broche de masse doit être connectée à une broche de masse sur l'ESP32. Les broches SDA et SCL de l'écran LCD doivent être connectées respectivement aux broches GPIO 21 et 22. Assurez-vous que toutes les connexions sont sécurisées pour éviter tout problème lors de la lecture des données.
Exemples de code et guide étape par étape
Dans la première partie du code, nous initialisons le capteur DHT et définissons le numéro de broche avec#define DHTPIN 14Cet identifiant nous permet de référencer facilement la broche connectée à la ligne de données DHT11 dans tout le code.
#include "DHT.h"
#define DHTPIN 14 // Set the pin connected to the DHT11 data pin
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
Dans lesetup()fonction, nous initialisons la communication série pour le débogage et démarrons le capteur DHT. La boucle principale inclut un délai de 2 secondes pour garantir que nous n'inondons pas le capteur de requêtes.
Ensuite, nous lisons les valeurs d'humidité et de température en utilisantfloat humidity = dht.readHumidity();etfloat temperature = dht.readTemperature();Ces identifiants stockent les valeurs mesurées pour une utilisation ultérieure.
void loop() {
delay(2000);
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
}
Enfin, nous vérifions s'il y a des erreurs de lecture et imprimons les valeurs sur le moniteur série en utilisantSerial.print()Cela nous permet d'observer les relevés en temps réel.
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
Dans le code LCD, nous initialisons l'écran LCD et affichons la température et l'humidité à l'écran en utilisant lelcd.print()fonction. Cela fournit une représentation visuelle des données collectées par le capteur DHT11.
Démonstration / À quoi s'attendre
Une fois que tout est câblé correctement et que le code est téléchargé sur l'ESP32, vous devriez voir les lectures de température et d'humidité affichées sur le moniteur série et l'écran LCD. Si la température dépasse 30°C, le buzzer s'activera, fournissant une alerte audible.
Faites attention aux connexions inversées et assurez-vous que le capteur n'est pas exposé à des conditions extrêmes, car cela peut affecter les relevés. Vous pourriez avoir besoin d'ajuster le seuil pour le buzzer en fonction de vos besoins (dans la vidéo à 15:30).
Horaires des vidéos
- 00:00 Début
- 1:57 Introduction au DHT11
- 6:18 Câblage DHT11 avec ESP32
- 7:67 Code Arduino expliqué
- 11:49 Sélection de la carte ESP32 et du port COM dans l'IDE Arduino
- 13:30 Démonstration de projet
- 15:32 Obtenir Fahrenheit
- 16:04 affichage de la température sur l'écran LCD utilisant l'ESP32
- 17:20 DHT11 et LCD avec code ESP32
- 19:49 Démonstration DHT11 LCD avec ESP32
- 21:33 Agir sur la valeur de température
Common Course Links
Common Course Files
Ce dont vous pourriez avoir besoin
-
AmazonAchetez DHT11 sur Amazonamzn.to
-
BanggoodAchat du module DHT11 sur Banggoodbanggood.com
Ressources et références
-
DocumentationTutoriel ESP32 28/55 - Page doc SunFounder pour le capteur de température DHTdocs.sunfounder.com
Fichiers📁
Fichier Fritzing
-
Capteur d'humidité et de température DHT11 (3 broches)
DHT11 Humitidy and Temperature Sensor (3 pins).fzpz0.20 MB
Manuel de l'Utilisateur
-
Manuel de l'utilisateur DHT11
robojax-DHT11_manual.pdf0.82 MB