Cerca nel blog

6.6.18

Attivazione di un relè tramite card magnetica con Arduino e lettore Rfid

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:
​MODULO​RC522             Arduino   
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,
_______________________________________________________________
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.
 
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

ebay inserzioni