capteur-dht.py
El módulo dht incluido en MicroPython controla sensores DHT11/DHT22 en cualquier pin. El script mide cada 2 s (cadencia mínima del sensor), captura errores de trama e imprime temperatura y humedad.
Hardware
Una placa genérica con microcontrolador RP2040 (doble Cortex-M0+) programada en MicroPython. 1 sensor DHT22 (o DHT11) en carcasa de 3 o 4 pines + resistencia de 10 kΩ si está suelto.
Cableado
VDD a 3V3 (o 5 V según sensor), GND, DATA a GP4 con pull-up de 10 kΩ a VDD. En módulos de 3 pines la resistencia viene integrada.
Funcionamiento
capteur.measure() envía el impulso de arranque y decodifica la trama de 1 hilo; temperature()/humidity() devuelven los últimos valores. Un OSError indica una trama perdida, reintentada en el ciclo siguiente.
Ejecución
Graba MicroPython vía BOOTSEL (archivo .uf2) y copia el script en la unidad de la placa. Comprueba el pin del LED de usuario de tu placa (a menudo GP25) y adáptalo si hace falta.
Variantes
Cambia al DHT11 (menos preciso pero más barato) modificando la clase, o registra las medidas en CSV con el script de registro.
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.