# Importation des modules nécessaires pour le script.
from machine import Pin, SoftI2C # Pour le contrôle des broches GPIO et la communication I2C.
from i2c_lcd import I2cLcd # Pour utiliser un écran LCD via I2C.
from time import sleep # Pour créer des délais dans l'exécution du programme.
import dht # Pour lire les données de température et d'humidité depuis un capteur DHT22.
# Configuration du capteur DHT22 connecté à la broche GPIO 15.
sensor = dht.DHT22(Pin(15))
# Adresse I2C de l'écran LCD. Cela dépend de votre module LCD et peut varier.
I2C_ADDR = 0x27
# Définition des dimensions de l'écran LCD (nombre de lignes et de colonnes).
lignes = 2
colonnes = 16
# Initialisation de la communication I2C avec le microcontrôleur.
# Les broches GPIO 22 et 21 sont utilisées respectivement pour SCL (clock) et SDA (data).
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000)
# Création d'un objet lcd pour interagir avec l'écran LCD via I2C.
lcd = I2cLcd(i2c, I2C_ADDR, lignes, colonnes)
# Boucle principale qui s'exécute indéfiniment.
while True:
sleep(2) # Pause de 2 secondes entre chaque mesure.
sensor.measure() # Effectue une mesure de température et d'humidité.
# Lecture de la température en Celsius et conversion en Fahrenheit.
temp = sensor.temperature()
hum = sensor.humidity()
temp_f = temp * (9/5) + 32.0 # Conversion de Celsius en Fahrenheit.
# Affichage des mesures dans la console.
print('Temp: %3.1f C' % temp)
print('Temp: %3.1f F' % temp_f)
print('Hum: %3.1f %%' % hum)
# Affichage des mesures de température et d'humidité sur l'écran LCD.
lcd.move_to(0, 0) # Positionne le curseur au début de la première ligne de l'écran.
lcd.putstr('Temp: %3.1f C' % temp) # Affiche la température en Celsius.
lcd.move_to(0, 1) # Positionne le curseur au début de la deuxième ligne.
lcd.putstr('Hum: %3.1f %%' % hum) # Affiche l'humidité relative.