Capteur de température et d’humidité DHT11 et le Raspberry Pi

Capteur de température et d'humidité DHT11 et le Raspberry Pi

Le DHT11 est un capteur de température et d’humidité à faible coût. Ce n’est pas le capteur le plus rapide du marché, mais son prix bon marché le rend utile pour les expérimentations ou les projets où vous n’avez pas besoin de nouvelles lectures plusieurs fois par seconde. L’appareil ne nécessite que trois connexions au Pi. +3.3v, masse et une broche GPIO.

Spécifications DHT11

L’appareil lui-même a quatre broches mais l’une d’entre elles n’est pas utilisée. Vous pouvez acheter l’appareil à 4 broches seul ou dans le cadre d’un module à 3 broches.

Dimensions du capteur DHT11

Les modules ont trois broches et sont faciles à connecter directement à l’en-tête GPIO du Pi.

  • Humidité : 20-80% (5% précision)
  • Température : 0-50°C (±2°C précision)

Les fabricants ne vous recommandent pas de lire les données de cet appareil plus d’une fois toutes les 2 secondes. Si vous le faites, vous pouvez obtenir des lectures incorrectes.

configuration materielle

Module DHT11

Le dispositif à 4 broches nécessitera une résistance (4,7K-10K) à placer entre la broche 1 (3,3V) et la broche 2 (données).

Les modules à 3 broches auront généralement cette résistance incluse, ce qui facilite un peu le câblage. Pour cette raison, j’ai mis la main sur le module que je pouvais ensuite attacher au Pi avec un morceau de câble Dupont à 3 voies.

Différents fournisseurs peuvent câbler les broches du module différemment, alors vérifiez les marquages ​​PCB pour identifier Vcc (+), les données et la terre (-).

Les 3 broches doivent être connectées au Pi comme indiqué dans le tableau ci-dessous :

Broche DHT Signal Broche Pi
1 3.3V 1
2 Données/Sortie 11 (GPIO17)
3 non utilisé
4 Terre 6 ou 9

Votre broche de données peut être attachée à n’importe quelle broche GPIO que vous préférez. Dans mon exemple, j’utilise la broche physique 11 qui est GPIO 17. Voici un capteur à 4 broches connecté à l’en-tête GPIO du Pi. Il a une résistance de 10K entre les broches 1 (3.3V) et 2 (Data/Out).

DHT11 connecté au Raspberry Pi

Bibliothèque Python

Le DHT11 nécessite l’application d’un protocole spécifique à la broche de données. Afin de gagner du temps en essayant de l’implémenter vous-même, il est beaucoup plus facile d’utiliser la bibliothèque Adafruit DHT.

La bibliothèque traite les données qui doivent être échangées avec le capteur mais elle est sensible aux problèmes de synchronisation. Le système d’exploitation du Pi peut gêner l’exécution d’autres tâches. Pour compenser cela, la bibliothèque demande un certain nombre de lectures à l’appareil jusqu’à ce qu’elle en obtienne une qui soit valide.

Configuration du logiciel

Pour commencer, mettez à jour vos listes de paquets et installez quelques bibliothèques Python :

sudo apt-get update
sudo apt-get install build-essential python-dev

Clonez ensuite la librairie Adafruit depuis leur dépôt :

git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT

Installez ensuite la bibliothèque pour Python 2 et Python 3 :

sudo python setup.py install
sudo python3 setup.py install

Espérons qu’à ce stade, la bibliothèque soit installée et prête à être utilisée dans un script Python.

Exemple de script Python Adafruit

Adafruit fournit un exemple de script que vous pouvez utiliser pour vérifier que votre capteur fonctionne correctement.

cd ~
cd Adafruit_Python_DHT
cd examples

Puis :

python AdafruitDHT.py 11 17

L’exemple de script prend deux paramètres. Le premier est le type de capteur, il est donc réglé sur « 11 » pour représenter le DHT11. Le second est le numéro GPIO, donc pour mon exemple, j’utilise « 17 » pour GPIO17. Vous pouvez changer cela si vous utilisez une broche GPIO différente pour votre câble de données/sortie.

Vous devriez voir une sortie semblable à celle-ci :

Temp=22.0* Humidity=68.0%

Utilisation de la bibliothèque dans d’autres scripts Python

Une fois que la bibliothèque Adafruit est installée et que l’exemple de script fonctionne, vous pouvez utiliser le capteur dans vos propres scripts. Importez simplement le module, configurez quelques variables et appelez la fonction « read_retry » :

import Adafruit_DHT

# Set sensor type : Options are DHT11,DHT22 or AM2302
sensor=Adafruit_DHT.DHT11

# Set GPIO sensor is connected to
gpio=17

# Use read_retry method. This will retry up to 15 times to
# get a sensor reading (waiting 2 seconds between each retry).
humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)

# Reading the DHT11 is very sensitive to timings and occasionally
# the Pi might fail to get a valid reading. So check if readings are valid.
if humidity is not None and temperature is not None:
  print('Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity))
else:
  print('Failed to get reading. Try again!')

Ce script peut être téléchargé directement sur votre Pi en utilisant :

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/dht11.py

et lancez en utilisant :

python dht11.py

Acheter un DHT11

Le DHT11 est disponible auprès de nombreux vendeurs de composants électriques. Voici une sélection :

Certains ne vendent que l’appareil lui-même, vous devrez donc peut-être faire le tour si vous préférez le module à 3 broches.

Dernières pensées

Le DHT11 est probablement le mieux adapté aux projets où des lectures de données rapides ne sont pas nécessaires et où l’environnement ne devrait pas subir de changements soudains de température ou d’humidité. Une station météo serait une idée de projet, mais un contrôleur de chauffage central peut nécessiter quelque chose de différent.

Pour les projets qui nécessitent un taux de lecture de température plus rapide (<2 sec), j'utiliserais probablement un DS18B20 car ils répondent beaucoup plus rapidement aux changements de température. Mais avec ces deux capteurs coûtant moins de 5 $, vous pouvez probablement vous permettre d'acheter les deux et d'expérimenter.

  • AZDelivery DHT11 Capteur d'Humidité et de Température avec Câble Compatible avec Arduino et Raspberry Pi incluant Un E-Book!
    ✅ Il utilise des modules numériques dédiés et d'acquisition de la technologie de capteur de température et d'humidité pour s'assurer que les produits avec une grande fiabilité et une excellente stabilité à long terme. ✅ La pleine échelle de calibration sans nécessiter de re-calibrage peut être utilisé de manière interchangeable. ✅ Le produit a une excellente qualité, une réponse rapide, la capacité anti-interférences, le coût élevé et d'autres avantages. ✅ Le schéma de câblage du single-wire rend facile à être intégré à d'autres applications.Et le protocole de communication simple réduit considérablement l'effort de programmation nécessaire. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • AZDelivery 3 x DHT11 capteur d'humidité et de température Compatible avec Arduino et Raspberry Pi y Compris Un eBook
    ✅ Il utilise des modules numériques dédiés et d'acquisition de la technologie de capteur de température et d'humidité pour s'assurer que les produits avec une grande fiabilité et une excellente stabilité à long terme. ✅ La pleine échelle de calibration sans nécessiter de re-calibrage peut être utilisé de manière interchangeable. ✅ Le produit a une excellente qualité, une réponse rapide, la capacité anti-interférences, le coût élevé et d'autres avantages. ✅ Le schéma de câblage du single-wire rend facile à être intégré à d'autres applications.Et le protocole de communication simple réduit considérablement l'effort de programmation nécessaire. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • AZDelivery 5 x DHT11 capteur d'humidité et de température Compatible avec Arduino et Raspberry Pi y Compris Un eBook
    ✅ Il utilise des modules numériques dédiés et d'acquisition de la technologie de capteur de température et d'humidité pour s'assurer que les produits avec une grande fiabilité et une excellente stabilité à long terme. ✅ La pleine échelle de calibration sans nécessiter de re-calibrage peut être utilisé de manière interchangeable. ✅ Le produit a une excellente qualité, une réponse rapide, la capacité anti-interférences, le coût élevé et d'autres avantages. ✅ Le schéma de câblage du single-wire rend facile à être intégré à d'autres applications.Et le protocole de communication simple réduit considérablement l'effort de programmation nécessaire. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.