from machine import Pin, I2C
import dht
from time import sleep_ms
from ssd1306 import SSD1306_I2C # Importer la classe SSD1306_I2C depuis la bibliothèque ssd1306
# Définir les broches pour le capteur DHT22
dht_pin = 5 # GPIO5 sur ESP32
# Définir les broches pour l'écran OLED I2C
sda_pin = 21 # GPIO21 sur ESP32
scl_pin = 22 # GPIO22 sur ESP32
# Définir la broche pour la LED
led_pin = 14 # GPIO14 sur ESP32
# Initialiser le capteur DHT22
dht_sensor = dht.DHT22(Pin(dht_pin))
# Initialiser l'écran OLED I2C
i2c = I2C(sda=Pin(sda_pin), scl=Pin(scl_pin))
oled = SSD1306_I2C(128, 64, i2c)
# Initialiser la LED
led = Pin(led_pin, Pin.OUT)
while True:
try:
# Mesurer l'humidité et la température
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
# Allumer la LED si la température est supérieure à 23 degrés Celsius
if temperature > 23:
led.value(1)
else:
led.value(0)
# Afficher les données sur l'écran OLED
oled.fill(0)
oled.text("Temperature: {} C".format(temperature), 0, 10)
oled.text("Humidity: {} %".format(humidity), 0, 30)
oled.show()
# Attendre quelques secondes avant la prochaine mesure
sleep_ms(5000)
except Exception as e:
print("Erreur:", e)