아두이노
아두이노 RFID 카드 인식 시스템 만들기 – RC522 모듈로 출입 인증 구현하기
게임교수
2025. 4. 19. 17:28
반응형
아두이노 RFID 카드 인식 시스템 만들기 – RC522 모듈로 출입 인증 구현하기
카드 한 장으로 문을 여는 출입 시스템, 직접 만들 수 있습니다!
이번 글에서는 아두이노와 RC522 RFID 리더 모듈을 이용해 RFID 태그(카드)를 인식하고, 특정 UID에 따라 동작을 수행하는 시스템을 구현합니다.
이 방식은 출입 인증, 출석 체크, 스마트 잠금장치 등에 널리 사용되는 기술입니다.
📦 준비물
- 아두이노 UNO
- RC522 RFID 리더기
- RFID 카드 or 키태그
- 점퍼 와이어
- 브레드보드 (옵션)
🔍 RC522 RFID 모듈이란?
RC522는 13.56MHz 주파수 대역의 RFID를 읽을 수 있는 SPI 기반 모듈입니다. 전송 속도도 빠르고, 가격도 저렴해 가장 많이 쓰이는 RFID 리더 중 하나입니다.
⚙️ 핀 연결
RC522 핀 | 아두이노 핀 |
---|---|
SDA | 10 |
SCK | 13 |
MOSI | 11 |
MISO | 12 |
IRQ | 사용 안함 |
GND | GND |
RST | 9 |
3.3V | 3.3V |
💻 기본 코드 – UID 출력
RFID 태그의 UID(고유 ID)를 읽어와 시리얼 모니터에 출력하는 기본 예제입니다.
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
Serial.println("RFID 리더 시작");
}
void loop() {
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
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();
delay(1000);
}
🔐 UID 기반 인증 예제
특정 카드 UID에 따라 승인/거부 메시지를 출력해봅니다.
String masterUID = "F1043B2A"; // 카드 UID를 시리얼로 읽고 이 값으로 설정
void loop() {
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
String tagID = "";
for (byte i = 0; i < rfid.uid.size; i++) {
tagID += String(rfid.uid.uidByte[i], HEX);
}
tagID.toUpperCase();
if (tagID == masterUID) {
Serial.println("▶ 인증 성공: 출입 허용");
} else {
Serial.println("✖ 인증 실패: 출입 거부");
}
rfid.PICC_HaltA();
delay(1500);
}
🧠 활용 팁
- 🔒 릴레이와 연동해 전자문 잠금 해제
- 📊 SD카드에 출입 로그 저장
- 📆 RTC 모듈과 결합해 출입 시간 기록
✅ 마무리
RFID를 이용한 카드 인식 시스템은 단순하면서도 실용적인 프로젝트입니다.
보안 시스템, 출석 체크, 도서 대여 등 실생활 곳곳에 응용이 가능합니다.
이제 여러분도 나만의 출입 인증 시스템을 직접 구현해보세요!
Arduino 시리즈 20편 | 작성자: YT
반응형