Ignorer et passer au contenu

Livraison offerte à partir de 50€ d'achats, livrée sous 48h !

Livraison à partir de seulement 2.50€ !

Contents Menu Expand Light mode Dark mode Auto light/dark mode

DHT11 : Mesurer température et taux d’humidité ambiant avec la Pi Pico en MicroPython

(Mis à jour le 13/02/2023)

DHT11 sensor overview

Le capteur DHT11 avec sa protection bleue caractéristique

Le capteur DHT11 est très populaire dans le monde des makers et est inclus de base dans MicroPython. Son faible coût et sa facilité d’utilisation sont ses principaux atouts.

Avertissement

Cependant, il est assez basique car il ne peut effectuer qu’une seule mesure par seconde.

Prendre en main le capteur DHT11

Il existe également un modèle plus complet, le DHT22, identifiable par son boîtier blanc et un peu plus grand que le DHT11 (boîtier bleu). Malgré ces différences, l’utilisation est identique. Pour plus de détails sur ces différences, vous pouvez consulter la comparaison entre le DHT11 et le DHT22 . Si vous avez le DHT22, vous pouvez suivre le tutoriel correspondant .

Quelques caractéristiques techniques du DHT11

Il est possible d’alimenter le DHT11 directement à partir de la broche 3V3 de la Raspberry Pi Pico.

Caractéristiques techniques du DHT11

Caractéristiques

DHT11

Précision température

± 2°C

Précision Humidité

± 5%

Plage de température

0-50 °C

Plage Humidité

20-90%

Échantillonnage

1/s

Tension d’alimentation

3-5.5V

Courant

~2.5mA

Cependant, pour des mesures plus précises et plus régulières, je vous suggère d’utiliser un capteur de la famille des BMExxx de Bosh, mais son coût sera plus élevé.

Branchements du DHT11

Le capteur DHT11 a entre 3 et 4 broches en fonction du modèle. Une broche est superflue si votre module en a 4. Malheureusement, le brochage est différent selon le fabricant 😕 .

DHT11 variant

Différents brochages sont possibles (celui d’Elegoo est à gauche)

La numérotation des broches commence par la gauche, quand on a le capteur face à soi. Voici un récapitulatif des possibilités :

Correspondance des broches

Module DHT11

Raspberry Pi Pico

1 (S )

GPIO17

2

3V3

3 (- )

GND

Correspondance des broches

Module DHT11

Raspberry Pi Pico

1

GND

2

GPIO17

3

3V3

Correspondance des broches

Module DHT11

Raspberry Pi Pico

1

3V3

2

GPIO17

3

Ne pas connecter

4

GND

Mis à part les broches d’alimentation, le DHT11 a une seule broche de sortie pour transmettre les données du capteur.

Circuit électrique pour utiliser le module DHT11 avec une Raspberry Pi Pico

Si votre module ne contient pas de résistance de pullup, il faut en rajouter une entre 4.7kΩ et 10kΩ entre les broches 3V3 et le signal (S ). Vous pouvez toujours en rajouter une, cela ne fera pas de mal.

N’importe quelle broche de sortie avec support PWM peut être utilisée. Ici, nous utilisons la broche GP5 . Dans les circuits suivants, j’utilise le capteur DHT11 d’Elegoo, n’oubliez pas de faire les adaptations nécessaires si le vôtre est différent 🙂. Ce module contient déjà une résistance R1 de 10kΩ au-dessus de la lettre S écrite sur le module.

dht11 pico circuit

Circuit électrique à réaliser

dht11 sensor microptyhon rp2040 devkit

Circuit électrique à réaliser

Câblage sur plaque de prototypage du DHT11 RP2040 DevKit

Câblage du DHT11 avec une carte uPesy RP2040 DevKit

Mesurer la température et l’humidité ambiante du DHT11 avec MicroPython

Puisque le DHT11 utilise un protocole propriétaire, il est nécessaire d’utiliser une librairie pour communiquer avec le capteur. Heureusement, elle est incluse dans les versions récentes de MicroPython, donc pas besoin d’en télécharger une supplémentaire 😎. Le code à utiliser est très simple : il faut créer un objet dht avec un numéro de pin et appeler la fonction capteur.measure() .

from machine import Pin
from time import sleep
import dht

capteur = dht.DHT11(Pin(5))

while True:
    try:
        sleep(1)
        # Le DHT11 renvoie au maximum une mesure toute les 1s
        capteur.measure()
        # Récupère les mesures du capteur
        print(f"Temperature : {capteur.temperature():.1f}")
        print(f"Humidite    : {capteur.humidity():.1f}")
        # Transmet la température sur la console de l'ordinateur
    except OSError as e:
        print('Echec reception')
        # Si la pico ne reçoit pas les mesures du capteur

Note

N’oubliez pas de rajouter un délai de 1 seconde entre 2 mesures, car le DHT11 ne peut pas aller plus vite 😮‍💨. S’il n’est pas capable de suivre la cadence, une erreur sera renvoyée et capturée par le try: execpt:

Dans le terminal de Thonny IDE, vous verrez la température exprimée en °C et le taux d’humidité en pourcentage.

démo micropython de la mesure du DHT11 avec un Pico sur thonny

Note

Vous pouvez souffler sur le capteur DHT11, comme quand on souffle sur une vitre glacée pour enlever la buée. Vous devriez alors voir le taux d’humidité fluctuer.

En Python, on peut utiliser des f-string pour afficher des variables avec un texte, par exemple : f"Humidite: {capteur.humidity():.1f}" . La chaîne de caractères doit commencer par un f et la variable doit être contenue entre crochets. Vous pouvez préciser le nombre de chiffres après la virgule qui doivent être affichés avec :.1f . Avec le DHT11, on devrait mettre zéro car le capteur est précis à 1 degré près.

Librairie optimisée en utilisant les PIO de la Pi Pico

https://github.com/danjperron/PicoDHT22/blob/main/PicoDHT22.py

Cette section est réservée aux abonnés. Il vous reste -245% à découvrir.

Devenir membre premium

Déjà abonné ? Connectez-vous