dht_temp.py
Le module DHT (trois broches) transmet température et humidité sur un bus 1-Wire bit-bangé en logiciel depuis GPIO4 (broche 7). read_retry retente la lecture, capricieuse sur les cartes à petit CPU comme model-5. Sortie toutes les 2 s, idéale pour un suivi de serre ou de cave à vin.
Matériel requis
Une Raspberry Pi 5 (BCM2712 quad-core 2,4 GHz, puce I/O RP1, GPIO 40 broches, alimentation USB-C 5 V/5 A recommandée, deux ports caméra CSI). Un capteur DHT11 ou DHT22, une résistance de 10 kΩ (pull-up), fils dupont.
Câblage
VCC sur 3,3 V, GND sur GND, DATA sur GPIO4 (broche 7) avec résistance 10 kΩ vers 3,3 V. Brochage à confirmer sur le schéma officiel J8.
Fonctionnement
Le script envoie un start, le capteur répond par 40 bits ; le timing logiciel dépend de la charge CPU, d'où les retries.
Exécution
Copiez le script sur la carte (scp), puis lancez-le avec python3. Sous Bookworm, gpiozero 2.x pilote les broches via la puce RP1 ; gardez gpiozero et python3-rpi.gpio à jour (sudo apt full-upgrade). Alimentation 5 V/5 A conseillée.
Variantes
DHT22 plus précis (±0,5 °C) que DHT11 ; enregistrer dans un CSV pour un historique. Alimentation 27 W (5 V/5 A) recommandée ; sans elle, l'USB se limite à 600 mA au total.
dht_temp.py
# dht_temp.py — lit temperature et humidite (DHT11/DHT22).
# Deps: pip3 install Adafruit_DHT (ou depot officiel)
import time
import Adafruit_DHT
SENSOR = Adafruit_DHT.DHT22 # DHT11 sur les petits modules bleus
PIN = 4 # GPIO4, broche 7
while True:
humidity, temperature = Adafruit_DHT.read_retry(SENSOR, PIN)
if humidity is not None and temperature is not None:
print(f"T={temperature:0.1f}C H={humidity:0.1f}%")
else:
print("Lecture rate: verifier cablage, pull-up 10k et alimentation")
time.sleep(2)