Arduino Uno e il modulo contactless rfid522

Arduino e il modulo contactless rfid 522

0
(0)

Arduino e il modulo contactless rfid 522

Benvenuti su 9minuti.it, oggi vedremo come usare il modulo contactless rfid 522 con Arduino Uno per autorizzare o meno tramite card o badge rfid uno dei nostri progetti. Ovviamente è usabile anche con qualsiasi altro modello di scheda, attenzione però che potrebbero cambiare i pin da usare!

Il modo più semplice per utilizzare il modulo è scaricando la libreria QUI.

Ci tengo a precisare per una questione di trasparenza, che la libreria in questione non so da chi sia stata realizzata e l’ho trovata in giro per il web tempo fa. Nemmeno lì veniva indicata la fonte.

Quella disponibile dall’ide di Arduino è sì più completa e aggiornata, ma è piuttosto difficile distriscarsi fra le mille opzioni.

Arduino Uno e il modulo contactless rfid522
Arduino Uno e il modulo contactless rfid522

I collegamenti

Di seguito lo schema su come collegare il modulo contactless rfid 522 ad Arduino.

Arduino Uno con il modulo RC522
Arduino Uno con il modulo RC522

Chiaramente voi ancora non conoscete qual è il codice della vostra tessera.

Non fa nulla, caricate lo sketch e avvicinatela al lettore. Vi verrà stampato a video il codice e la scritta Access denied perché difficilmente il vostro codice coinciderà con quello della mia tessera.

/*
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>

#define SDA_DIO 10  // 53 Arduino Mega
#define RESET_DIO 9

RFID RC522(SDA_DIO, RESET_DIO);

String readCode;
String validCode = "25d24d9a2";

byte i;

void setup()
{
  Serial.begin(9600);
  SPI.begin();

  RC522.init();
  Serial.println("Waiting for a card");
  Serial.println();
}

void loop()
{
  if (RC522.isCard())
  {
    RC522.readCardSerial();

    Serial.print("Code: ");

    for (i = 0; i <= 4; i++)
    {
      readCode += String (RC522.serNum[i], HEX);
    }
    Serial.println(readCode);
    
    if (readCode.equals(validCode) == true) {

      Serial.println("Valid card!");
    }
    else {
      Serial.println("Access denied!");
    }
    
    Serial.println();

    readCode = "";
    delay(1000);
  }
}

14 – Include della libreria SPI.h
15 – Include della libreria RFID.h
17 – Definiamo il pin 10 con Arduino Uno o il 53 con Arduino Mega
18 – Definiamo il pin 9 come pin per il reset
20 – Creiamo l’oggetto RC522 di tipo RFID usando come parametri le due define precedenti
22 – Stringa dove salveremo il codice letto
23 – Stringa dove dobbiamo salvare il nostro codice valido della carta o del badge
25 – Dichiarazione della variabile i usata come contatore del ciclo for
29 – Usiamo il metodo begin dell’oggetto Serial per far partire la comunicazione serial con baud rate di 9600
30 – Usiamo il metodo begin dell’oggeto SPI per far partire la comunicazione SPI
34 – Usiamo il metodo init() dell’oggetto RC522 che lo inizializza
39 – Se c’è una carta sul lettore
41 – Leggo il numero sulla carta
43 – Stampa via monitor seriale
45 – ciclo for che viene eseguito cinque volte
47 – I valori esadecimali letti vengono salvati nella stringa readCode
49 – Stampa del codice via monitor seriale
51 – Viene utilizzato il metodo equals che consente di verificare se la stringa inserita come parametro è uguale a quella da cui è stato chiamato
53, 56 – Stampe seriali
61 – readCode viene azzerato
62 – Delay di un secondo fra ogni esecuzione del loop

Una volta che avete scoperto qual è il vostro codice potete inserirlo tra i doppi apici.

String validCode = "25d24d9a2";

Votalo e aiutami a migliorare!

Rating medio 0 / 5. Numero di voti 0

Nessun voto per il momento, vuoi essere il primo?

Clicca sul tuo social preferito.

Cosa ho sbagliato?

Hai qualche consiglio per migliorare la qualità?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.