#!/usr/bin/env python import serial import re, sys, signal, os, time, datetime import RPi.GPIO as GPIO BITRATE = 9600 GPIO.setmode(GPIO.BOARD) CARDS = [ '060090840715', '840034BD3E33', ] def signal_handler(signal, frame): print "Cerrando" GPIO.output(7, GPIO.LOW) # Unlock the door on program exit GPIO.cleanup() ser.close() sys.exit(0) if __name__ == '__main__': buffer = '' ser = serial.Serial('/dev/ttyAMA0', BITRATE, timeout=0) rfidPattern = re.compile(b'[\W_]+') signal.signal(signal.SIGINT, signal_handler) while True: # Read data from RFID reader buffer = buffer + ser.readline() if '\n' in buffer: lines = buffer.split('\n') last_received = lines[-2] match = rfidPattern.sub('', last_received) if match: print match if match in CARDS: print 'card authorized' else: print 'unauthorized card' # Clear buffer buffer = '' lines = '' time.sleep(0.1)