Arduino Uno e il modulo contactless rfid522
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.
Di seguito lo schema su come collegare il modulo contactless rfid 522 ad Arduino.
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";
https://youtu.be/2AHvRKwghkA Trascrizione Intervista a Dave dei Vallanzaska Nota: Questa è una trascrizione automatica dell'intervista, pertanto…
https://youtu.be/Sg6ysOncxaE Intervista a Sam della Rivista Matrioska: TRASCRIZIONE AUTOMATICA, PUO' CONTENERE ERRORI. Alessandro: Siamo in…
https://youtu.be/tCHXvuTuJmw Transcrizione automatica dell'intervista al Professor Adolfo Scotto di Luzio Introduzione e presentazione Studente 1:…
Poco prima di Natale ho avuto la fortuna di poter partecipare a un evento chiamato…
Armando quel giorno era particolarmente stanco. Tutto, per quanto andasse bene, sembrava metterlo sotto pressione.…
Armando guardò l’orologio e vide il proprio riflesso sul quadrante bianco. Il riflesso però non…