Cara menggunakan pembaca PN532 RFID/NFC dengan Arduino

How to Use the PN532 RFID/NFC Reader with Arduino

PN532 adalah modul pembaca RFID/NFC serbaguna yang mendukung beberapa mode dan standar komunikasi, menjadikannya ideal untuk otentikasi, pembayaran tanpa kontak, dan proyek IoT. Tutorial ini akan memandu Anda melalui interfacing modul PN532 dengan Arduino untuk membaca tag RFID/NFC.

Apa yang Anda Butuhkan

  1. Modul RFID/NFC PN532
  2. Dewan Arduino (mis., Uno, mega, nano)
  3. Papan tempat memotong roti
  4. Kabel jumper
  5. Tag RFID/NFC (mis., Kartu MIFARE)
  6. Komputer dengan IDE Arduino diinstal

Langkah 1: Memahami Modul PN532

Modul PN532 mendukung tiga mode komunikasi:

  1. I2c (default untuk banyak modul): Menggunakan garis SDA dan SCL.
  2. SPI: Menggunakan garis mosi, miso, dan sck.
  3. UART (serial): Menggunakan pin TX dan RX.

Dalam tutorial ini, kami akan menggunakan Mode I2C, karena lebih sederhana untuk diatur dan didukung secara luas.

Pinout pn532 dalam mode i2c

Pin Fungsi
Vcc Catu daya (3.3V/5V)
Gnd Tanah
SDA Jalur data I2C
Scl I2C Clock Line

Langkah 2: Pengkabelan PN532 ke Arduino

Inilah cara menghubungkan modul PN532 ke Arduino UNO dalam mode I2C:

Pin PN532 Pin Arduino
Vcc 5v
Gnd Gnd
SDA A4
Scl A5

Catatan: Jika modul Anda memiliki jumper pemilihan mode, atur ke mode I2C.

Langkah 3: Instal perpustakaan yang diperlukan

Untuk menyederhanakan interaksi dengan modul PN532, instal perpustakaan berikut:

  1. Perpustakaan Adafruit PN532
  2. Perpustakaan Busio Adafruit (Ketergantungan untuk pustaka PN532)

Langkah untuk menginstal:

  1. Buka Ide Arduino.
  2. Pergi ke Sketsa > Sertakan perpustakaan > Kelola Perpustakaan.
  3. Cari "Adafruit PN532" dan klik Memasang.
  4. Cari "Adafruit Busio" dan klik Memasang.

Langkah 4: Unggah kode

Berikut contoh sketsa untuk membaca data dari 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
  }
}

Langkah 5: Uji pengaturan

  1. Hubungkan Arduino ke komputer Anda melalui USB.
  2. Buka IDE Arduino dan pilih yang benar Papan Dan Pelabuhan di bawah Peralatan menu.
  3. Unggah kode ke Arduino dengan mengklik Mengunggah.
  4. Buka monitor serial (Peralatan > Monitor serial) dan atur baud rate ke 9600.
  5. Tempatkan tag RFID/NFC di dekat modul PN532. Monitor serial harus menampilkan UID tag (pengidentifikasi unik).

Pemecahan masalah

  • Modul tidak terdeteksi: Periksa kembali kabel dan pastikan jumper mode diatur ke I2C.
  • Tidak ada tag yang terdeteksi: Pastikan tag kompatibel (mis., Kartu MIFARE untuk contoh ini).
  • Bacaan yang tidak menentu: Gunakan kabel jumper yang lebih pendek dan pastikan daya yang stabil ke modul.

Aplikasi modul PN532

  1. Sistem Kontrol Akses
  2. Sistem pembayaran tanpa kontak
  3. Manajemen Inventaris Cerdas
  4. Perangkat IoT yang membutuhkan otentikasi aman

Kesimpulan

Anda telah berhasil menghubungkan modul PN532 RFID/NFC dengan Arduino dan membaca tag RFID/NFC. Modul serbaguna ini membuka kemungkinan tak terbatas untuk otentikasi yang aman dan pertukaran data dalam proyek Anda. Eksperimen dengan fitur tambahan seperti menulis ke tag atau komunikasi peer-to-peer untuk membangun aplikasi yang lebih canggih!

Tinggalkan komentar

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.