Ja Klar
Write:
Code
#!/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): #on CRTL + C pressed or aborted
global continue_reading
print "Ctrl+C captured, ending read."
continue_reading = False
GPIO.cleanup()
# Hook the SIGINT
signal.signal(signal.SIGINT, end_read) #gets a singal
# 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) #get Signal request
# If a card is found
if status == MIFAREReader.MI_OK:
print "Card detected"
# Get the UID of the card
(status,uid) = MIFAREReader.MFRC522_Anticoll() #so not 2 cards are scanned while first is allready in progress
# 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 = [0x01,0x00,0x00,0x00,0x00,0x00] #key to secure sector
# Select the scanned tag
MIFAREReader.MFRC522_SelectTag(uid)
# Authenticate
status = MIFAREReader.MFRC522_Auth(MIFAREReader.PICC_AUTHENT1A, 7, key, uid) #get state of sector 7 connection succesfull?
print "\n"
# Check if authenticated
if status == MIFAREReader.MI_OK:
# Variable for the data to write
data = [0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x80, 0x69, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
print "Sector 8 looked like this:"
# Read block 8
MIFAREReader.MFRC522_Read(7) #sektor 7 read
print "\n"
print "Sector 8 will now be filled with 0xFF:"
# Write the data
MIFAREReader.MFRC522_Write(7, data) #sektor 7 write
print "\n"
print "It now looks like this:"
# Check to see if it was written
MIFAREReader.MFRC522_Read(7) #sektor 7 read
print "\n"
# Stop
MIFAREReader.MFRC522_StopCrypto1()
# Make sure to stop reading for cards
continue_reading = False
else:
print "Authentication error"
Alles anzeigen
und Read:
Code
#!/usr/bin/env python
# -*- coding: utf8 -*-
import RPi.GPIO as GPIO
import MFRC522
import signal
import pygame
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."
pygame.mixer.init()
pygame.mixer.music.load("boot.mp3")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
continue
pygame.mixer.music.load("startup.mp3")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
continue
pygame.mixer.music.load("OMFG_-_Hello.mp3")
pygame.mixer.music.play()
pygame.mixer.music.pause()
# 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"
else:
pygame.mixer.music.pause()
# 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 = [0x01,0x00,0x00,0x00,0x00,0x00]
# Select the scanned tag
MIFAREReader.MFRC522_SelectTag(uid)
# Authenticate
status = MIFAREReader.MFRC522_Auth(MIFAREReader.PICC_AUTHENT1A, 7, key, uid)
# Check if authenticated
if status == MIFAREReader.MI_OK:
MIFAREReader.MFRC522_Read(7)
MIFAREReader.MFRC522_StopCrypto1()
pygame.mixer.music.unpause()
else:
pygame.mixer.music.pause()
print "Authentication error"
Alles anzeigen
Lg Noel