###Anstatt er die Uid hier aus dem oberen Zeilen Vergleicht, soll er in meine excel-Liste gehen und gucken ob der eintrag vorhanden ist
die wichtigsten schritte hab ich schon gemacht und kann auch aus den Excel-liste einträge auslesen und printen.
Kann mir Jemand helfen bitte ? Ich will das der nur aus der excel liste die Spalte UID mit der gegebenen uid vergleicht und falls richtig dann weiter macht mit dem schalten des relais.
Code: Alles auswählen
import RPi.GPIO as GPIO
import MFRC522
import signal
import time
import xlrd
import xlsxwriter
path = "user.xlsx"
inputWorkbook = xlrd.open_workbook(path)
inputWorksheet = inputWorkbook.sheet_by_index(0)
GPIO.setmode(GPIO.BOARD) # GPIO Nummern statt Board Nummern
MEIN_ERSTES_RELAIS_NUMMER = 3 #
GPIO.setup(MEIN_ERSTES_RELAIS_NUMMER, GPIO.OUT) # GPIO Modus zuweisen
MEIN_ZWEITES_RELAIS_NUMMER = 7 #
GPIO.setup(MEIN_ZWEITES_RELAIS_NUMMER, GPIO.OUT) # GPIO Modus zuweisen
#MEIN_DRITTES_RELAIS_NUMMER = 11 #
#GPIO.setup(MEIN_DRITTES_RELAIS_NUMMER, GPIO.OUT) # GPIO Modus zuweisen
#MEIN_VIERTES_RELAIS_NUMMER = 5 #
#GPIO.setup(MEIN_VIERTES_RELAIS_NUMMER, GPIO.OUT) # GPIO Modus zuweisen
Karte_1 = [99,82,179,2,128]
Karte_2 = [105,68,46,195,192]
continue_reading = True
# Capture SIGINT for cleanup when the script is aborted
def end_read(signal,frame):
global continue_reading
print "Ctrl+C captured, ending read."
continue_reading = False
GPIO.cleanup()
# Hook the SIGINT
signal.signal(signal.SIGINT, end_read)
# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()
# Welcome message
print "Welcome to the MFRC522 data read example"
print "Press Ctrl-C to stop."
# This loop keeps checking for chips. If one is near it will get the UID and authenticate
while continue_reading:
# Scan for cards
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
# If a card is found
if status == MIFAREReader.MI_OK:
print "Card detected"
# Get the UID of the card
(status,uid) = MIFAREReader.MFRC522_Anticoll()
# If we have the UID, continue
if status == MIFAREReader.MI_OK:
# Print UID
print "Card read UID: %s,%s,%s,%s,%s" % (uid[0], uid[1], uid[2], uid[3], uid[4])
# This is the default key for authentication
key = [0xFF,0xFF,0xFF,0xFF,0xFF,0xFF]
# Select the scanned tag
MIFAREReader.MFRC522_SelectTag(uid)
# Authenticate
status = MIFAREReader.MFRC522_Auth(MIFAREReader.PICC_AUTHENT1A, 8, key, uid)
# Check if authenticated
if status == MIFAREReader.MI_OK:
data = MIFAREReader.MFRC522_Read(8)
print "data = "+str(data)
text = "".join(chr(x) for x in data)
# Zeilenumbruch ausgeben
print "\n"
print ">>>>>>>>> Username = "+text
print "\n"
MIFAREReader.MFRC522_StopCrypto1()
[b]###Anstatt er die Uid hier aus dem code von oben zieht, soll er in meine excel-Liste gehen und gucken ob der eintrag vorhanden ist [/b]
[b][u] if uid == Karte_1:
print "Tür öffnet sich"
GPIO.output(MEIN_ERSTES_RELAIS_NUMMER, GPIO.LOW) # aus ground
#GPIO.output(RELAIS_1_GPIO, GPIO.HIGH) # an
time.sleep(1)
GPIO.output(MEIN_ERSTES_RELAIS_NUMMER, GPIO.HIGH) #
print "Karte_1 Relais_1"
elif uid == Karte_2:
print "Tür öffnet sich"
GPIO.output(MEIN_ZWEITES_RELAIS_NUMMER, GPIO.LOW) # aus ground
#GPIO.output(RELAIS_1_GPIO, GPIO.HIGH) # an
time.sleep(1)
GPIO.output(MEIN_ZWEITES_RELAIS_NUMMER, GPIO.HIGH) #
print "Karte_2 Relais_2"[/u][/b]
#GPIO.output(MEIN_DRITTES_RELAIS_NUMMER, GPIO.LOW) # aus ground
#GPIO.output(RELAIS_1_GPIO, GPIO.HIGH) # an
#time.sleep(1)
#GPIO.output(MEIN_DRITTES_RELAIS_NUMMER, GPIO.HIGH) #
#GPIO.output(MEIN_VIERTES_RELAIS_NUMMER, GPIO.LOW) # aus ground
#GPIO.output(RELAIS_1_GPIO, GPIO.HIGH) # an
#time.sleep(1)
#GPIO.output(MEIN_VIERTES_RELAIS_NUMMER, GPIO.HIGH) #
else:
print "Tür bleibt geschlossen"
else:
print "Authentication error"