PN532 to wszechstronny moduł czytnika RFID/NFC, który obsługuje wiele trybów i standardów komunikacji, dzięki czemu jest idealny do uwierzytelniania, płatności bez kontaktu i projektów IoT. Ten samouczek poprowadzi Cię do interfejsu modułu PN532 z Arduino do czytania tagów RFID/NFC.
Czego będziesz potrzebować
- Moduł PN532 RFID/NFC
- Arduino Board (np. UNO, Mega, Nano)
- Tablica chleba
- Przewody zworki
- Tagi RFID/NFC (np. Karty Mifare)
- Komputer z zainstalowanym Arduino IDE
Krok 1: Zrozumienie modułu PN532
Moduł PN532 obsługuje trzy tryby komunikacji:
- I2C (Domyślnie dla wielu modułów): Używa linii SDA i SCL.
- SPI: Używa linii Mosi, Miso i SCK.
- UART (serial): Używa pinów TX i RX.
W tym samouczku użyjemy Tryb I2C, ponieważ jest to prostsze do konfiguracji i szeroko obsługiwanego.
Pn532 pinout w trybie I2C
Szpilka | Funkcjonować |
---|---|
VCC | Zasilacz (3,3 V/5 V) |
GND | Grunt |
SDA | I2C Linia danych |
Scl | Linia zegara I2C |
Krok 2: Okablowanie PN532 do Arduino
Oto jak podłączyć moduł PN532 z Arduino Uno w trybie I2C:
PN532 PIN | PIN Arduino |
---|---|
VCC | 5v |
GND | GND |
SDA | A4 |
Scl | A5 |
Notatka: Jeśli twój moduł ma skoczkę do wyboru trybu, ustaw go na tryb I2C.
Krok 3: Zainstaluj wymagane biblioteki
Aby uprościć interakcję z modułem PN532, zainstaluj następujące biblioteki:
- Biblioteka Adafruit PN532
- Biblioteka Adafruit Busio (Zależność od biblioteki PN532)
Kroki do zainstalowania:
- Otwórz Arduino IDE.
- Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
- Wyszukaj „Adafruit PN532” i kliknij Zainstalować.
- Wyszukaj „Adafruit Busio” i kliknij Zainstalować.
Krok 4: Prześlij kod
Oto przykład szkicu do odczytu danych z tagu 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
}
}
Krok 5: Przetestuj konfigurację
- Podłącz Arduino do komputera za pomocą USB.
- Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
- Prześlij kod do Arduino, klikając Wgrywać.
- Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na
9600
. - Umieść znacznik RFID/NFC w pobliżu modułu PN532. Monitor szeregowy powinien wyświetlić UID znacznika (unikalny identyfikator).
Rozwiązywanie problemów
- Moduł nie wykryty: Sprawdź dwukrotnie okablowanie i upewnij się, że zworka trybu jest ustawiona na I2C.
- Brak tagu: Upewnij się, że znacznik jest kompatybilny (np. Karty Mifare dla tego przykładu).
- Nieregularne odczyty: Używaj krótszych przewodów skorupy i zapewnij stabilną zasilanie do modułu.
Zastosowania modułu PN532
- Systemy kontroli dostępu
- Systemy płatności bez kontaktu
- Zarządzanie inteligentnymi zapasami
- Urządzenia IoT wymagające bezpiecznego uwierzytelnienia
Wniosek
Z powodzeniem połączyłeś moduł RFID/NFC PN532 z aruino i odczyt tagów RFID/NFC. Ten wszechstronny moduł otwiera nieskończone możliwości bezpiecznego uwierzytelniania i wymiany danych w twoich projektach. Eksperymentuj z dodatkowymi funkcjami, takimi jak pisanie na tagi lub komunikacja peer-to-peer, aby zbudować bardziej zaawansowane aplikacje!