Contenuto trattato in questo articolo:
1: Introduzione al sensore RC522
MFRC522 è un IC senza contatto basato su RFID in grado di leggere e scrivere dati a una frequenza di 13.56 MHz. È progettato per una facile integrazione in una vasta gamma di applicazioni, tra cui sistemi di controllo degli accessi, terminali di pagamento e altri sistemi che richiedono una comunicazione wireless sicura.
Il sensore presenta un basso design del consumo di energia ed è conforme allo standard ISO/IEC 14443 A/MIFARE, che gli consente di comunicare con una vasta gamma di carte e tag senza contatto.
Inoltre, MFRC522 presenta un'antenna incorporata, rendendola una soluzione conveniente e compatta per aggiungere capacità di comunicazione senza contatto a un progetto.
2: pinout del sensore RC522
Il sensore ha un totale di 8 pin che lo interfacciano con un microcontrollore o un altro dispositivo di controllo. Il pinout del sensore MFRC522 è il seguente:
IL SDA, SCK, MOSI, E MISO I pin vengono utilizzati per interfacciarsi il sensore MFRC522 con un microcontrollore tramite un protocollo di comunicazione SPI (SPI) di interfaccia seriale a 4 fili (SPI).
IL Irq Il pin può essere utilizzato per generare un interrupt quando si verificano determinati eventi, come una scheda o una lettura di tag di successo, tuttavia non è comunemente usato in molti progetti.
IL GND Il pin si collega a terra del circuito e il perno primo viene utilizzato per reimpostare il sensore.
Finalmente il 3.3v Il pin viene utilizzato per fornire energia al sensore.
È importante notare che questi nomi dei pin possono variare leggermente a seconda del modulo specifico, quindi è sempre meglio consultare la scheda tecnica del produttore per le informazioni di pinout corrette.
3: Sensore RFID RC522 interfacciante con Arduino Nano
L'interfaccia del sensore MFRC522 con un microcontrollore Arduino è un semplice processo che può essere eseguito utilizzando la libreria MFRC522, che è liberamente disponibile per il download. Questa libreria fornisce un set di funzioni di facile utilizzo per l'accesso alla funzionalità del sensore, comprese le funzioni per la lettura e la scrittura di dati su schede e tag senza contatto.
Una volta installata la libreria, nel menu di esempio può essere trovato nel menu Esempi che dimostra come inizializzare il sensore e comunicare con una scheda o un tag. Nello schizzo, è importante impostare le connessioni del pin corrette tra il sensore Arduino e il sensore MFRC522, come i pin SPI, il pin reset e altri, secondo il modello della scheda Arduino utilizzata.
Con il cablaggio corretto e la libreria correttamente installata, l'Arduino sarà in grado di comunicare con il sensore MFRC522 ed eseguire le azioni desiderate come la lettura e la scrittura su carte e tag.
1: schema
L'immagine schematica RC522 con Arduino Nano è mostrata di seguito:
2: installazione delle librerie richieste
La libreria MFRC522 è necessaria per la lettura della scheda e dei tag RFID Uid. Apri IDE, vai a Library Manager e cerca la libreria MFRC522. Installa la libreria in Arduino IDE:
Dopo aver installato la libreria MFRC522 leggeremo l'UID per tag e schede RFID.
3: Ottenere l'UID per la scheda/tag RFID
Apri il Dumpinfo Esempio per il sensore MFRC522. Vai a: File> Esempi> MFRC522> dumpinfo
Il seguente codice si aprirà in una nuova finestra IDE. Carica il codice su Arduino Nano. Ricorda di impostare il pin di ripristino e slave seleziona in base alla scheda Arduino. Qualunque delle pin digitali Arduino può essere impostata come Primo E Ss.
Dopo aver caricato il codice su Arduino Nano. Tocca e tieni premuto la scheda/tag RFID con sensore MFRC522.
Il sensore leggerà i dati salvati all'interno del tag RFID e lo visualizzerà sul monitor seriale. Qui possiamo vedere il Uid per tag RFID che indica 02 DC B4 C3.
Totale di 16 (0-15) settori in cui RFID La memoria di scheda/tag 1K è organizzata. Quattro (0-3) blocchi sono inclusi in ciascuno di questi 16 settori. Ogni blocco ha la capacità di archiviare 16 (0-15) byte di dati.
Questi dati lo rappresentano:
16 settori x 4 blocchi x 16 byte di dati = 1024 byte = 1K Memoria
Il monitor seriale IDE Arduino mostra la distribuzione degli Stati Uniti della memoria 1K del tag RFID. Questa distribuzione contiene anche settori, blocchi e informazioni sui dati in righe e colonne dei dati di output:
Puoi anche leggere l'ID univoco (Uid) per la scheda alla fine dell'output:
4: Lettura di un tag RFID usando Arduino Nano
Ora abbiamo letto l'ID univoco (UID) per il tag RFID. Scriveremo un codice Arduino che salva queste informazioni sulla scheda e concede l'accesso all'utente se il tag RFID con lo stesso UID è toccato con il sensore MFRC522.
1: codice
Apri IDE, selezionare Nano Scheda e caricare il codice dato:
/*
****************
Linuxhint.com
****************
Linuxhint.com
****************
*/
#includere
#includere
#define ss_pin 10 /*slave select pin* /
#define RST_PIN 9 /*PIN RESET per RC522* /
#define LED_G 8 /*PIN 8 per LED* /
MFRC522 MFRC522 (SS_PIN, RST_PIN); /*Crea mfrc522 inizializzato*/
void setup ()
Seriale.Inizia (9600); /*Comunicazione seriale inizia*/
Sp.inizio(); /*Comunicazione SPI inizializzata*/
MFRC522.Pcd_init (); /*Sensore rfid inizializzato*/
pinMode (led_g, output); /*Pin LED impostata come output*/
Seriale.println ("Metti la tua carta al lettore ...");
Seriale.println ();
void loop ()
/*Cerca la scheda RFID*/
Se ( ! MFRC522.Picc_isnewcardpresent ())
ritorno;
/*Seleziona scheda*/
Se ( ! MFRC522.Picc_readcardserial ())
ritorno;
/*Mostra UID per la scheda/Tag sul monitor seriale*/
Seriale.print ("uid tag:");
Stringa content = "";
lettera di byte;
per (byte i = 0; i < mfrc522.uid.size; i++)
Seriale.Stampa (MFRC522.uid.uidbyte [i] < 0x10 ? " 0" : " ");
Seriale.Stampa (MFRC522.uid.uidbyte [i], esadecimale);
contenuto.Concat (String (MFRC522.uid.uidbyte [i] < 0x10 ? " 0" : " "));
contenuto.Concat (String (MFRC522.uid.uidbyte [i], esadecimale));
Seriale.println ();
Seriale.print ("Messaggio:");
contenuto.touppercase ();
if (contenuto.substring (1) == "02 dc b4 c3")/*uid per la scheda/tag che vogliamo dare accesso sostituire con la tua scheda uid*/
Seriale.println ("accesso autorizzato"); /*Stampa Messaggio se UID corrisponde con il database*/
Seriale.println ();
ritardo (500);
DigitalWrite (LED_G, High); /*LED Accendi*/
ritardo (2500);
DigitalWrite (LED_G, basso);
altro
Seriale.println ("accesso negata"); /*Se uid non corrisponde al messaggio di stampa*/
Codice avviato includendo la libreria SPI e MFRC522. Successivamente, abbiamo definito il pin di ripristino e slave seleziona per il sensore. Un LED al pin D8 è inizializzato come output.
La scheda RFID che vogliamo leggere viene inizializzata definendo l'UID. Questo è lo stesso uid che abbiamo usando il Dumpinfo Codice di esempio:
UN SE la condizione controllerà l'UID per la scheda che è sfruttata con il sensore. Se l'UID corrisponde a quello all'interno del LED del codice si accenderà e verrà stampato il messaggio di accesso autorizzato, altrimenti il LED rimarrà spento e verrà visualizzato il messaggio negato di accesso se viene sfruttata qualsiasi altra scheda.
2: output
In output possiamo vedere che il tag RFID non è toccato con il sensore MFRC522, quindi nessun LED è acceso:
Toccare o portare la scheda/tag RFID vicino all'uscita del sensore seguente verrà visualizzato sul monitor seriale che visualizza l'UID della scheda:
LED è acceso se l'accesso è concesso e l'UID corrisponde a quello che abbiamo definito all'interno del codice:
Abbiamo completato l'interfacciatura del tag RFID con il sensore RC522 utilizzando Arduino Nano Board e IDE.
Conclusione
Arduino Nano è una scheda di conservazione dell'energia che ha diversi pin GPIO per prendere input da diversi sensori. Arduino Nano è dotato di supporto integrato per il protocollo UART, SPI e I2C che consente l'uso di sensori utilizzando questi protocolli di comunicazione Arduino. Questo articolo copre l'interfaccia di Arduino Nano con sensore e codice RC522 richiesti per leggere qualsiasi scheda/tag RFID.