Code: Alles auswählen
#!/usr/bin/python
import RPi.GPIO as gpio
from functools import partial
PINS = [2, 3, 4, 9, 10]
CONTROLS = """Buchstaben drücken um Aktion auszuführen:
a) Öffnen Mauer-Kreis
b) Öffnen Bohnen-Kreis
c) Öffnen Apfelbaum-Kreis
d) Öffnen Beet-Kreis
e) Öffnen Nussbaum-Kreis
f) Schließen Mauer-Kreis
g) Schließen Bohnen-Kreis
h) Schließen Apfelbaum-Kreis
i) Schließen Beet-Kreis
j) Schließen Nussbaum-Kreis"""
def open(pin):
gpio.output(pin, gpio.LOW)
return 'Ventil an Pin ' + str(pin) + ' geöffnet'
def close(pin):
gpio.output(pin, gpio.HIGH)
return 'Ventil an Pin ' + str(pin) + ' geschlossen'
def help():
return CONTROLS
def error():
print ('FEHLER: Keine erlaubte Aktion ausgewählt.\n\n' + CONTROLS)
ACTIONS = {
'a': partial(open, 2),
'b': partial(open, 3),
'c': partial(open, 4),
'd': partial(open, 9),
'e': partial(open, 10),
'f': partial(close, 2),
'g': partial(close, 3),
'h': partial(close, 4),
'i': partial(close, 9),
'j': partial(close, 10),
'help': help
}
print(CONTROLS)
def main(prompt):
try:
gpio.setmode(gpio.BCM)
gpio.setup(PINS, gpio.OUT, initial=gpio.HIGH)
while True:
argument = raw_input(prompt)
func = ACTIONS.get(argument, error)
# Execute the function
print func()
except KeyboardInterrupt:
pass
finally:
gpio.cleanup() # this ensures a clean exit
print('QUIT')
if __name__ == '__main__':
main('Action? ')
Dirk