วิธีใช้โมดูล RC522 RFID กับ Arduino

How to Use the RC522 RFID Module with Arduino

RC522 เป็นโมดูล RFID ยอดนิยมที่ใช้สำหรับการสื่อสารไร้สายและการระบุตัวตน มันถูกใช้อย่างกว้างขวางในระบบควบคุมการเข้าถึงระบบการชำระเงินแบบไม่สัมผัสและการติดตามสินค้าคงคลัง บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อโมดูล RC522 RFID กับ Arduino เพื่ออ่านแท็ก RFID และการ์ด


สิ่งที่คุณต้องการ

  1. โมดูล RC522 RFID
  2. คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
  3. แท็ก RFID หรือการ์ด (13.56 MHz)
  4. เครื่องหั่นขนมปังและสายจัมเปอร์
  5. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจโมดูล RC522 RFID

โมดูล RC522 RFID ทำงานที่ 13.56 MHz และสื่อสารกับไมโครคอนโทรลเลอร์โดยใช้โปรโตคอล SPI มันมาพร้อมกับเสาอากาศ RFID และรองรับทั้งการอ่านและการเขียน

rc522 pinout

เข็มหมุด การทำงาน
SDA SPI SS (Slave Select)
SCK นาฬิกา SPI
Mosi อินพุตข้อมูล SPI
มิโซะ เอาต์พุตข้อมูล SPI
IRQ คำขอขัดจังหวะ (ไม่บังคับ)
gnd พื้น
ครั้งแรก รีเซ็ต
3.3V แหล่งจ่ายไฟ

บันทึก: RC522 ทำงานบนตรรกะ 3.3V; ตรวจสอบให้แน่ใจว่าการเชื่อมต่อของคุณตรงกับข้อกำหนดแรงดันไฟฟ้าของบอร์ด


ขั้นตอนที่ 2: เดินสาย RC522 ไปยัง Arduino

นี่คือวิธีการเชื่อมต่อโมดูล RC522 RFID กับ Arduino UNO:

rc522 pin พิน Arduino
SDA พิน 10
SCK PIN 13
Mosi พิน 11
มิโซะ PIN 12
IRQ ไม่ได้เชื่อมต่อ
gnd gnd
ครั้งแรก พิน 9
3.3V 3.3V

บันทึก: สำหรับบอร์ด Arduino อื่น ๆ ให้แน่ใจว่าคุณแมปหมุด SPI อย่างถูกต้อง


ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ

ในการทำงานกับโมดูล RC522 ให้ติดตั้งไลบรารี "MFRC522"

ขั้นตอนในการติดตั้ง:

  1. เปิด Arduino IDE
  2. ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
  3. ค้นหา "MFRC522" แล้วคลิก ติดตั้ง.

ขั้นตอนที่ 4: อัปโหลดรหัส

นี่คือตัวอย่างตัวอย่างในการอ่านข้อมูลแท็ก RFID:

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN 9  // Reset pin
#define SS_PIN 10  // Slave select pin

MFRC522 rfid(SS_PIN, RST_PIN); // Create an instance of the MFRC522 library

void setup() {
  Serial.begin(9600);
  while (!Serial);

  SPI.begin();      // Initialize SPI bus
  rfid.PCD_Init();  // Initialize RFID reader

  Serial.println("RC522 RFID Reader Initialized");
}

void loop() {
  // Check for a new card
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
    return;
  }

  Serial.println("Card detected:");

  // Print the UID of the card
  Serial.print("UID: ");
  for (byte i = 0; i < rfid.uid.size; i++) {
    Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(rfid.uid.uidByte[i], HEX);
  }
  Serial.println();

  rfid.PICC_HaltA(); // Halt the card
}

ขั้นตอนที่ 5: ทดสอบการตั้งค่า

  1. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  2. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
  3. อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
  4. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  5. วางแท็กหรือการ์ด RFID ใกล้กับโมดูล UID ของการ์ดจะแสดงในจอภาพอนุกรม

ตัวเลือก: การเขียนข้อมูลไปยังแท็ก RFID

ในการเขียนข้อมูลไปยังแท็ก RFID คุณสามารถใช้ไฟล์ PICC_Write ฟังก์ชั่นในไลบรารี MFRC522 อ้างถึงตัวอย่างห้องสมุดสำหรับการดำเนินการเขียนโดยละเอียด


แอปพลิเคชันของ RC522

  1. ระบบควบคุมการเข้าถึง
  2. ระบบการชำระเงินแบบไม่สัมผัส
  3. การติดตามและการจัดการสินค้าคงคลัง
  4. ระบบการเข้าร่วมอัจฉริยะ

การแก้ไขปัญหา

  • ไม่มีการตอบสนองจากโมดูล: ตรวจสอบสายไฟและตรวจสอบให้แน่ใจว่าการเชื่อมต่อ SPI นั้นถูกต้อง
  • ไม่พบ UID: ตรวจสอบให้แน่ใจว่าแท็กอยู่ในช่วงของเสาอากาศ RFID
  • ข้อผิดพลาดของห้องสมุด: ตรวจสอบว่ามีการติดตั้งไลบรารี MFRC522 อย่างถูกต้อง

บทสรุป

คุณสามารถเชื่อมต่อโมดูล RFID RC522 กับ Arduino ได้สำเร็จทำให้คุณสามารถอ่านข้อมูลแท็ก RFID ได้ โมดูลอเนกประสงค์นี้เหมาะสำหรับโครงการที่ต้องการการสื่อสารและการระบุตัวตนไร้สาย ทดลองกับคุณสมบัติเพิ่มเติมเช่นการเขียนข้อมูลเพื่อแท็กหรือรวมเข้ากับระบบขนาดใหญ่สำหรับแอปพลิเคชันขั้นสูง!

แสดงความคิดเห็น

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.