j'utilise un Raspi 1B sur lequel sont connectés 15 boutons poussoirs + 1 led. Chacun des boutons représentent une boite à lettre, le temps de pression détermine le contenu de la boite (lettre, colis et spécial) et appelle le script bash approprié pour l'envoi d'un email. Actuellement, j'ai plusieurs scripts python (15, un pour chaque bouton) que je souhaiterai fusionner en un seul mais je n'y arrive pas.
Voici le script (un des scripts) :
Code : Tout sélectionner
#!/usr/bin/env python2.7
from time import sleep
import subprocess
import RPi.GPIO as GPIO
# GPIO 2 (pin 3)
CHANNEL = 2
# durees
colis = 2
special = 4
# GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(CHANNEL, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# LED
GPIO.setup(18,GPIO.OUT)
GPIO.output(18,GPIO.LOW)
# fonction de gestion du bouton
def system_button(CHANNEL):
# variable de stockage du temps de pression
button_press_timer = 0
while True:
if (GPIO.input(CHANNEL) == False) :
button_press_timer += 0.2
GPIO.output(18,GPIO.HIGH)
else:
if (button_press_timer > special) :
print "special : ", button_press_timer
subprocess.call("./Special.sh", shell=True)
GPIO.output(18,GPIO.LOW)
elif (button_press_timer > colis) :
print "colis : ", button_press_timer
subprocess.call("./Colis.sh", shell=True)
GPIO.output(18,GPIO.LOW)
elif (button_press_timer > 0.2):
print "lettre : ", button_press_timer
subprocess.call("./Lettre.sh", shell=True)
GPIO.output(18,GPIO.LOW)
button_press_timer = 0
sleep(0.2)
GPIO.add_event_detect(CHANNEL, GPIO.FALLING, callback=system_button, bouncetime=200)
try:
while True:
sleep (2)
except KeyboardInterrupt:
GPIO.cleanup()
GPIO.cleanup()