Page 1 sur 3
Compteur de temps de fonctionnement
Posté : jeu. 14 mai 2015 13:56
par SoBritish
Bonjour,
Debutant, voir même très débutant en python je viens demander conseille.
Je cherche a faire avec mon rasp un compteur horaire déclencher par une entré GPIO, reset par une autre entré.
La valeur doit être sauvegarder pour palier la coupure elec. J'exporte ensuite la valeur du compteur dans un .Csv
Pour la gestion des gpio et l'exporte vers un cvs je pense avoir trouver les tuto qui m'aiderons. Par contre pour le compteur horaire sauvegarder je ne trouve pas grand chose, Juste de quoi mesurer le temps mais rien de sauvegarder si coupure elec
Re: Compteur de temps de fonctionnement
Posté : jeu. 14 mai 2015 14:21
par Manfraid
salut
soit plus précis sur ce que tu veux en compteur horaire
Re: Compteur de temps de fonctionnement
Posté : jeu. 14 mai 2015 16:41
par SoBritish
Mesurer le temps de fonctionnement d'une machine.
Dès que l'entre GPIO est mise a un le comptage en minute débute, si l'entrée passe à zéro le compteur s'arrête sans repasser à zero, il redémarre dès que l'entrée repasse à un. Si il y a une coupure sur le rasp la mesure ne doit pas être remise à zéro.
La remise à zéro se fera au moyeun d'un petit bouton sur une autre entrée GPIO.
Re: Compteur de temps de fonctionnement
Posté : jeu. 14 mai 2015 19:45
par Manfraid
ok j'ai bien compris
par contre la gestion en cas de coupure de courant risque d'être délicat, car il faut que rpi soit bien a l'heure car sinon les donnée vont être faussé
Re: Compteur de temps de fonctionnement
Posté : jeu. 14 mai 2015 19:51
par SoBritish
Je ne suis pas a l'heure prèt. Le compteur va servir a définir la maintenance de la machine. Qui intervient au mini toute les 100 heures. Une erreur de 1% est négligeable
Re: Compteur de temps de fonctionnement
Posté : jeu. 14 mai 2015 20:13
par Manfraid
j'avais bien compris le principe, mais si le rpi ce remet a l'heure initiale tu pers toutes la durée des anciennes mesures
Edit :
le Rpi auras-t-il la possibilité de se mettre a l'heure par un moyen quelconque ?
Re: Compteur de temps de fonctionnement
Posté : jeu. 14 mai 2015 20:22
par SoBritish
ils sera connecter au réseau et internet si nécessaire
Re: Compteur de temps de fonctionnement
Posté : jeu. 14 mai 2015 21:07
par Manfraid
d'accord, merci pour ces informations je vais essayer de te faire une ébauche de programme
Re: Compteur de temps de fonctionnement
Posté : sam. 16 mai 2015 09:58
par SoBritish
Merci, sympa, dans l'attente de te lire
Re: Compteur de temps de fonctionnement
Posté : dim. 17 mai 2015 15:06
par Manfraid
Salut,
voici un début de ce que tu pourrais faire, en sachant que pour le bout de code que je te donne il n'y a pas la sauvegarde dans un fichier. et je cherche aussi une solution pour la coupure de courant mais je n'ai pas trop d'idée pour le moment
Code : Tout sélectionner
# -*- coding: utf-8 -*-
"""
Created on Thu May 14 20:36:01 2015
@author: jerome
"""
from time import time, sleep # pour gestion du temps
import RPi.GPIO as GPIO # gestion IO
btreset = 17 # entrée pour reset compteur horaire
infomarche = 18 # entrée pour comptage horaire
# a adapter selon besoin
GPIO.setmode(GPIO.BCM)
GPIO.setup(btreset, GPIO.INPUT)
GPIO.setup(infomarche, GPIO.INPUT)
total = 0 # total horaire en seconde
tstart = 0
def start(channel):
global tstart
tstart = time()
def stop(channel):
global tstart, total
total += time() - tstart
print("{} heure(s) de fonctionnement.".format(total))
tstart = 0
def reset(channel):
global total
total = 0
GPIO.add_event_detect(infomarche, GPIO.RISING, callback=start, bouncetime=200)
GPIO.add_event_detect(infomarche, GPIO.FALLING, callback=stop, bouncetime=200)
GPIO.add_event_detect(btreset, GPIO.RISING, callback=reset, bouncetime=200)
try:
while True:
sleep(0.1)
except KeyboardInterrupt:
GPIO.remove_event_detect(btreset)
GPIO.remove_event_detect(infomarche)
GPIO.cleanup()