Publié par Laisser un commentaire

Capteur de température et humidité DHT11 avec Raspberry Pi

raspberry pi DHT11

Dans ce tutoriel, nous utilisons un capteur de température et humidité DHT11. A l’aide d’un script Python sur votre Raspberry Pi, nous mesurons la température et l’humidité. Lorsque vous aurez terminé ce tutoriel, vous pourrez connecter le capteur DHT11 à votre Pi via les broches GPIO. Vous aurez également le code de base pour convertir le signal de sortie du capteur en informations utilisables dans votre script Python. Ce tutoriel peut également être utilisé pour le capteur DHT22.

Rock 4C+ kit

La carte Rock 4C+ est une parfaite alternative au Raspberry Pi 4

Nos kits de démarrage sont disponibles et prêts à être expédiés !

Préparez votre Pi

Tout d’abord, vous avez besoin d’un Raspberry Pi avec la dernière version de Raspberry Pi OS. Cette version comprend “Thonny”. Nous utiliserons cet environnement convivial pour écrire notre code Python. Si vous n’êtes pas familier avec Python ou avec Thonny ou avec les broches GPIO, je vous suggère de consulter nos tutoriels “Comment débuter à programmer en Python sur Raspberry Pi” et/ou “Comment utiliser les broches GPIO du Raspberry Pi” pour une introduction rapide.

Préparez le matériel supplémentaire

Ensuite, vous aurez besoin d’un peu de matériel supplémentaire:

  • un breadboard (nous utilisons un breadboard de 400 points)
  • un capteur de température et humidité DHT11 ou DHT22
  • des câbles Dupont
  • un T-cobbler
  • un câble GPIO 40 broches

Si vous manquez des pièces, n’hésitez pas à visiter notre boutique. Nous avons un kit bien conçu contenant toutes les pièces dont vous avez besoin pour démarrer.
Raspberry Pi GPIO kit

Apprenez à connaître le capteur de température et d’humidité DHT11

DHT11 temperature and humidity sensor

Le DHT11 est un capteur peu coûteux et populaire pour mesurer la température et l’humidité. Le module nécessite 3 connexions au Raspberry Pi: 3,3V; GND et une broche d’entrée GPIO. Comme le signal de sortie est 3,3V, celui-ci peut être directement connecté à une broche d’entrée GPIO du Raspberry Pi. La plage de température est comprise entre 0 et 50 ° C (+/- 2 ° C) et la plage d’humidité entre 20 et 90% (+/- 5%). Le capteur est assez lent et d’une précision limitée, mais c’est un capteur idéal pour réaliser vos expériences.

Mettre en place la partie matérielle

Soyez prudent ! Avant de brancher des câbles sur les broches GPIO de votre Raspberry Pi, assurez-vous d’éteindre correctement le Pi et de retirer le câble d’alimentation de la carte mère!

raspberry pi DHT11 temperature and humidity sensor
  • connectez le câble 40 broches sur les broches GPIO de votre Pi (si nécessaire, retirez d’abord le cache de votre Pi)
  • branchez le T-cobbler sur le breadboard comme indiqué sur la figure ci-dessus ou ci-dessous
  • branchez l’autre extrémité du câble 40 broches dans le T-cobbler
  • reliez la broche VCC du capteur à une broche 3,3V (fil rouge)
  • reliez la broche OUTPUT du capteur à la broche 23 (fil jaune)
  • connectez le GND du capteur à une broche GPIO GND (fil noir)
Raspberry Pi DHT11 temperature and humidity sensor

Installez les bibliothèques Python

Le capteur DHT11 communique avec un protocole spécifique. Heureusement, nous n’avons pas à nous occuper de ces détails et grâce à Adafruit, nous pouvons utiliser les bibliothèques Python pour récupérer les mesures facilement. Pour télécharger les bibliothèques, assurez-vous que votre Pi a accès à Internet. L’installation de ces bibliothèques prend un certain temps. Mais soyez patient, à l’heure actuelle et pour autant que nous le sachions, c’est le moyen le plus simple d’obtenir des mesures du capteur DHT11 avec le Raspberry Pi.

Preparez l’installation des bibliothèques CircuitPython

Pour pouvoir communiquer facilement avec certains capteurs, CircuitPython a été développé. Ainsi, avant d’installer la bibliothèque DHT spécifique, nous devons effectuer un travail de préparation.

Ouvrez une fenêtre terminal et introduisez les commandes suivantes:

Dans notre cas, il est vraiment important d’utiliser la dernière version de Raspberry Pi OS ! Même si cela prend du temps, ne sautez pas l’étape suivante !

sudo apt update
sudo apt full-upgrade
sudo apt install python3-pip
sudo pip3 install --upgrade setuptools
sudo reboot

Ensuite, installez et exécutez un script développé par Adafruit :

sudo pip3 install --upgrade adafruit-python-shell
wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/raspi-blinka.py
sudo python3 raspi-blinka.py

Le script vous demandera probablement de mettre à jour votre version python vers la version 3. Choisissez : y

Raspberry Pi update CircuitPython

À la fin du processus, il vous sera demandé de redémarrer. Choisissez : y

Après le redémarrage, nous sommes prêts à installer la bibliothèque DHT. Si vous rencontrez des problèmes, consultez “Installing CircuitPython Libraries on Raspberry Pi” . Cette page Web d’Adafruit vous donnera plus d’explications.

Installez la bibliothèque CircuitPython DHT

Ouvrez une fenêtre terminal et introduisez les commandes suivantes:

pip3 install adafruit-circuitpython-dht
sudo apt-get install libgpiod2

Ça y est, les bibliothèques nécessaires devraient être installées maintenant. Si vous avez besoin de plus d’informations, visitez “Installing the CircuitPython-DHT Library“.

Ecrivez le code

Le but est d’écrire un programme Python très simple qui nous permet de visualiser la température et l’humidité ambiante. Pour écrire le code, nous utilisons l’EDI Thonny. Vous pouvez trouver Thonny dans le menu d’applications de votre Raspberry Pi.

Écrivez ou collez le code suivant dans l’EDI:

import time
import board
import adafruit_dht
import psutil
# We first check if a libgpiod process is running. If yes, we kill it!
for proc in psutil.process_iter():
    if proc.name() == 'libgpiod_pulsein' or proc.name() == 'libgpiod_pulsei':
        proc.kill()
sensor = adafruit_dht.DHT11(board.D23)
while True:
    try:
        temp = sensor.temperature
        humidity = sensor.humidity
        print("Temperature: {}*C   Humidity: {}% ".format(temp, humidity))
    except RuntimeError as error:
        print(error.args[0])
        time.sleep(2.0)
        continue
    except Exception as error:
        sensor.exit()
        raise error
    time.sleep(2.0)

Quelques explications à propos du code:

  • import board cette bibliothèque sera utilisée pour définir avec quelle broche GPIO nous avons connecté le capteur DHT11.
  • import adafruit_dht bibliothèque spécifique au capteur DHT.
  • import psutil  bibliothèque pour récupérer des informations sur les processus en cours.
  • Attention, Python est sensible aux espaces. Ne supprimez pas le “tab” avant la ligne de code après les commandes “for”, “if”, … !
  • Après la section import, nous devons écrire du code pour éviter que notre script se bloque après la première exécution. En effet, après avoir exécuté le script pour la première fois avec Thonny, certains processus liés au capteur continuent de tourner en arrière-plan. Et si nous voulons réexécuter notre script, le script se bloquera et affichera un message d’erreur. Pour éviter cela, nous utilisons une solution pour contourner ce problème. Ainsi, nous vérifions d’abord si les processus liés au capteur sont en cours d’exécution. Si c’est le cas, nous les tuons. Par ailleurs, nous n’avons pas besoin de cette solution de contournement si nous lançons notre script Python à partir de la fenêtre du terminal.
  • sensor = adafruit_dht.DHT11(board.D23) Ici, nous définissons le type de capteur et le numéro de broche. Changez en DHT22 si vous utilisez ce type de capteur DHT. Et changez le numéro de broche si vous utilisez une autre broche.
  • temp = sensor.temperaturelecture de la valeur de température du capteur.
  • humidity = sensor.humiditylecture de la valeur d’humidité du capteur
  • print("Temperature: {}*C   Humidity: {}% ".format(temp, humidity)) impression des résultats à l’écran. Compte tenu de la précision des capteurs, les résultats sont formatés sans décimales.
  • Les capteurs DHT sont difficiles à lire pour les systèmes d’exploitation basés sur Linux. C’est pourquoi les erreurs de lecture se produisent assez souvent (voir l’exemple juste ci-dessous). Après avoir imprimé le type d’erreur, nous continuons avec la lecture suivante.
  • time.sleep(2.0): attendre 2 secondes.

Exécutez le programme

Avant de lancer le programme, vous devrez le donner un nom et le sauvegarder.

Raspberry Pi Python DHT11 temperature and humidity sensor

Aprés avoir sauvegardé le code, cliquez sur le bouton Run. Vous verrez s’afficher la température et l’humidité mesurée toutes les 2 secondes.

Félicitations! Avec cette configuration, vous pouvez lire la température et humidité ambiante. Vous pouvez également utiliser le script pour traiter le résultat dans une application dans laquelle vous souhaitez surveiller la température et l’humidité par exemple. Ayez encore beaucoup de plaisir!

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 4.1 / 5. Nombre de voix : 19

Aucune évaluation jusqu’à présent ! Soyez le premier à évaluer cette publication.

Nous sommes désolés que ce tutoriel ne vous ait pas été utile !

Améliorons ce tuto !

Dites-nous comment nous pouvons améliorer ce tuto ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 4.1 / 5. Nombre de voix : 19

Aucune évaluation jusqu’à présent ! Soyez le premier à évaluer cette publication.

Nous sommes désolés que ce tutoriel ne vous ait pas été utile !

Améliorons ce tuto !

Dites-nous comment nous pouvons améliorer ce tuto ?

découvrez ici plus de produits

Soyez le premier informé de nos derniers tutoriels et produits en vous inscrivant à notre Newsletter

freva.com respecte votre vie privée. Lisez notre politique de protection de la vie privée sur la façon dont nous traitons vos informations personnelles.