PN532 è un modulo Reader RFID/NFC versatile che supporta più modalità di comunicazione e standard, rendendolo ideale per l'autenticazione, il pagamento senza contatto e i progetti IoT. Questo tutorial ti guiderà attraverso l'interfacciamento del modulo PN532 con un Arduino per leggere i tag RFID/NFC.
Cosa avrai bisogno
- Modulo RFID/NFC PN532
- Arduino Board (ad es. Uno, Mega, Nano)
- Breadboard
- Fili jumper
- Tag RFID/NFC (ad es. Schede Mifare)
- Un computer con l'IDE Arduino installato
Passaggio 1: Comprensione del modulo PN532
Il modulo PN532 supporta tre modalità di comunicazione:
- I2c (Predefinito per molti moduli): utilizza linee SDA e SCL.
- Sp: Usa le linee MOSI, MISO e SCK.
- UART (seriale): Usa i pin TX e RX.
In questo tutorial, useremo il Modalità i2c, poiché è più semplice da configurare e ampiamente supportato.
PN532 Pinout in modalità I2C
Spillo | Funzione |
---|---|
VCC | Alimentazione (3.3V/5V) |
GND | Terra |
SDA | Linea di dati I2C |
SCL | Linea di orologio i2c |
Passaggio 2: Cablaggio della PN532 ad Arduino
Ecco come collegare il modulo PN532 a un Arduino Uno in modalità I2C:
PIN PN532 | Arduino Pin |
---|---|
VCC | 5v |
GND | GND |
SDA | A4 |
SCL | A5 |
Nota: Se il tuo modulo ha un jumper di selezione della modalità, impostalo in modalità I2C.
Passaggio 3: installare le librerie richieste
Per semplificare l'interazione con il modulo PN532, installare le seguenti librerie:
- Biblioteca Adafruit PN532
- Biblioteca Adafruit Busio (una dipendenza per la libreria PN532)
Passi da installare:
- Apri l'IDE Arduino.
- Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
- Cerca "Adafruit PN532" e fai clic su Installare.
- Cerca "Adafruit Busio" e fai clic su Installare.
Passaggio 4: caricare il codice
Ecco uno schizzo di esempio per leggere i dati da un tag RFID/NFC:
#include <Wire.h>
#include <Adafruit_PN532.h>
#define SDA_PIN A4
#define SCL_PIN A5
Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);
void setup() {
Serial.begin(9600);
Serial.println("PN532 RFID/NFC Reader Test");
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (!versiondata) {
Serial.println("Didn't find PN532 module. Check connections.");
while (1);
}
Serial.println("Found PN532 module.");
nfc.SAMConfig(); // Configure the module in normal mode
Serial.println("Waiting for an NFC card...");
}
void loop() {
uint8_t success;
uint8_t uid[] = { 0 }; // Buffer to store UID
uint8_t uidLength; // Length of the UID
// Check if an NFC card is present
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
if (success) {
Serial.println("Found an NFC card!");
Serial.print("UID Length: ");
Serial.print(uidLength, DEC);
Serial.println(" bytes");
Serial.print("UID Value: ");
for (uint8_t i = 0; i < uidLength; i++) {
Serial.print(" 0x");
Serial.print(uid[i], HEX);
}
Serial.println("");
delay(1000); // Wait 1 second
}
}
Passaggio 5: testare l'installazione
- Collega l'Arduino al tuo computer tramite USB.
- Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
- Carica il codice su Arduino facendo clic Caricamento.
- Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su
9600
. - Posizionare un tag RFID/NFC vicino al modulo PN532. Il monitor seriale dovrebbe visualizzare l'UID del tag (identificatore univoco).
Risoluzione dei problemi
- Modulo non rilevato: Controllare il cablaggio e assicurarsi che il jumper di modalità sia impostato su I2C.
- Nessun tag rilevato: Assicurarsi che il tag sia compatibile (ad esempio, schede mifare per questo esempio).
- Letture irregolari: Usa fili del jumper più corti e assicurati una potenza stabile al modulo.
Applicazioni del modulo PN532
- Sistemi di controllo degli accessi
- Sistemi di pagamento senza contatto
- Smart Inventory Management
- Dispositivi IoT che richiedono autenticazione sicura
Conclusione
Hai interfacciato correttamente il modulo PN532 RFID/NFC con un Arduino e leggi i tag RFID/NFC. Questo modulo versatile apre infiniti possibilità per l'autenticazione sicura e lo scambio di dati nei tuoi progetti. Sperimenta funzionalità aggiuntive come la scrittura a tag o comunicazioni peer-to-peer per creare applicazioni più avanzate!