Created
January 14, 2018 13:06
-
-
Save vmwsree/b86a3bc05bb0e799b7a52195ed506a07 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf8 -*- | |
import RPi.GPIO as GPIO | |
import MFRC522 | |
import signal | |
from kivy.app import App | |
from kivy.uix.button import Button | |
class TestApp(App): | |
def build(self): | |
return Button(text='Hello World') | |
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: "+str(uid[0])+","+str(uid[1])+","+str(uid[2])+","+str(uid[3]) | |
# 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: | |
MIFAREReader.MFRC522_Read(8) | |
MIFAREReader.MFRC522_StopCrypto1() | |
else: | |
print "Authentication error" | |
TestApp().run() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment