import RPi.GPIO as GPIO import time import serial import string GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) #Code für NFC Reader, aus WEB (Brads´s Rasberry Pi Blog) serial = serial.Serial("/dev/ttyUSB0", baudrate=9600) code = '' # GPIO 17 und 27 als Ausgang fuer den Motor setzen GPIO.setup(11, GPIO.OUT) GPIO.setup (13, GPIO.OUT) # GPIO 20 und 21 als Eingang festlegen um die zwei Taster abzufragen GPIO.setup(16, GPIO.OUT) GPIO.setup(18, GPIO.OUT) # GPIO 20 und 21 als Eingang festlegen um die zwei Taster abzufragen GPIO.setup(38, GPIO.IN) GPIO.setup(40, GPIO.IN) def torzu(): GPIO.output(11, GPIO.LOW) GPIO.output(13, GPIO.HIGH) def torauf(): GPIO.output(11, GPIO.HIGH) GPIO.output(13, GPIO.LOW) def lampeaus(): GPIO.output(16, GPIO.LOW) GPIO.output(18, GPIO.LOW) def lampean(): GPIO.output(16, GPIO.HIGH) GPIO.output(18, GPIO.HIGH) def motoraus(): GPIO.output(11, GPIO.LOW) GPIO.output(13, GPIO.LOW) #Try-Block: Versucht es solange bis über str+c abgebrochen wird try: while 1: motoraus() #hier liest er den code von der NFC Karte ein data = serial.read() #wenn karte die richtige nummer hat if data == '\r': print(code) #wenn kein Taster gedrückt ist if GPIO.input(40) == GPIO.LOW and GPIO.input(38) == GPIO.LOW: lampean() torzu() #wenn es laenger als 5 durchlaeufe braucht. Stoppt motor und lampe i = 0 while i<5: # 1 oder 0 von GPIO 40. 0 wenn nicht gedrückt 1 gedrückt y = GPIO.input(40) print y time.sleep(2) if y == 1: # wenn einer der Taster geschlossen ist, soll der Motor und Lampe anhalten motoraus() lampeaus() print("Motor wurde an Position gestoppt") i = 6 i= i+1 elif (string.find(code, '55000840736E') != -1 and GPIO.input(40) == GPIO.HIGH): #Taster zu ist gedrückt und Karte ist richtig lampean() time.sleep(1) print("Tor geht auf") torauf() i = 0 while i<5: x = GPIO.input(38) print x time.sleep(2) if x == GPIO.HIGH: # wenn einer der Taster geschlossen ist, soll der Motor und Lampe anhalten motoraus() lampeaus() print("Motor wurde an Position gestoppt") time.sleep(5) i = 6 i= i+1 elif GPIO.input(38) == GPIO.HIGH and string.find(code, '55000840736E') != -1 : #Taster auf ist gedrückt und Karte ist richtig lampean() time.sleep(1) print("Tor geht zu") torzu() i = 0 while i<5: y = GPIO.input(40) print y time.sleep(2) if y == 1: # wenn einer der Taster geschlossen ist, soll der Motor und Lampe anhalten tor == 1 motoraus() lampeaus() print("Motor wurde an Position gestoppt") time.sleep(5) i = 6 i= i+1 else: #wenn falsche Taste grdrückt print("Falsche taste gedrueckt") code = '' else: #else von der NFC Karte code = code + data except KeyboardInterrupt: #Hier folgt, was passieren soll, wenn strg-c gedrueckt wird pass GPIO.output(11, GPIO.LOW) #GPIOs stromlos schalten GPIO.output(13, GPIO.LOW) GPIO.output(16, GPIO.LOW) GPIO.output(18, GPIO.LOW) GPIO.cleanup() #GPIO-Belegungen loeschen print("Programm unterbrochen")