• Arduino
  • Raspberry Pi
  • Raspberry Pi Pico
  • Micro:Bit

Le capteur DHT11 est une combinaison de capteur de température et d'humidité dans un format compact. Il mesure les températures de 0°C à 50°C avec une précision de ±2°C et l'humidité relative de 20% à 90% avec une précision de ±5%. En raison de son faible taux d'échantillonnage, le capteur ne fournit de nouvelles valeurs de mesure que toutes les deux secondes, ce qui le rend idéal pour les mesures à long terme. Le DHT11 est facile à intégrer dans des plateformes de microcontrôleurs comme Arduino et Raspberry Pi et ne nécessite aucun étalonnage supplémentaire grâce à l'étalonnage effectué en usine. Sa conception robuste et sa fiabilité en font le choix idéal pour les projets de surveillance continue tels que les serres, les systèmes de contrôle climatique et la surveillance des entrepôts.

Données techniques
Chipset DHT11
Protocole de communication 1-Wire
Plage de mesure 0°C á 50°C
Précision de mesure ±2°C
Précision de mesure ±5%RH
Humidité mesurable 20-90%RH

Affectation des broches


Arduino Capteur
Pin 2 Signal
5V +V
GND GND

Exemple de code

Pour charger l'exemple de code suivant sur votre Arduino, nous vous recommandons d'utiliser l'IDE Arduino. Dans l'IDE, vous pouvez choisir le port et la carte qui conviennent à votre appareil.

Les bibliothèques suivantes sont également utilisées pour l'exemple de code :

DHT sensor library par Adafruit | publié sous la Licence MIT

Adafruit Unified Sensor par Adafruit | publié sous la Apache License 2.0

Vous pouvez facilement ajouter ces bibliothèques via le gestionnaire de bibliothèques de l'IDE Arduino. Copiez ensuite le code ci-dessous dans votre IDE. Pour télécharger le code sur l'Arduino, il suffit de cliquer sur le bouton " Upload ".

Ce capteur ne transmet pas son résultat de mesure sous forme de signal analogique à une broche de sortie, mais le communique sous forme de code numérique.

// La bibliothèque Adafruit_DHT est insérée
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
 
// La broche d'entrée correspondante peut être déclarée ici
#define DHTPIN 2     
 
// Le capteur est initialisé
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  Serial.begin(9600);
  Serial.println("Test KY-015 - Test de température et d'humidité :");
  // La mesure est lancée
  dht.begin();
}
 
// Boucle du programme principal
// Le programme démarre la mesure et lit les valeurs mesurées.
// Une pause de 2 secondes est observée entre les mesures,
// afin qu'une nouvelle mesure puisse être saisie lors de la prochaine exécution.
void loop() {
  // Deux secondes de pause entre les mesures
  delay(2000);
  // L'humidité de l'air est mesurée
  float h = dht.readHumidity();
  // La température est mesurée
  float t = dht.readTemperature();
  // On vérifie ici si les mesures se sont déroulées sans erreur.
  // En cas de détection d'une erreur, un message d'erreur est émis ici.
  if (isnan(h) || isnan(t)) {
    Serial.println("Erreur lors de la lecture du capteur");
    return;
  }
  // Sortie dans la console sérielle
  Serial.println("-----------------------------------------------------------");
  Serial.print("Humidité de l'air : ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Température : ");
  Serial.print(t);
  Serial.println(" °C ");
  Serial.println("-----------------------------------------------------------");
  Serial.println(" ");
}

Veuillez noter que le capteur ne fournit un nouveau résultat de mesure que toutes les 2 secondes environ ; il est donc plutôt conçu pour les enregistrements à long terme.

Le capteur DHT11 est une combinaison de capteur de température et d'humidité dans un format compact. Il mesure les températures de 0°C à 50°C avec une précision de ±2°C et l'humidité relative de 20% à 90% avec une précision de ±5%. En raison de son faible taux d'échantillonnage, le capteur ne fournit de nouvelles valeurs de mesure que toutes les deux secondes, ce qui le rend idéal pour les mesures à long terme. Le DHT11 est facile à intégrer dans des plateformes de microcontrôleurs comme Arduino et Raspberry Pi et ne nécessite aucun étalonnage supplémentaire grâce à l'étalonnage effectué en usine. Sa conception robuste et sa fiabilité en font le choix idéal pour les projets de surveillance continue tels que les serres, les systèmes de contrôle climatique et la surveillance des entrepôts.

Données techniques
Chipset DHT11
Protocole de communication 1-Wire
Plage de mesure 0°C á 50°C
Précision de mesure ±2°C
Précision de mesure ±5%RH
Humidité mesurable 20-90%RH

Affectation des broches


Raspberry Pi Capteur
GPIO 23 [Pin 16] Signal
+3,3V [Pin 1] +V
GND [Pin 6] GND

Exemple de code

Le programme utilise la bibliothèque correspondante Adafruit_CircuitPython_DHT d'Adafruit pour contrôler le capteur DHT11 qui est installé sur ce module capteur. Il a été publié avec la licence MIT OpenSource license.

Celle-ci doit être installée au préalable. Pour ce faire, exécutez les commandes suivantes :

sudo apt-get update
sudo apt-get install build-essential python-dev
sudo apt install gpiod
sudo pip3 install python3-pip

Créez maintenant l'environnement virtuel nécessaire pour le projet à l'aide des commandes suivantes :

mkdir dein_projekt
cd dein_projekt
python -m venv --system-site-packages env
source env/bin/activate

Installez maintenant la bibliothèque avec la commande suivante :

pip3 install adafruit-circuitpython-dht

Après avoir téléchargé la bibliothèque, il vous suffit d'utiliser la commande suivante...

nano KY015-RPi.py

...de créer un nouveau fichier sur votre Raspberry Pi, puis de copier le code suivant dans le fichier que vous venez de créer.

import time
import board
import adafruit_dht

# Initialisez le dispositif dht avec la broche de données connectée à la broche 16 (GPIO 23) du Raspberry Pi :
dhtDevice = adafruit_dht.DHT11(board.D23)

# Vous pouvez passer DHT22 use_pulseio=False si vous ne voulez pas utiliser pulseio.
# Cela peut être nécessaire sur un ordinateur monocarte Linux comme le Raspberry Pi,
# mais cela ne fonctionnera pas avec CircuitPython.
# dhtDevice = adafruit_dht.DHT22(board.D18, use_pulseio=False)

while True:
    try:
        # Imprimer les valeurs via l'interface série
        temperature_c = dhtDevice.temperature
        temperature_f = temperature_c * (9 / 5) + 32
        humidity = dhtDevice.humidity
        print("Temp: {:.1f} F / {:.1f} C    Humidity: {}% ".format(temperature_f, temperature_c, humidity))

    except RuntimeError as error:
        # Les erreurs sont assez fréquentes, les DHT sont difficiles à lire, passez à autre chose.
        print(error.args[0])
        time.sleep(2.0)
        continue
    except Exception as error:
        dhtDevice.exit()
        raise error

    time.sleep(2.0)

Veuillez noter que le capteur ne fournit un nouveau résultat de mesure que toutes les 2 secondes environ ; il est donc plutôt conçu pour les enregistrements à long terme.

Le capteur DHT11 est une combinaison de capteur de température et d'humidité dans un format compact. Il mesure les températures de 0°C à 50°C avec une précision de ±2°C et l'humidité relative de 20% à 90% avec une précision de ±5%. En raison de son faible taux d'échantillonnage, le capteur ne fournit de nouvelles valeurs de mesure que toutes les deux secondes, ce qui le rend idéal pour les mesures à long terme. Le DHT11 est facile à intégrer dans des plateformes de microcontrôleurs comme Arduino et Raspberry Pi et ne nécessite aucun étalonnage supplémentaire grâce à l'étalonnage effectué en usine. Sa conception robuste et sa fiabilité en font le choix idéal pour les projets de surveillance continue tels que les serres, les systèmes de contrôle climatique et la surveillance des entrepôts.

Données techniques
Chipset DHT11
Protocole de communication 1-Wire
Plage de mesure 0°C á 50°C
Précision de mesure ±2°C
Précision de mesure ±5%RH
Humidité mesurable 20-90%RH

Affectation des broches


Micro:Bit Capteur
Pin 1 Signal
3V +V
GND GND

Exemple de code

Ceci est un exemple MakeCode pour Micro:Bit qui fait essentiellement la même chose que les deux autres exemples. Cependant, cet exemple est plus proche de celui du Raspberry Pi que de celui de l'Arduino.

Pour l'exemple de code suivant, une bibliothèque supplémentaire est nécessaire :

pxt-DHT11_DHT22 by alankrantas | publié sous la licence MIT.

Vous devez ajouter cette bibliothèque à votre IDE avant d'utiliser le code.

Pour ce faire, allez dans Extensions dans votre IDE et utilisez l'URL suivante https://github.com/alankrantas/pxt-DHT11_DHT22.git pour rechercher la bibliothèque et l'ajouter.

	
		basic.forever(function () {
		    dht11_dht22.queryData(
		    DHTtype.DHT11,
		    DigitalPin.P1,
		    true,
		    false,
		    true
		    )
		    basic.showString("T:" + dht11_dht22.readData(dataType.temperature) + "C")
		    basic.pause(2000)
		    dht11_dht22.queryData(
		    DHTtype.DHT11,
		    DigitalPin.P1,
		    true,
		    false,
		    true
		    )
		    basic.showString("H:" + dht11_dht22.readData(dataType.humidity) + "%")
		    basic.pause(2000)
		})
	

Téléchargement d'un exemple de programme

microbit-KY-015.zip

Le capteur DHT11 est une combinaison de capteur de température et d'humidité dans un format compact. Il mesure les températures de 0°C à 50°C avec une précision de ±2°C et l'humidité relative de 20% à 90% avec une précision de ±5%. En raison de son faible taux d'échantillonnage, le capteur ne fournit de nouvelles valeurs de mesure que toutes les deux secondes, ce qui le rend idéal pour les mesures à long terme. Le DHT11 est facile à intégrer dans des plateformes de microcontrôleurs comme Arduino et Raspberry Pi et ne nécessite aucun étalonnage supplémentaire grâce à l'étalonnage effectué en usine. Sa conception robuste et sa fiabilité en font le choix idéal pour les projets de surveillance continue tels que les serres, les systèmes de contrôle climatique et la surveillance des entrepôts.

Données techniques
Chipset DHT11
Protocole de communication 1-Wire
Plage de mesure 0°C á 50°C
Précision de mesure ±2°C
Précision de mesure ±5%RH
Humidité mesurable 20-90%RH

Affectation des broches


Raspberry Pi Pico Capteur
GPIO14 Signal
3.3V +V
GND GND

Exemple de code

Ce capteur ne sort pas son résultat de mesure sous forme de signal analogique sur une broche de sortie, mais le communique sous forme de code numérique.

Pour charger l'exemple de code suivant sur votre Pico, nous vous recommandons d'utiliser l'IDE Thonny. Il vous suffit de commencer par sélectionner Run > Configure interpreter ... > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico).

Copiez maintenant le code ci-dessous dans votre IDE et cliquez sur Run.

# Chargement des bibliothèques
from machine import Pin
from utime import sleep
from dht import DHT11

# Initialisation GPIO14 et DHT11
dht11_sensor = DHT11(Pin(14, Pin.IN, Pin.PULL_UP))

# Répétition (boucle sans fin)
while True:
    # Effectuer des mesures
    dht11_sensor.measure()
    # Lecture des valeurs
    temp = dht11_sensor.temperature()
    humi = dht11_sensor.humidity()
    # Sortie des valeurs
    print("Température: {}°C   Humidité: {:.0f}% ".format(temp, humi))
    print()
    sleep(2)

***Veuillez noter que le capteur ne fournit un nouveau résultat de mesure que toutes les 2 secondes environ ***.