Tutoriel ESP32 28/55 - Capteur de température DHT11 avec LCD | Kit d'apprentissage IoT ESP32 de SunFounder

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.

ESP32-28_capteur_de_température_dht_principal

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

ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer

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

Images

ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer
DHT11_with_buzzer
ESP32-28_dht_temperature-sensor-main
ESP32-28_dht_temperature-sensor-main
828-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor
Langue: C++
829-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor with LCD
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Fichiers📁

Fichier Fritzing

Manuel de l'Utilisateur