Files
loustique-home/composants/byPanda/lumieres.py
2026-03-31 20:09:26 +02:00

88 lines
2.4 KiB
Python

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
class SystemeLumieres:
def __init__(self):
# la pin de la 2e photorésistance manque sur le schéma
# donc ici on met une valeur temporaire
# elle apparaîtra peut-être un jour, comme la motivation en fin de projet
self.pinPhotoInterieure = 29
self.led1 = 6
self.led2 = 9
self.led3 = 13
self.boutonManuel = 36
self.modeManuel = False
self.lumieresAllumees = False
GPIO.setup(self.pinPhotoInterieure, GPIO.IN)
GPIO.setup(self.led1, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(self.led2, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(self.led3, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(self.boutonManuel, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
self.derniereLectureBouton = 0
self.delaiLectureBouton = 0.25
def lireLuminositeInterieure(self):
return GPIO.input(self.pinPhotoInterieure)
def allumerLumieres(self):
GPIO.output(self.led1, GPIO.HIGH)
GPIO.output(self.led2, GPIO.HIGH)
GPIO.output(self.led3, GPIO.HIGH)
self.lumieresAllumees = True
def eteindreLumieres(self):
GPIO.output(self.led1, GPIO.LOW)
GPIO.output(self.led2, GPIO.LOW)
GPIO.output(self.led3, GPIO.LOW)
self.lumieresAllumees = False
def gererBoutonManuel(self):
maintenant = time.time()
if maintenant - self.derniereLectureBouton < self.delaiLectureBouton:
return
if GPIO.input(self.boutonManuel):
self.modeManuel = not self.modeManuel
self.derniereLectureBouton = maintenant
if self.modeManuel:
self.lumieresAllumees = not self.lumieresAllumees
if self.lumieresAllumees:
self.allumerLumieres()
else:
self.eteindreLumieres()
else:
print("Lumières : retour en auto")
def mettreAJour(self):
self.gererBoutonManuel()
if self.modeManuel:
return False
luminosite = self.lireLuminositeInterieure()
if luminosite == 0:
self.allumerLumieres()
print("Lumières : on allume")
else:
self.eteindreLumieres()
print("Lumières : on coupe")
return False
def cleanup(self):
self.eteindreLumieres()