capteur-dht.py
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 Raspberry Pi Pico 2 W (RP2350 + radio Wi-Fi 2,4 GHz) avec MicroPython installé, alimentée par USB. 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
Installer le MicroPython « Pico 2 W » (BOOTSEL + .uf2), copier le script via Thonny. Comme sur la Pico W, la LED utilisateur n'est pas sur un GPIO : utiliser une LED externe pour les sorties.
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.