capteur-dht.py

RP2040 (carte / puce générique) · Fichier : capteur-dht.py · Langage : Python · Usage : Relever température et humidité avec un capteur DHT

Le module dht intégré à MicroPython pilote les capteurs DHT11/DHT22 sur n'importe quelle broche. Le script mesure toutes les 2 s (cadence minimale du capteur), capture les erreurs de trame et affiche température et humidité.

Matériel requis

Une carte générique à microcontrôleur RP2040 (double Cortex-M0+) programmée en MicroPython. 1 capteur DHT22 (ou DHT11) en boîtier 3 ou 4 broches + résistance 10 kΩ si module nu.

Câblage

VDD sur 3V3 (ou 5 V selon capteur), GND, DATA sur GP4 avec pull-up 10 kΩ vers VDD. Sur module à 3 broches, la résistance est intégrée.

Fonctionnement

capteur.measure() envoie l'impulsion de départ puis décode la trame 1 fil ; temperature()/humidity() renvoient les dernières valeurs. Une OSError signale une trame perdue, rattrapée au cycle suivant.

Exécution

Flasher MicroPython via BOOTSEL (fichier .uf2), puis copier le script sur le lecteur de la carte. Vérifier la broche de la LED utilisateur de votre carte (souvent GP25) et l'adapter si besoin.

Variantes

Passer au DHT11 (moins précis mais moins cher) en changeant la classe, ou journaliser les mesures en CSV avec le script de journalisation.

capteur-dht.py

# Temperature + humidite avec DHT11/DHT22 via le module dht de MicroPython.
import dht
import machine
import time

# DHT22 sur GP4 (remplacer par dht.DHT11 pour un DHT11).
capteur = dht.DHT22(machine.Pin(4))

print("Lecture toutes les 2 s (Ctrl-C pour arreter)")

while True:
    try:
        capteur.measure()   # declenche la trame 1-fil
        t = capteur.temperature()      # degres Celsius
        h = capteur.humidity()         # % HR
        print("T = %.1f C | HR = %.1f %%" % (t, h))
    except OSError:
        # Trame corrompue (capteur occupe, cabling, alim instable).
        print("Echec de lecture, nouvelle tentative...")
    time.sleep(2)  # le DHT22 demande >= 2 s entre deux mesures

# Le module dht est inclus dans les images MicroPython officielles : 
# aucune bibliotheque externe a installer.

← Retour à la fiche