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 carte générique à microcontrôleur RP2350 (double Cortex-M33) 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 le MicroPython « RP2350 » via BOOTSEL (.uf2), puis copier le script sur le lecteur. La broche de la LED utilisateur varie selon le fabricant : vérifier la documentation de la carte.
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.