PN532 este un modul versatil RFID/NFC Reader care acceptă mai multe moduri și standarde de comunicare, ceea ce îl face ideal pentru autentificare, plată fără contact și proiecte IoT. Acest tutorial vă va ghida prin interfațarea modulului PN532 cu un Arduino pentru a citi etichetele RFID/NFC.
Ce vei avea nevoie
- PN532 Modul RFID/NFC
- Arduino Board (de exemplu, Uno, Mega, Nano)
- Bord
- Fire de jumper
- Etichete RFID/NFC (de exemplu, carduri mifare)
- Un computer cu IDE Arduino instalat
Pasul 1: Înțelegerea modulului PN532
Modulul PN532 acceptă trei moduri de comunicare:
- I2c (implicit pentru multe module): utilizează linii SDA și SCL.
- SPI: Folosește linii MOSI, MISO și SCK.
- Uart (serial): Folosește pinii TX și RX.
În acest tutorial, vom folosi Modul I2C, întrucât este mai simplu de configurat și acceptat pe scară largă.
PN532 PINOUT în modul I2C
Ac | Funcţie |
---|---|
VCC | Sursă de alimentare (3.3V/5V) |
GND | Sol |
SDA | Linia de date I2C |
SCL | Linia de ceas I2C |
Pasul 2: Cablarea PN532 către Arduino
Iată cum să conectați modulul PN532 la un Arduino Uno în modul I2C:
PN532 PIN | Pinul Arduino |
---|---|
VCC | 5V |
GND | GND |
SDA | A4 |
SCL | A5 |
Nota: Dacă modulul dvs. are un jumper de selecție a modului, setați -l în modul I2C.
Pasul 3: Instalați bibliotecile necesare
Pentru a simplifica interacțiunea cu modulul PN532, instalați următoarele biblioteci:
- Biblioteca Adafruit PN532
- Biblioteca Adafruit Busio (o dependență pentru biblioteca PN532)
Pași pentru instalare:
- Deschideți IDE Arduino.
- Du -te la Schiţa > Include biblioteca > Gestionați bibliotecile.
- Căutați „Adafruit PN532” și faceți clic pe Instala.
- Căutați „Adafruit Busio” și faceți clic pe Instala.
Pasul 4: Încărcați codul
Iată un exemplu de schiță pentru a citi date dintr -o etichetă 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
}
}
Pasul 5: Testați configurarea
- Conectați Arduino la computer prin USB.
- Deschideți IDE Arduino și selectați corect Bord şi Port sub Instrumente meniu.
- Încărcați codul la Arduino făcând clic pe Încărcați.
- Deschideți monitorul în serie (Instrumente > Monitor în serie) și setați rata de transfer la
9600
. - Puneți o etichetă RFID/NFC lângă modulul PN532. Monitorul în serie ar trebui să afișeze UID -ul etichetei (identificator unic).
Depanare
- Modulul care nu este detectat: Verificați dublu cablarea și asigurați-vă că jumperul de mod este setat pe I2C.
- Nu este detectată nicio etichetă: Asigurați -vă că eticheta este compatibilă (de exemplu, carduri mifare pentru acest exemplu).
- Citiri neregulate: Utilizați fire de jumper mai scurte și asigurați o putere stabilă la modul.
Aplicații ale modulului PN532
- Sisteme de control de acces
- Sisteme de plată fără contact
- Gestionare inteligentă a inventarului
- Dispozitive IoT care necesită autentificare sigură
Concluzie
Ați interfațat cu succes modulul PN532 RFID/NFC cu un Arduino și citiți etichete RFID/NFC. Acest modul versatil deschide posibilități interminabile pentru autentificarea sigură și schimbul de date în proiectele dvs. Experimentați cu caracteristici suplimentare, cum ar fi scrierea pe etichete sau comunicarea peer-to-peer pentru a construi aplicații mai avansate!