Bonjour,
Il a fallu du temps mais le programme est fini et surtout il fonctionne !!!
Je vous laisse mon programme.
En gros, j’ai 2 broches GPIO une INPUT(21) et une OUTPUT(17). Le programme en démarrant va vérifié si le fichier .txt existe (compteur_ampoule_temps.txt) sinon, il le créera.
Lorsque la broche GPIO 21 est a 1 (état haut) ma sortie GPIO 17 change d’état se qui active un relais qui alimentera mon ampoule. Mais surtout le compteur comptera. Il y a une alarme pour le temps où l’ampoule est allumée. Le programme comptant en seconde, je multiplie 19506060. Le temps alarme est 1950H. je multiplie par 60 minutes puis par 60 pour avoir le tous en seconde. Une fois la broche 21 à 0 le programme vérifiera ma consigne d’alerte et si le temps est dépassé ma LED3 s’allumera. Et il comptera ainsi de suite sur commande de ma broche GPIO.
Un grand merci a toi Jelopo pour les infos. Ca m’as mis un peu de temps avec un peu d’aide je reconnais, mais cela fonctionne, bonne chose de faite.
Encore merci.
Si quelqu’un veut plus de précision qu’il n’hésite pas.
Bonne continuation à tous.
# LIBRAIRIE #
import time
import board
import RPi.GPIO as GPIO # LIBRAIRIE GPIO "
import datetime
GPIO.cleanup() # REINITIALISE VARIBLE SUR GPIO #
# CONFIGURATION GPIO #
GPIO.setmode(GPIO.BCM) # NUMERO DES GPIO A UTILISER
ampoule = 17 # COMMANDE RELAIS AMPOULE DEFINIE SUR BROCHE GPIO 04
GPIO.setup(ampoule,GPIO.OUT) # GPIO AMPOULE DEFINI COMME SORTIE
GPIO.output(ampoule,1)
cpt_temp_on = 21 # COMMANDE ACTIVE COMPTEUR AMPOULE
GPIO.setup(cpt_temp_on,GPIO.IN)
led3 = 25 # LED 3 DEFINI SUR GPIO 25
GPIO.setup(led3,GPIO.OUT)
GPIO.output(led3,0) # LED 3 _ VOYANT CHANGEMENT AMPOULE
# PROGRAMME #
try:
fichier_horodatage = open("compteur_ampoule_temps.txt", "r") # VERIFIE SI DOSSIER SAUVEGARDE EXISTE, SI NON CREATION
temps = fichier_horodatage.read()
fichier_horodatage.close()
if temps.strip() == "":
tempsUtilisationAmpoule = 0
else:
tempsUtilisationAmpoule = int(temps)
except:
tempsUtilisationAmpoule = 0
print(tempsUtilisationAmpoule)
time.sleep(5)
estAlumee = False
dureeMax = 1950*60*60 #REGLE ALERTE TEMPS UTILISATION AMPOULE EN SECONDE H*MIN*SEC
afficher = 0
while True:
if GPIO.input(cpt_temp_on) == 1:
if estAlumee == False:
debut = datetime.datetime.now()
debut_h = debut.strftime("%H")
debut_m = debut.strftime("%M")
debut_s = debut.strftime("%S")
estAlumee = True
#print("1")
elif estAlumee == True:
estAlumee = False
fin = datetime.datetime.now()
fin_h = fin.strftime("%H")
fin_m = fin.strftime("%M")
fin_s = fin.strftime("%S")
tempsUtilisationAmpoule += (int(fin_h)-int(debut_h))*60*60 + (int(fin_m)-int(debut_m))*60 + (int(fin_s)-int(debut_s))
if tempsUtilisationAmpoule > dureeMax:
GPIO.output(led3,1) # ALLUMME LED TEMPS UTILISATION AMPOULE DEPASSE
fichier_horodatage = open("compteur_ampoule_temps.txt", "w")
fichier_horodatage.write(str(tempsUtilisationAmpoule))
fichier_horodatage.close()
print("Le temps d'allumage de l'ampoule est :", tempsUtilisationAmpoule, "seconde.")
time.sleep(5)
afficher += 1
if afficher%1000 == 0:
print(ampoule)