Raspberry Pi Episodio 6: RFID

Arrivati al capolinea!
Finalmente dopo circa un anno, ci siamo riusciti!
Abbiamo portato a termine questa serie di episodi su Raspberry.
Come promesso abbiamo pubblicato 6 episodi.

In questo episodio si parla di una tecnologia molto discussa di recente, in ambito di pagamenti con smartphone e controllo accessi: RFID.
In effetti si è realizzato un sistema in grado di riconoscere opportuni TAG e consentire o meno determinate operazioni.

Qui di seguito lo schema di collegamento del setup riassunto in una tabella:

Collegamenti Raspberry

La libreria SPI potete scaricarla qui:

[cpp] git clone https://github.com/lthiery/SPI-Py
[/cpp]

mentre il framework Python per l’ RFID lo trovate qui:

[cpp]

git clone https://github.com/mxgxw/MFRC522-python

[/cpp]

Qui il codice Read.py modificato:

[cpp] import RPi.GPIO as GPIO
import MFRC522
import signal
import time

#set up GPIO using BCM
GPIO.setmode(GPIO.BOARD)

#setup GPIO PIN
led=11
GPIO.setup (led, GPIO.OUT)

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 au$
while continue_reading:
GPIO.output(buz, False)
# 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])+","$

# 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,$

# Check if authenticated
if status == MIFAREReader.MI_OK:
MIFAREReader.MFRC522_Read(8)
MIFAREReader.MFRC522_StopCrypto1()
GPIO.output(buz, True)
time.sleep(5)
else:
print "Authentication error"
GPIO.output (buz, False)

[/cpp]

Vi ricordo di iscrivervi alla nostra newsletter, questo mese riceverete in anticipo l’annuncio di un grande ritorno. Forse due!

Alla Prossima!

Vincenzo Cicogna on FacebookVincenzo Cicogna on GithubVincenzo Cicogna on LinkedinVincenzo Cicogna on TwitterVincenzo Cicogna on Youtube
Vincenzo Cicogna

Editore e autore di questo blog di notte, sviluppatore software per sistemi embedded di giorno, passa il suo tempo a dilettarsi ed approfondire le dinamiche del mondo.

Appassionato di droni e tuttala, si diletta di tanto in tanto a scattare qualche foto in giro per il mondo o a leggere qualche libro.

Ama viaggiare, fotografare e condividere le sue produzioni.


Tags:
By Vincenzo Cicogna | marzo 30th, 2015 | LEAVE A COMMENT