#55Intermédiaire

Température et humidité avec DHT11

4.7(47)
60 terminé
Température et humidité avec DHT11
Projet qui mesure la température et l'humidité ambiantes à l'aide d'un capteur DHT11 et les affiche sur un écran LCD I2C. Enseigne l'utilisation d'un capteur numérique de température et d'humidité.

Vidéo

Schéma du circuit

Température et humidité avec DHT11 - Circuit

Code source

Arduino (C++)
1#include <LiquidCrystal_I2C.h>
2#include <Wire.h> 
3#include <DHT.h>
4
5#define DHTPIN 3
6#define DHTTYPE DHT11
7
8LiquidCrystal_I2C lcd(0x27, 16, 2);
9DHT dht(DHTPIN, DHTTYPE); 
10
11void setup() {
12  dht.begin();
13  lcd.init();      // Modern libraries prefer init() over begin()
14  lcd.backlight();
15}
16 
17void loop() {
18  int humidity = dht.readHumidity();
19  float temperature = dht.readTemperature();
20
21  // Check if readings failed
22  if (isnan(humidity) || isnan(temperature)) {
23    lcd.setCursor(0, 0);
24    lcd.print("Sensor Error!   ");
25    return;
26  }
27
28  lcd.setCursor(0, 0);
29  lcd.print("Temp: ");
30  lcd.print(temperature);
31  lcd.print((char)223); // Degree symbol (°)
32  lcd.print("C   ");
33
34  lcd.setCursor(0, 1);
35  lcd.print("Humidity: %");      
36  lcd.print(humidity);
37  lcd.print("   "); // Trailing spaces to clear old data
38  
39  delay(2000); // DHT11 is slow, 2 seconds is more stable
40}

FAQ

Quelle est la précision des mesures du DHT11 ?▾

Le DHT11 mesure la température avec une précision de ±2 °C et l'humidité avec une précision de ±5 %, et fonctionne dans une plage de 0 à 50 °C. Pour des mesures plus précises, il est préférable d'opter pour le DHT22 (±0,5 °C) ou le BME280.

Je vois « nan » ou une erreur à l'écran, pourquoi ?▾

Le capteur n'a pas pu être lu. Vérifie la résistance de pull-up de 10 kΩ sur la broche de données, le type de capteur défini dans la bibliothèque (DHT11) et assure-toi qu'un délai d'au moins 1 à 2 secondes est respecté entre chaque lecture.

Pourquoi les lectures sont-elles mises à jour si lentement ?▾

Le DHT11 peut effectuer au maximum une mesure par seconde. Tenter d'effectuer des relevés plus fréquents entraîne des valeurs erronées ou obsolètes ; il est recommandé d'attendre 2 secondes entre chaque mesure.

Puis-je calculer la température ressentie ?▾

Oui, la fonction `computeHeatIndex()` de la bibliothèque DHT calcule la température ressentie à partir de la température et de l'humidité.

Température et humidité avec DHT11 | BlueGrays