아두이노

아두이노 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 핀아두이노 핀
SDA10
SCK13
MOSI11
MISO12
IRQ사용 안함
GNDGND
RST9
3.3V3.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

반응형