Jak używać czytnika PN532 RFID/NFC z Arduino

How to Use the PN532 RFID/NFC Reader with Arduino

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ć

  1. Moduł PN532 RFID/NFC
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Tablica chleba
  4. Przewody zworki
  5. Tagi RFID/NFC (np. Karty Mifare)
  6. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie modułu PN532

Moduł PN532 obsługuje trzy tryby komunikacji:

  1. I2C (Domyślnie dla wielu modułów): Używa linii SDA i SCL.
  2. SPI: Używa linii Mosi, Miso i SCK.
  3. 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:

  1. Biblioteka Adafruit PN532
  2. Biblioteka Adafruit Busio (Zależność od biblioteki PN532)

Kroki do zainstalowania:

  1. Otwórz Arduino IDE.
  2. Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
  3. Wyszukaj „Adafruit PN532” i kliknij Zainstalować.
  4. 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ę

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod do Arduino, klikając Wgrywać.
  4. Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
  5. 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

  1. Systemy kontroli dostępu
  2. Systemy płatności bez kontaktu
  3. Zarządzanie inteligentnymi zapasami
  4. 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!

Zostaw komentarz

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.