Categories: Arduino

Arduino e il modulo contactless rfid 522

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

I collegamenti

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

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";
Alessandro Oppo

Alessandro è un milanese che vorrebbe scappare da Milano, è appassionato di informatica ma vorrebbe vivere senza telefono, è un artigiano eppure vorrebbe robotizzare tutto, impara una cosa e già vorrebbe studiare dell’altro. Autodidatta da sempre, gli piace sbattere la testa finché tutto non funziona come vuole lui, spesso ci riesce anche! Visita il suo blog personale alexoppo.com Il motto che si ripete dentro la testa è: “Se ci sono riusciti gli altri ci posso riuscire anche io”.

Recent Posts

Ponti sospesi: cosa abbiamo sbagliato? cosa si potrebbe fare?

Poco prima di Natale ho avuto la fortuna di poter partecipare a un evento chiamato…

4 mesi ago

Siamo quel che facciamo? – racconto breve

Armando quel giorno era particolarmente stanco. Tutto, per quanto andasse bene, sembrava metterlo sotto pressione.…

9 mesi ago

Il limite è sempre la mente – Racconto breve

Armando guardò l’orologio e vide il proprio riflesso sul quadrante bianco. Il riflesso però non…

10 mesi ago

L’ultimo giorno del carcere – Racconto breve

I muri sono muri, lo sono sempre, anche quando le porte sono aperte. Era la…

10 mesi ago

Riflessioni sul carcere

Pochi di noi riflettono sull’esistenza nella nostra società del carcere. Il carcere è la concretizzazione…

12 mesi ago

Come dovremmo dialogare secondo me

Spesso intraprendiamo delle conversazioni e delle chiacchierate piuttosto inconsapevolmente. Voglio dire che non siamo molto…

12 mesi ago