from machine import Pin, I2C
from time import sleep
import dht
from ssd1306 import SSD1306_I2C
# --- Configuration du capteur DHT11 ---
capteur = dht.DHT11(Pin(4)) # DHT11 branché sur GPIO4
# --- Configuration de l'écran OLED ---
# (par défaut : SCL -> GPIO22, SDA -> GPIO21 pour ESP32)
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled = SSD1306_I2C(128, 64, i2c)
# --- Boucle principale ---
while True:
try:
capteur.measure() # lire les données du DHT11
temp = capteur.temperature() # température (°C)
hum = capteur.humidity() # humidité (%)
# Afficher sur la console (utile pour test)
print("Température :", temp, "°C")
print("Humidité :", hum, "%")
# Effacer l'écran avant chaque mise à jour
oled.fill(0)
# Afficher le titre et les données
oled.text("Capteur DHT11", 10, 0)
oled.text("Temp: {} C".format(temp), 0, 25)
oled.text("Hum: {} %".format(hum), 0, 40)
# Actualiser l'affichage
oled.show()
sleep(2)
except Exception as e:
print("Erreur de lecture :", e)
oled.fill(0)
oled.text("Erreur capteur", 10, 25)
oled.show()
sleep(2)