Il lettore RFID RC522 è un lettore che consente di leggere i tag con identificazione
a radio frequenza. Nella maggior parte dei casi gli attuatori sono
carte magnetiche, come le schede degli alberghi che ci permettono di
aprire le porte per intenderci ma possono assumere anche la forma di
portachiavi, vediamo oggi come integrarle ad Arduino per fare accendere
un led o azionare un relè.
__________________________________________________
Nel circuito che
realizzeremo inseriremo due led, uno di colore verde per indicarci
l`effettivo riconoscimento della tessera magnetica quindi per esempio
l'apertura di una porta, e uno di colore rosso per indicarci il non
riconoscimento della tessera.
Il Led rosso al Pin 4 di Arduino
Il Led verde al Pin 3 di Arduino
Il relè al Pin 2
Il modulo lo collegheremo con i seguenti Pin di Arduino:
Il Led rosso al Pin 4 di Arduino
Il Led verde al Pin 3 di Arduino
Il relè al Pin 2
Il modulo lo collegheremo con i seguenti Pin di Arduino:
MODULORC522 Arduino
SDA D10
SCK D13
MOSI D11
MISO D12
IRQ N/A
GND GND
RST D9
3.3V 3.3V
SDA D10
SCK D13
MOSI D11
MISO D12
IRQ N/A
GND GND
RST D9
3.3V 3.3V
Per prima cosa, dopo aver creato il circuito, colleghiamo Arduino alla
porta USB del computer, e carichiamo il primo sketch per la lettura
delle tessere magnetiche.
È necessaria la libreria RFID.h che trovate in fondo pagina nei file da scaricare.
Basta infatti avvicinare la tessera al lettore RFID e visualizzare il codice esadecimale aprendo il monitor seriale nell`Arduino IDE,
_______________________________________________________________
È necessaria la libreria RFID.h che trovate in fondo pagina nei file da scaricare.
Basta infatti avvicinare la tessera al lettore RFID e visualizzare il codice esadecimale aprendo il monitor seriale nell`Arduino IDE,
_______________________________________________________________
1° sketch Lettura codice esadecimale tessera magnetica
/* FILE: RC522_RFID_Module_Example
DATE: 13/07/2016
VERSION: 0.1
Autore Fancello Salvatore
PINOUT:
RC522 MODULE Uno/Nano
SDA D10
SCK D13
MOSI D11
MISO D12
IRQ N/A
GND GND
RST D9
3.3V 3.3V
*/
#include <SPI.h>
#include <RFID.h>
/* Vengono definiti PIN del RFID reader*/
#define SDA_DIO 10 // 53 per Arduino Mega
#define RESET_DIO 9
#define delayRead 1000 // Time of delay
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO);
void setup()
{
Serial.begin(9600);
/* Abilita SPI*/
SPI.begin();
/* Viene inizilizzato RFID reader */
RC522.init();
Serial.println("Setup");
}
void loop()
{
/* Temporary loop counter */
byte i;
// Se viene letta una tessera
if (RC522.isCard())
{
// Viene letto il suo codice
RC522.readCardSerial();
String codiceLetto ="";
Serial.println("Codice delle tessera letto:");
// Viene caricato il codice della tessera, all'interno di una Stringa
for(i = 0; i <= 4; i++)
{
codiceLetto+= String (RC522.serNum[i],HEX);
codiceLetto.toUpperCase();
}
Serial.println(codiceLetto);
delay(delayRead);
Serial.println();
Serial.println();
}
}
_______________________________________________
2° Sketch attivazione relè al passaggio della tessera magnetica
/*
Con questo sketch è possibile fare accendere un led o commutare un relè
al passaggio di una tessera magnetica sul lettore RFID.
Se la tessera viene riconosciuta si accende un led verde e commuta il relè,
altrimenti un led rosso per indicarci l`inaccessibilità.
Autore Salvatore Fancello
PINOUT:
RC522 MODULO Uno/Nano
SDA D10
SCK D13
MOSI D11
MISO D12
IRQ N/A
GND GND
RST D9
3.3V 3.3V
led verde al Pin 3
Led rosso al Pin 4
Relè al Pin 2
*/
#include <SPI.h>
#include <RFID.h>
/* Vengono definiti PIN del RFID reader*/
#define SDA_DIO 10 // Pin 53 per Arduino Mega
#define RESET_DIO 9
#define delayRead 1000 // Tempo
#define delayLed 2000
#define ledVerde 3
#define ledRosso 4
#define rele 2
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO);
// inserire tutti i codici esadecimali delle schede magnetiche riconosciute
String codiceAutorizzato1 = "FCA2333B56";
String codiceAutorizzato2 = "ESEMPIO479";
String codiceAutorizzato3 = "ESEMPIO480";
void setup()
{
Serial.begin(9600);
/* Abilita SPI*/
SPI.begin();
/* Viene inizilizzato RFID reader */
RC522.init();
Serial.println("Setup");
pinMode(ledVerde,OUTPUT);
pinMode(ledRosso,OUTPUT);
pinMode(rele,OUTPUT);
}
void loop()
{
/* Temporary loop counter */
byte i;
// Se viene letta una tessera
if (RC522.isCard())
{
// Viene letto il suo codice
RC522.readCardSerial();
String codiceLetto ="";
Serial.println("Codice delle tessera letto:");
// Viene caricato il codice della tessera, all'interno di una Stringa
for(i = 0; i <= 4; i++)
{
codiceLetto+= String (RC522.serNum[i],HEX);
codiceLetto.toUpperCase();
}
Serial.println(codiceLetto);
if(verificaCodice(codiceLetto,codiceAutorizzato1)||verificaCodice(codiceLetto,codiceAutorizzato2)
||verificaCodice(codiceLetto,codiceAutorizzato3)){
Serial.println("Tessera autorizzata");
accendiLed(ledVerde);
digitalWrite (rele, HIGH);
delay (1000); // Tempo relè in stato ON
digitalWrite (rele, LOW);
}else{
Serial.println("Tessera non autorizzata");
accendiLed(ledRosso);
}
delay(delayRead);
}
}
// Questa funzione verifica se il codice Letto è autorizzato
boolean verificaCodice(String codiceLetto, String codiceAutorizzato){
if(codiceLetto.equals(codiceAutorizzato)){
return true;
}else{
return false;
}
}
// Questa funzione permette di accendere un LED per un determinato periodo
void accendiLed(int ledPin){
digitalWrite(ledPin,HIGH);
delay(delayLed);
digitalWrite(ledPin,LOW);
}
_______________________________________________________
Ora inseriamo codici di ogni card che vogliamo memorizzare nel punto indicato dall`immagine sottostante.
Abbiamo finito, non ci resta che collegare l`elettro serratura al relè e il gioco è fatto!!
Qui sotto trovate gli sketch e la libreria, è sufficiente copiare la cartella contenente i due file .cpp e .h all'interno della cartella “libraries” dell`IDE Arduino.
Una volta riavviato il compilatore siamo pronti ad utilizzare tutte le funzionalità della nuova libreria.
Da qui scarichi il codice per arduino
Da qui scarichi la libreria necessaria
DATE: 13/07/2016
VERSION: 0.1
Autore Fancello Salvatore
PINOUT:
RC522 MODULE Uno/Nano
SDA D10
SCK D13
MOSI D11
MISO D12
IRQ N/A
GND GND
RST D9
3.3V 3.3V
*/
#include <SPI.h>
#include <RFID.h>
/* Vengono definiti PIN del RFID reader*/
#define SDA_DIO 10 // 53 per Arduino Mega
#define RESET_DIO 9
#define delayRead 1000 // Time of delay
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO);
void setup()
{
Serial.begin(9600);
/* Abilita SPI*/
SPI.begin();
/* Viene inizilizzato RFID reader */
RC522.init();
Serial.println("Setup");
}
void loop()
{
/* Temporary loop counter */
byte i;
// Se viene letta una tessera
if (RC522.isCard())
{
// Viene letto il suo codice
RC522.readCardSerial();
String codiceLetto ="";
Serial.println("Codice delle tessera letto:");
// Viene caricato il codice della tessera, all'interno di una Stringa
for(i = 0; i <= 4; i++)
{
codiceLetto+= String (RC522.serNum[i],HEX);
codiceLetto.toUpperCase();
}
Serial.println(codiceLetto);
delay(delayRead);
Serial.println();
Serial.println();
}
}
_______________________________________________
2° Sketch attivazione relè al passaggio della tessera magnetica
/*
Con questo sketch è possibile fare accendere un led o commutare un relè
al passaggio di una tessera magnetica sul lettore RFID.
Se la tessera viene riconosciuta si accende un led verde e commuta il relè,
altrimenti un led rosso per indicarci l`inaccessibilità.
Autore Salvatore Fancello
PINOUT:
RC522 MODULO Uno/Nano
SDA D10
SCK D13
MOSI D11
MISO D12
IRQ N/A
GND GND
RST D9
3.3V 3.3V
led verde al Pin 3
Led rosso al Pin 4
Relè al Pin 2
*/
#include <SPI.h>
#include <RFID.h>
/* Vengono definiti PIN del RFID reader*/
#define SDA_DIO 10 // Pin 53 per Arduino Mega
#define RESET_DIO 9
#define delayRead 1000 // Tempo
#define delayLed 2000
#define ledVerde 3
#define ledRosso 4
#define rele 2
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO);
// inserire tutti i codici esadecimali delle schede magnetiche riconosciute
String codiceAutorizzato1 = "FCA2333B56";
String codiceAutorizzato2 = "ESEMPIO479";
String codiceAutorizzato3 = "ESEMPIO480";
void setup()
{
Serial.begin(9600);
/* Abilita SPI*/
SPI.begin();
/* Viene inizilizzato RFID reader */
RC522.init();
Serial.println("Setup");
pinMode(ledVerde,OUTPUT);
pinMode(ledRosso,OUTPUT);
pinMode(rele,OUTPUT);
}
void loop()
{
/* Temporary loop counter */
byte i;
// Se viene letta una tessera
if (RC522.isCard())
{
// Viene letto il suo codice
RC522.readCardSerial();
String codiceLetto ="";
Serial.println("Codice delle tessera letto:");
// Viene caricato il codice della tessera, all'interno di una Stringa
for(i = 0; i <= 4; i++)
{
codiceLetto+= String (RC522.serNum[i],HEX);
codiceLetto.toUpperCase();
}
Serial.println(codiceLetto);
if(verificaCodice(codiceLetto,codiceAutorizzato1)||verificaCodice(codiceLetto,codiceAutorizzato2)
||verificaCodice(codiceLetto,codiceAutorizzato3)){
Serial.println("Tessera autorizzata");
accendiLed(ledVerde);
digitalWrite (rele, HIGH);
delay (1000); // Tempo relè in stato ON
digitalWrite (rele, LOW);
}else{
Serial.println("Tessera non autorizzata");
accendiLed(ledRosso);
}
delay(delayRead);
}
}
// Questa funzione verifica se il codice Letto è autorizzato
boolean verificaCodice(String codiceLetto, String codiceAutorizzato){
if(codiceLetto.equals(codiceAutorizzato)){
return true;
}else{
return false;
}
}
// Questa funzione permette di accendere un LED per un determinato periodo
void accendiLed(int ledPin){
digitalWrite(ledPin,HIGH);
delay(delayLed);
digitalWrite(ledPin,LOW);
}
_______________________________________________________
Ora inseriamo codici di ogni card che vogliamo memorizzare nel punto indicato dall`immagine sottostante.
Per ogni card memorizzata aggiungiamo una stringa di codice.
Abbiamo finito, non ci resta che collegare l`elettro serratura al relè e il gioco è fatto!!
Qui sotto trovate gli sketch e la libreria, è sufficiente copiare la cartella contenente i due file .cpp e .h all'interno della cartella “libraries” dell`IDE Arduino.
Una volta riavviato il compilatore siamo pronti ad utilizzare tutte le funzionalità della nuova libreria.
Da qui scarichi il codice per arduino
Da qui scarichi la libreria necessaria
Nessun commento:
Posta un commento