Skip to content
logo9minuti120x48
Menu
  • Home
  • Tutorial
    • Zaini
    • Stampa 3d
    • ebook
    • Informatica
  • Scritti
    • Racconti
    • Articoli
    • Temi
    • Storia
  • Video
  • Progetti
    • Progetto Carcere
    • Progetto Istruzione
    • Progetto Acque pulite
    • Progetto Tecnologia
    • Progetto Casa
    • Progetto Democrazia
    • Progetto Immigrazione
    • Storia
    • Progetto Storia
  • Chi siamo
    • LinkTree
  • Privacy Policy
    • Cookie Policy (EU)
  • Blog
  • Donazioni
Menu
Arduino Uno e il modulo contactless rfid522

Arduino e il modulo contactless rfid 522

Posted on 24 Dicembre 201829 Agosto 2022 by Alessandro Oppo

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

Dammi un 5 virtuale, clicca like e condividi.

  • Fai clic qui per condividere su LinkedIn (Si apre in una nuova finestra) LinkedIn
  • Fai clic per condividere su Facebook (Si apre in una nuova finestra) Facebook
  • Fai clic per condividere su X (Si apre in una nuova finestra) X
  • Fai clic qui per condividere su Reddit (Si apre in una nuova finestra) Reddit
  • Fai clic per condividere su WhatsApp (Si apre in una nuova finestra) WhatsApp
  • Fai clic per condividere su Telegram (Si apre in una nuova finestra) Telegram
  • Fai clic per inviare un link a un amico via e-mail (Si apre in una nuova finestra) E-mail

Related

Cosa ne pensi? Fammelo sapere con un messaggioAnnulla risposta

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Scoprici sui social

  • YouTube
  • Telegram
  • Facebook
  • RSS Feed

    Ultimi post

    • Solo l’occidente conosce la Storia? Dialogo col Professor Adolfo Scotto Di Luzio
    • Ponti sospesi: cosa abbiamo sbagliato? cosa si potrebbe fare?
    • Siamo quel che facciamo? – racconto breve
    • Il limite è sempre la mente – Racconto breve
    • L’ultimo giorno del carcere – Racconto breve
    • Riflessioni sul carcere
    • Come dovremmo dialogare secondo me

    Newsletter

    • YouTube
    • Facebook
    • Telegram
    • Solo l’occidente conosce la Storia? Dialogo col Professor Adolfo Scotto Di Luzio
      di Alessandro Oppo
    • Ponti sospesi: cosa abbiamo sbagliato? cosa si potrebbe fare?
      di Alessandro Oppo
    • Siamo quel che facciamo? – racconto breve
      di Alessandro Oppo
    • Il limite è sempre la mente – Racconto breve
      di Alessandro Oppo
    • L’ultimo giorno del carcere – Racconto breve
      di Alessandro Oppo

    ©2025 9minuti | Design: Newspaperly WordPress Theme
    Menu
    • Home
    • Tutorial
      • Zaini
      • Stampa 3d
      • ebook
      • Informatica
    • Scritti
      • Racconti
      • Articoli
      • Temi
      • Storia
    • Video
    • Progetti
      • Progetto Carcere
      • Progetto Istruzione
      • Progetto Acque pulite
      • Progetto Tecnologia
      • Progetto Casa
      • Progetto Democrazia
      • Progetto Immigrazione
      • Storia
      • Progetto Storia
    • Chi siamo
      • LinkTree
    • Privacy Policy
      • Cookie Policy (EU)
    • Blog
    • Donazioni
    Manage Cookie Consent
    Usiamo cookie per ottimizzare il nostro sito web ed i nostri servizi.
    Cookie funzionali Sempre attivo
    The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
    Preferences
    The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
    Statistics
    The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
    Marketing
    The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
    Gestisci opzioni Gestisci servizi Gestisci {vendor_count} fornitori Per saperne di più su questi scopi
    Visualizza preference
    {title} {title} {title}
     

    Caricamento commenti...