capteur-dht.py

Raspberry Pi Pico 2 W · File : capteur-dht.py · Language : Python · Use case : Relever température et humidité avec un capteur DHT

The dht module built into MicroPython drives DHT11/DHT22 sensors on any pin. The script measures every 2 s (the sensor minimum rate), catches frame errors and prints temperature and humidity.

Hardware

A Raspberry Pi Pico 2 W (RP2350 + 2.4 GHz Wi-Fi radio) with MicroPython installed, powered over USB. 1 DHT22 (or DHT11) sensor in a 3 or 4-pin package + 10 kΩ resistor for bare sensors.

Wiring

VDD to 3V3 (or 5 V per sensor), GND, DATA to GP4 with a 10 kΩ pull-up to VDD. On 3-pin modules the resistor is built in.

How it works

capteur.measure() sends the start pulse then decodes the 1-wire frame; temperature()/humidity() return the latest values. An OSError means a lost frame, retried next cycle.

Running it

Install the « Pico 2 W » MicroPython build (BOOTSEL + .uf2), copy the script via Thonny. As on the Pico W, the user LED is not on a GPIO: use an external LED for outputs.

Variants

Switch to the DHT11 (less accurate but cheaper) by changing the class, or log readings to CSV with the logging script.

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.

← Back to the board