كيفية استخدام قارئ PN532 RFID/NFC مع Arduino

How to Use the PN532 RFID/NFC Reader with Arduino

PN532 عبارة عن وحدة قارئ RFID/NFC متعددة الاستخدامات تدعم أوضاع ومعايير اتصال متعددة ، مما يجعلها مثالية للمصادقة ، والدفع بدون اتصال ، ومشاريع إنترنت الأشياء. سيوجهك هذا البرنامج التعليمي من خلال تواصل وحدة PN532 مع Arduino لقراءة علامات RFID/NFC.

ماذا ستحتاج

  1. PN532 وحدة RFID/NFC
  2. لوحة Arduino (على سبيل المثال ، UNO ، Mega ، Nano)
  3. لوح
  4. الأسلاك الطائر
  5. علامات RFID/NFC (على سبيل المثال ، بطاقات Mifare)
  6. جهاز كمبيوتر مع Arduino IDE مثبت

الخطوة 1: فهم وحدة PN532

تدعم وحدة PN532 ثلاثة أوضاع اتصال:

  1. I2C (افتراضي للعديد من الوحدات النمطية): يستخدم خطوط SDA و SCL.
  2. spi: يستخدم خطوط Mosi و Miso و SCK.
  3. uart (المسلسل): يستخدم دبابيس TX و RX.

في هذا البرنامج التعليمي ، سوف نستخدم وضع I2C، لأنه من الأسهل إعداد ودعم على نطاق واسع.

pn532 pinout في وضع I2C

دبوس وظيفة
VCC مزود الطاقة (3.3V/5V)
GND أرضي
SDA خط بيانات I2C
SCL خط الساعة I2C

الخطوة 2: توصيل PN532 إلى Arduino

إليك كيفية توصيل وحدة PN532 بوحدة Arduino UNO في وضع I2C:

PN532 دبوس دبوس أردوينو
VCC 5V
GND GND
SDA A4
SCL A5

ملحوظة: إذا كانت الوحدة النمطية الخاصة بك تحتوي على طائر اختيار الوضع ، فقم بتعيينه على وضع I2C.

الخطوة 3: تثبيت المكتبات المطلوبة

لتبسيط التفاعل مع وحدة PN532 ، قم بتثبيت المكتبات التالية:

  1. مكتبة Adafruit PN532
  2. مكتبة Busio Adafruit (تبعية لمكتبة PN532)

خطوات التثبيت:

  1. افتح Arduino IDE.
  2. اذهب إلى رسم > تشمل المكتبة > إدارة المكتبات.
  3. ابحث عن "Adafruit PN532" وانقر فوق ثَبَّتَ.
  4. ابحث عن "Adafruit Busio" وانقر فوق ثَبَّتَ.

الخطوة 4: تحميل الرمز

فيما يلي مثال على قراءة البيانات من علامة 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
  }
}

الخطوة 5: اختبار الإعداد

  1. قم بتوصيل Arduino بجهاز الكمبيوتر الخاص بك عبر USB.
  2. افتح Arduino IDE وحدد الصحيح سبورة و ميناء تحت أدوات قائمة طعام.
  3. قم بتحميل الرمز إلى Arduino بالنقر فوق رفع.
  4. افتح الشاشة التسلسلية (أدوات > المراقبة التسلسلية) وتعيين معدل باود 9600.
  5. ضع علامة RFID/NFC بالقرب من وحدة PN532. يجب أن تعرض الشاشة التسلسلية UID للعلامة (معرف فريد).

استكشاف الأخطاء وإصلاحها

  • لم يتم اكتشاف الوحدة النمطية: تحقق مزدوج الأسلاك وتأكد من ضبط الطائر على I2C.
  • لم يتم اكتشاف علامة: تأكد من أن العلامة متوافقة (على سبيل المثال ، بطاقات Mifare لهذا المثال).
  • قراءات غير منتظمة: استخدم أسلاك الطائر الأقصر وضمان طاقة مستقرة للوحدة النمطية.

تطبيقات وحدة PN532

  1. أنظمة التحكم في الوصول
  2. أنظمة الدفع بدون اتصال
  3. إدارة المخزون الذكية
  4. أجهزة إنترنت الأشياء التي تتطلب مصادقة آمنة

خاتمة

لقد نجحت في ربط وحدة PN532 RFID/NFC مع علامات Arduino وقراءة علامات RFID/NFC. تفتح هذه الوحدة متعددة الاستخدامات إمكانيات لا نهاية لها للمصادقة الآمنة وتبادل البيانات في مشاريعك. قم بتجربة ميزات إضافية مثل الكتابة إلى العلامات أو التواصل بين نظير إلى نظير لبناء تطبيقات أكثر تقدمًا!

اترك تعليقًا

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.