KY-015 Capteur de t° et d'humidité DHT-11
Ce capteur est un mélange de capteur de température et de capteur d'humidité dans un design compact.
- 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
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 ***.