สอนการใช้งานบอร์ด Arduino UNO กับ RFID RC522 อ่านคีย์การ์ด

ควบคุมการเปิด-ปิดไฟ LED

บทความนี้จะสอนการใช้งานบอร์ด Arduino UNO เชื่อมต่อ RFID Module อ่านบัตร์คีย์การ์ด RFID ความถี่ 13.56MHz ให้ควบการเปิด-ปิดไฟ LED  สามารถนำไปประยุกต์ใช้ได้กับหลากหลายงาน เช่น เครื่องแตะบัตรเข้างาน-ออกงาน เครื่องยืมคืนอุปกรณ์ และอื่น ๆ ได้อีกมากมาย

MFRC-522 RFID Module

RFID RC522 Read/Write Module (SPI) เป็น RFID ทำงานที่ย่านความถี่ HF 13.56 MHz แบบ Mifare® (ISO-14443) ในชุดมาพร้อมกับ Tag Card และ Tag Key สามารถใช้งานได้ทั้งเขียนและอ่าน RFID tag ได้ ทำงานที่แรงดันไฟขนาด 3.3 โวลต์ เชื่อมต่อกับไมโครคอนโทรเลอร์ด้วย SPI Interface การใช้งาน RFID RC522 Read/Write Module (SPI) สามารถใช้งานร่วมกับ Arduino ได้ มีไลบารีสำเร็จรูปสำหรับนักพัฒนาอยู่บน GitHub แล้วสามารถดาวน์โหลดมาใช้งานได้ทันที

สเปค:

  1. กระแสไฟที่ใช้งาน: 13-26 mA / DC 3.3V
  2. ไม่ได้ใช้งานปัจจุบัน: 10-13 mA / DC 3.3V
  3. ปัจจุบันการนอนหลับ: <80 μA – กระแสสูงสุด: <30mA
  4. ความถี่ในการทำงาน: 13.56 MHz – ประเภทการ์ดที่รองรับ: mifare1 S50, mifare1 S70 MIFARE Ultralight, mifare Pro, MIFARE DESFire
  5. อุณหภูมิในการทำงานของสิ่งแวดล้อม: -20 – 80 ºC
  6. อุณหภูมิในการจัดเก็บสิ่งแวดล้อม: -40 – 85 ºC
  7. ความชื้นสัมพัทธ์: ความชื้นสัมพัทธ์ 5% – 95%
  8. ระยะอ่าน: ≥ 50 มม. / 1.95 “(mifare 1)
  9. ขนาดโมดูล: 40 มม. × 60 มม
  10. อินเทอร์เฟซโมดูล: SPI
  11. อัตราการถ่ายโอนข้อมูล: สูงสุด 10Mbit / s

อุปกรณ์ที่ต้องใช้

  1. บอร์ด Arduino UNO
  2. โมดูล RFID Card Reader/Detector Module Kit (RC 522) พร้อม Tag Card
  3. Buzzer
  4. บอร์ดทดลอง Breadboard
  5. สายไฟจัมเปอร์
  6. LED ขนาด 5 mm สีแดง จำนวน 1 ดวง
  7. Resistor ตัวต้านทาน 330 Ohm จำนวน 1 ตัว

หมายเหตุ ใช้หลอดLED สีอะไรก็ได้ แต่หลอด LEDกับตัวต้านทาน ขึ้นอยู่กับผู้ใช้ว่าจะสีอะไร และตัวต้านทานกี่โอห์ม ศึกษาเพิ่มเติม → คลิก

การต่อวงจร

RFID Module  ⇒  Arduino UNO

SDA     →   pin 10

SCK     →   pin 13

MOSI  →   pin 11

MISO  →   pin 12

RST     →   pin 9

3.3V    →   3.3V

GND  →   GND

LED ⇒  Arduino UNO

ขา +   →   pin 8

ขา  –   →   GND

Buzzer ⇒  Arduino UNO

ขา +   →   pin 7

ขา  –   →   GND

การติดตั้งโปรแกรม Arduino IDE  →  คลิก

Library 

Library  RFID Module Arduino→  คลิก

ตัวอย่างโค้ด

โค้ดอ่าน UID บัตร

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

constexpr uint8_t RST_PIN = 9;
constexpr uint8_t SS_PIN = 10;
MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;

String tag;

void setup() {
Serial.begin(9600);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
}

void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return;
if (rfid.PICC_ReadCardSerial()) {
for (byte i = 0; i < 4; i++) {
tag += rfid.uid.uidByte[i];
}
Serial.print(“UID = “);
Serial.println(tag);
tag = “”;
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
}

}

ดาวโหลดโค้ด  → คลิก

โค้ดอ่าน UID บัตร และควบคุม LED

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

constexpr uint8_t RST_PIN = 9;
constexpr uint8_t SS_PIN = 10;
int LedPin = 8;
int BuzzerPin = 7;
MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;

String tag;

void setup() {
Serial.begin(9600);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
pinMode(BuzzerPin, OUTPUT);
pinMode(LedPin, OUTPUT);
}

void loop() {
Serial.println(“Tab Card”);
delay(1000);
if ( ! rfid.PICC_IsNewCardPresent())
return;
if (rfid.PICC_ReadCardSerial()) {
for (byte i = 0; i < 4; i++) {
tag += rfid.uid.uidByte[i];
}
Serial.println(tag);
if (tag == “211532342”) {
Serial.println(“Access Granted!”);
digitalWrite(BuzzerPin, HIGH);
delay(100);
digitalWrite(BuzzerPin, LOW);
delay(100);
digitalWrite(LedPin, HIGH);
delay(1000);
digitalWrite(LedPin, LOW);
delay(1000);

}
else if(tag == “121131102179”) {
Serial.println(“Access Granted!”);
digitalWrite(BuzzerPin, HIGH);
delay(100);
digitalWrite(BuzzerPin, LOW);
delay(100);
digitalWrite(LedPin, HIGH);
delay(1000);
digitalWrite(LedPin, LOW);
delay(1000);
}
else {
Serial.println(“Access Denied!”);
digitalWrite(BuzzerPin, HIGH);
delay(2000);
digitalWrite(BuzzerPin, LOW);
}
tag = “”;
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
}

}

ดาวโหลดโค้ด  → คลิก

เมื่ออัพโหลดโค้ดลงบอร์ดเรียบร้อยแล้ว ทำการทดสอบจะได้ผลดังรูป

การใช้งานบอร์ด Arduino UNO กับ RFID RC522

Banner Content

0 Comments

Leave a Comment