import time import RPi.GPIO as GPIO import Adafruit_DHT GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) class SystemeThermostat: def __init__(self): self.capteur = Adafruit_DHT.DHT11 self.pinDht = 25 self.boutonPlus = 16 self.boutonMoins = 18 # display 4 digits # à brancher proprement quand le module exact sera fixé self.pinDisplayClk = 7 self.pinDisplayDio = 11 self.temperatureCible = 18 self.temperatureReelle = None self.derniereLectureBouton = 0 self.delaiLectureBouton = 0.25 GPIO.setup(self.boutonPlus, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(self.boutonMoins, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) def lireTemperature(self): humidite, temperature = Adafruit_DHT.read_retry(self.capteur, self.pinDht) if temperature is None: print("Thermostat : lecture DHT11 impossible") return None return temperature def lireBoutons(self): maintenant = time.time() if maintenant - self.derniereLectureBouton < self.delaiLectureBouton: return if GPIO.input(self.boutonPlus): self.temperatureCible += 1 self.derniereLectureBouton = maintenant print("Consigne :", self.temperatureCible, "°C") elif GPIO.input(self.boutonMoins): self.temperatureCible -= 1 self.derniereLectureBouton = maintenant print("Consigne :", self.temperatureCible, "°C") def afficherTemperatures(self): # pour l'instant on affiche dans la console # le vrai code du display ira ici if self.temperatureReelle is None: print("Temp réelle : -- | cible :", self.temperatureCible) else: print("Temp réelle :", str(self.temperatureReelle) + "°C", "| cible :", str(self.temperatureCible) + "°C") def mettreAJour(self): self.lireBoutons() self.temperatureReelle = self.lireTemperature() self.afficherTemperatures() if self.temperatureReelle is None: return True return False def cleanup(self): # rien à éteindre ici, incroyable mais vrai pass