Questo Card Reader RFID RC-522 a 13.56 Mhz, basato sul chip MFRC522 della NXP Semiconductors è stato progettato per la lettura/scrittura di tag per l’identificazione a radio frequenza.
Il modulo può essere utilizzato per svariate applicazioni sia professionali che amatoriali nell’ambito di controllo accessi, identificazione automatica, robotica, navigazione, sistemi di pagamento e antifurto immobilizzatori per auto.
Indice
Dove trovare il dispositivo
Il dispositivo può essere trovato sul sito HOMOTIX,
Oltre a l kit potranno essere acquistati le singole schede Formato Tessera, oppure gli RFID formato portachiavi
Modulo RFID RC-522 e TAG codice HMTRC522 | Tag RFID Mifare Formato Tessera codice HMTTAGT | Tag RFID Mifare Formato Portachiavi codice HMTTAGP |
Contenuto del Kit
Come illustrato nell’immagine riportata in basso, la confezione contiene:
-
Modulo-Lettore di card RFID RC-522,
-
IC card S50 standard, Formato Tessera operante a 13,56 MHz, ogni tag è fornito pre programmato con un codice univoco, realizzato in ABS con capacità di memoria: 1024 Kbit
-
1 x card S50 dalla particolare forma a portachiavi, operante a 13,5 MHz, ogni tag è fornito preprogrammato con un codice univoco.
-
1 Connettore strip 1x8pin a 90° + 1 x connettore strip 1x8pin
Nota: in pin sono da saldare da parte dell’utilizzatore
Tutti i componenti sopra riportati sono presenti nel Kit Arduino Avanzato con Arduino Uno R3 Compatibile, venduto dal sito HOMOTIX, il kit è adatto a utenti esperti e principianti, con i componenti forniti è possibile realizzare una ampia varietà di progetti.
Caratteristiche
- Alimentazione: 3.3V
- Assorbimento :13-26 mA, in Stand-by:10-13 mA, in Sleep:<80 uA
- Corrente di picco:<30 mA
- Frequenza operativa: 13.56MHz
- Card supportate: S50, S70 Ultralight, Pro, DESFire
- Temperatura operativa/stoccaggio : -20/80° C -40/85° C
- Umidità relativa:5%-95%
- Interfaccia: SPI
- Velocità di trasferimento dati: max 10Mbit/s
- Dimensioni:40 x 60 mm
- Peso: 20,5g
L’integrato MFRC522
Il modulo reader RFID-RC522 utilizza l’integrato MFRC522, lo schema a blocchi semplificato è visibile nella foto sottostante
L’MFRC522 è un integrato lettore/scrittore altamente integrato per la comunicazione senza contatto a 13,56 MHz. Il lettore MFRC522 supporta ISO / IEC 14443 A / MIFARE e NTAG.
Il trasmettitore interno dell’MFRC522 è in grado di pilotare un’antenna reader/writer progettata per comunicare con schede ISO / IEC 14443 A / MIFARE e transponder senza ulteriore circuiteria attiva.
Il modulo ricevitore fornisce un’implementazione robusta ed efficiente per segnali di demodulazione e decodifica di schede compatibili ISO / IEC 14443 A / MIFARE e transponder.
Il modulo digitale gestisce l’inquadratura ISO / IEC 14443 A completa e funzionalità di rilevamento degli errori (parità e CRC).
L’MFRC522 supporta i prodotti MF1xxS20, MF1xxS70 e MF1xxS50. L’MFRC522 supporta la comunicazione senza contatto e utilizza MIFARE velocità di trasferimento più elevate fino a 848 kBd in entrambe le direzioni.
Frontend MIFARE e NTAG prestazioni standard Sono fornite le seguenti interfacce host:
-
Serial Peripheral Interface (SPI)
-
UART seriale
-
Interfaccia bus I2C
MFRC522 Standard performance MIFARE and NTAG frontend
Come Funziona un sistema RFID
Un sistema RFID, in particolare, si compone di transponder, detto anche tag, il cui chip contiene i dati, di antenna, per comunicare con il tag e gestita dal controller, e di reader (o controller), che attraverso il segnale radio legge l’identificativo del tag e può scriverne la memoria, trasmettendo poi il segnale all’host (PC).
Un sistema RFID può operare in bassa frequenza (LF), alta (HF) o altissima frequenza (UHF e VHF):
-
LF (125-135 KHz): utilizzabile worldwide con distanza di lettura limitata ed applicata per anti furti, chiavi, etc.
-
HF (13,56 MHz): normalizzata dagli standard ISO 14443 e ISO 15693; è utilizzata worldwide, con distanza di lettura ridotta (fino a 1,20 mt.) ed applicata per libri, pallet, controllo accessi, abbigliamento etc. Il lettore presente in questa pagina appartiene a questa gamma di frequenza.
-
UHF (868-915 MHz): incontra limiti locali definiti dalle autorità dei singoli paesi, applicata per pallet, container, etc.
-
VHF (2,4 o 5,8GHz): utilizzata globalmente per transponder attivi, applicata per controllo accessi, veicoli, etc.
In particolare, i tag / transponder RFID sono sostanzialmente delle memorie dotate di un apparato radio ricetrasmittente, spesso inserito nel medesimo chip di silicio: eccitato da un apparato esterno (fisso o portatile) con il quale stabilisce un dialogo via radio, il tag restituisce poi il suo codice identificativo e/o le altre eventuali informazioni contenute.
I tag RFID possono assumere svariate forme a secondo del tipo di applicazione considerata: ad esempio i tag utilizzati per l’identificazione degli animali sono di piccolissime dimensioni, in quanto devono essere inseriti sotto la pelle (ci sono progetti pilota anche su esseri umani in ambito sanitario), mentre per applicazioni di controllo accessi assumono le sembianze di una carta di credito o del più classico badge.
Antenne RFID
Le antenne RFID, gestite dal controller, generano un campo magnetico che “risveglia” il tag, avviando così la comunicazione via radio; le antenne, talvolta incorporate nel controller, possono essere a polarizzazione lineare oppure circolare, in base alle condizioni di lettura, allorientamento dei tag ed allambiente in cui opera l’RFID.
Il controller RFID
Il controller RFID, detto anche lettore o reader, è la componente di un sistema RFID dedicata alla lettura/identificazione e scrittura dei tag RFID e della comunicazione dei loro codici ai sistemi di alto livello (Middleware o ERP) tramite le antenne, l’altro elemento del sistema che irradia il segnale RF.
La potenza del controller, unitamente al tipo di antenna ad esso collegata, ne determina una delle performance più importanti, ossia la distanza di lettura (del tag), che può essere qualificata in 4 tipologie:
-
Proximity: letture da 10 cm fino max 20-25 cm
-
Vicinity: letture su alcune decine di cm e max i m.
-
Mid Range: distanza di ca. 1 m
-
Long Range: alcuni metri
Caricamento libreria Arduino
Per includere la libreria per la gestione del modulo occorre seguire quanto mostrato nelle figure mostrate sotto
Utilizzare la funzione “Gestione librerie” presente nell’IDE
Inserire nel campo ricerca “rfid” dovrebbe essere mostrata la “MFRC522“
Selezionare “More info” in questo modo apparirà il tasto “Installa” e premerlo
Conclusa l’installazione apparirà la scritta “INSTALLED“
Per il funzionamento occorre anche caricare la libreria RFID, per fare questo, occorre scaricare questo file (rfid.zip). Questa volta per il caricamento utilizzeremo la funzione Aggiungi libreria da file .ZIP
Schema del circuito di prova
Per testare il modulo si utilizzano i seguenti componenti
KitCard reader card RFID RC-522 | Scheda Arduino Nano Arduino UNO |
Convertitore Expander seriale Bus I2C con PCF8574 con Display LCD | Cavetti di vari colori |
Collegamenti da effettuare
Pin Arduino/Nano | Modulo RFID | Modulo |
---|---|---|
A4 (SDA) | SDA | |
A5 (SCL) | SCL | |
D9 | RST | |
D10 | SS | |
D11 | MOSI | |
D12 | MISO | |
D13 | SCK | |
+3,3V | VCC | |
+5V | VCC | |
GND | GND | GND |
Programma di prova
Il programma di prova per il nostro dispositivo card RFID RC-522 si limita a mostrate il codice univoco presente all’interno del TAG. il valore viene mostrato sia in esadecimale che in decimale nella finestra del monitor seriale, e se è collegato il display, su di esso viene mostrato il codice i esadecimale. NOTA:Prima di caricare il programma, assicurarsi di aver attivato la libreria.
Programma | Schema circuito di prova |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | // impostazione lettore RFID #include <SPI.h> #include <RFID.h> #define SS_PIN 10 #define RST_PIN 9 RFID rfid(SS_PIN, RST_PIN); // Impostazione display LCD tramite I2C #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // Setup variables: int serNum0; int serNum1; int serNum2; int serNum3; int serNum4; void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Lettura cod.RFID"); lcd.setCursor(0, 1); lcd.print("www.adrirobot.it"); } void loop() { if (rfid.isCard()) { if (rfid.readCardSerial()) { if (rfid.serNum[0] != serNum0 && rfid.serNum[1] != serNum1 && rfid.serNum[2] != serNum2 && rfid.serNum[3] != serNum3 && rfid.serNum[4] != serNum4 ) { /* With a new cardnumber, show it. */ /* Se trova un nuovo numero di tag lo mostra */ Serial.println(" "); Serial.println("Trovata card"); serNum0 = rfid.serNum[0]; serNum1 = rfid.serNum[1]; serNum2 = rfid.serNum[2]; serNum3 = rfid.serNum[3]; serNum4 = rfid.serNum[4]; Serial.println("Numero RFID:"); Serial.print("Dec: "); Serial.print(rfid.serNum[0], DEC); Serial.print(", "); Serial.print(rfid.serNum[1], DEC); Serial.print(", "); Serial.print(rfid.serNum[2], DEC); Serial.print(", "); Serial.print(rfid.serNum[3], DEC); Serial.print(", "); Serial.print(rfid.serNum[4], DEC); Serial.println(" "); Serial.print("Hex: "); Serial.print(rfid.serNum[0], HEX); Serial.print(", "); Serial.print(rfid.serNum[1], HEX); Serial.print(", "); Serial.print(rfid.serNum[2], HEX); Serial.print(", "); Serial.print(rfid.serNum[3], HEX); Serial.print(", "); Serial.print(rfid.serNum[4], HEX); Serial.println(" "); /* Write the HEX code to the display */ /* Scrive il codice HED sul display */ lcd.clear(); lcd.setCursor(0, 0); lcd.print("Num Card (hex):"); lcd.setCursor(0, 1); lcd.print(rfid.serNum[0], HEX); lcd.print(','); lcd.print(rfid.serNum[1], HEX); lcd.print(','); lcd.print(rfid.serNum[2], HEX); lcd.print(','); lcd.print(rfid.serNum[3], HEX); lcd.print(','); lcd.print(rfid.serNum[4], HEX); } else { /* If we have the same ID, just write a dot. */ /* se trova lo stesso ID, scrive solamente punti. */ Serial.print("."); } } } rfid.halt(); } |