pyDump1.py, exit once tag data dump finished.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import RPi.GPIO as GPIO
import MFRC522
import signal
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)
print "Place card please..."
# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()
# 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)
# Dump the data
MIFAREReader.MFRC522_DumpClassic1K(key, uid)
# Stop
MIFAREReader.MFRC522_StopCrypto1()
print "--- Finished ---"
continue_reading = False
GPIO.cleanup()
pyDump2.py, wait tag remove after data dump. I assume tag removed if 5 times of MIFAREReader.MFRC522_Request() not OK.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import RPi.GPIO as GPIO
import MFRC522
import signal
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)
print "Place card please..."
# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()
# 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)
# Dump the data
MIFAREReader.MFRC522_DumpClassic1K(key, uid)
# Stop
MIFAREReader.MFRC522_StopCrypto1()
# wait card removed
print "--- Remove Card ---"
card_removed = False
card_removed_counter = 5
while not card_removed:
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
if status != MIFAREReader.MI_OK:
card_removed_counter = card_removed_counter-1
if card_removed_counter==0:
card_removed = True
else:
card_removed_counter = 5
print "--- Card removed---"
print "Place card again please..."
- For setup of RFID Reader, refer "Raspberry Pi 2 + MFRC522-python, to read RFID tag".
- For mxgxw/MFRC522-python, refer "Raspberry Pi 2 + MFRC522-python - Dump RFID Tag data using mxgxw/MFRC522-python".
1 comment:
i've try your code. it run perfectly, but when i tag the card it doesn't show anything on the command prompt. help me please, this is regarding my Final year project :(
Post a Comment