ESP8266 - DHT11

Ce tutoriel vous explique comment utiliser l'ESP8266 pour lire la température et l'humidité à partir du capteur DHT11. En détail, nous apprendrons :

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Temperature and Humidity Sensor DHT11
1×10 kΩ resistor
1×Breadboard
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de température et d'humidité DHT11

Schéma de brochage du capteur de température et d'humidité

Le DHT11 sur le marché se présente sous deux formes : capteur et module.

Le capteur DHT11 dispose de quatre broches :

  • Broche GND : doit être connectée à GND (0V)
  • Broche VCC : doit être connectée à VCC (5V)
  • Broche DATA : utilisée pour la communication entre le capteur et l'ESP8266
  • Broche NC : Non connectée, cette broche peut être négligée
Capteur de température et d'humidité DHT11 - Brochage

Le module DHT11 a trois broches :

  • Broche GND (-) : doit être connectée à GND (0V)
  • Broche VCC (+) : doit être connectée à VCC (5V)
  • Broche OUT : utilisée pour la communication entre le capteur et l'ESP8266

※ NOTE THAT:

La disposition des broches sur un module peut varier en fonction du fabricant. Il est IMPÉRATIF d'utiliser les étiquettes imprimées sur le module comme référence. Assurez-vous de regarder de près !

Diagramme de câblage

Câblage du capteur ESP8266 - DHT11

Une résistance d'une valeur entre 5K et 10K Ohms est nécessaire pour maintenir la ligne de données à un niveau haut, permettant ainsi la communication entre le capteur et l'ESP8266.

Schéma de câblage du capteur de température et d'humidité ESP8266 NodeMCU DHT11

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Câblage du module ESP8266 - DHT11

La plupart des modules de capteur DHT11 intègrent une résistance, ce qui élimine le besoin de câblage supplémentaire ou de soudure.

Schéma de câblage du module de température et d'humidité ESP8266 NodeMCU DHT11

This image is created using Fritzing. Click to enlarge image

Comment programmer le capteur de température DHT11

  • Pour commencer, la bibliothèque doit être incluse :
#include "DHT.h"
  • Spécifiez la broche ESP8266 qui est connectée au capteur DHT11.
#define DHT_PIN D7
  • Précisez le type de capteur : DHT11
#define DHT_TYPE DHT11
  • Créez un objet DHT.
DHT dht11(DHT_PIN, DHT_TYPE);
  • Commencez l'installation du capteur :
dht11.begin();
  • Lisez la valeur d'humidité.
float humi = dht11.readHumidity();
  • Lisez la température en Celsius.
float temperature_C = dht11.readTemperature();
  • Lisez la température en Fahrenheit.
float temperature_F = dht11.readTemperature(true);

Code ESP8266 pour DHT11

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-dht11 */ #include <DHT.h> #define DHT_SENSOR_PIN D7 // The ESP8266 pin D7 connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); dht_sensor.begin(); // initialize the DHT sensor } void loop() { // read humidity float humi = dht_sensor.readHumidity(); // read temperature in Celsius float temperature_C = dht_sensor.readTemperature(); // read temperature in Fahrenheit float temperature_F = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(temperature_C) || isnan(temperature_F) || isnan(humi)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(temperature_C); Serial.print("°C ~ "); Serial.print(temperature_F); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Étapes rapides

Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez ESP8266.
  • Câblez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur via un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, tel que (par exemple, NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Connectez un câble USB entre l'ESP8266 et le PC.
  • Ouvrez Arduino IDE, sélectionnez la bonne carte et le bon port.
  • Cliquez sur l'icône Libraries dans la barre gauche de l'Arduino IDE.
  • Recherchez "DHT", puis localisez la bibliothèque du capteur DHT par Adafruit.
  • Appuyez sur le bouton Install pour compléter l'installation.
Bibliothèque de capteur DHT11 ESP8266 NodeMCU
  • Vous serez invité à installer certaines autres dépendances de bibliothèques.
  • Pour installer toutes ces bibliothèques, cliquez sur le bouton Install All.
Bibliothèque de capteurs unifiée Adafruit ESP8266 NodeMCU
  • Copiez le code correspondant au capteur que vous avez et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour compiler et téléverser le code vers l'ESP8266.
  • Modifiez la température de l'environnement autour du capteur.
  • Consultez le résultat sur le moniteur série.
COM6
Send
Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

Connaissances supplémentaires

Comparons les capteurs DHT11 et DHT22.

Les points communs entre DHT11 et DHT22

  • Les brochages restent identiques.
  • Le câblage vers l'ESP8266 est inchangé.
  • La programmation, avec l'utilisation d'une bibliothèque, est comparable, nécessitant seulement la modification d'une ligne de code.

Les différences entre DHT11 et DHT22

DHT11 DHT22
Price ultra low cost low cost
Temperature Range 0°C to 50°C -40°C to 80°C
Temperature Accuracy ± 2°C ± 0.5°C
Humidity Range 20% to 80% 0% to 100%
Humidity Accuracy 5% ± 2 to 5%
Reading Rate 1Hz (once every second) 0.5Hz (once every 2 seconds)
Body size 15.5mm x 12mm x 5.5mm 15.1mm x 25mm x 7.7mm

De toute évidence, le DHT22 est plus précis que le DHT11, a une gamme de mesures plus large, mais coûte plus cher.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!