아두이노와 MFRC522 RFID 리더를 이용한 보안 접근 제어
이 블로그 게시물에서는 MFRC522 RFID 리더기를 사용하는 간단한 예제를 보여드리겠습니다. MFRC522 모듈 사용법과 라이브러리 설치, 아두이노 설정, 연결 회로도는 이전에 올린 포스팅을 참고하세요.
저는 설명한 것을 반복해서 사용함으로 디지털을 낭비하는 것을 좋아하지 않습니다. 인터넷에도 비용이 듭니다.
설명
RFID는 무선 주파수 식별(Radio-Frequency Identification)의 약자입니다. RFID는 전자기장을 이용하여 단거리에서 데이터를 전송합니다. RFID는 사람 식별, 거래 처리 등에 유용하게 사용됩니다.
RFID 시스템을 사용하여 문을 열 수 있습니다. 예를 들어, 카드에 올바른 정보가 등록된 사람만 출입이 허용됩니다. RFID 시스템은 다음과 같은 기술을 사용합니다.
식별 대상에 부착된 태그는 이 예시에서 열쇠고리와 전자식 카드에 사용됩니다. 각 태그에는 고유한 식별 번호(UID)가 있습니다.

양방향 무선 송수신기인 리더기는 태그 에 신호를 보내고 태그의 응답을 읽습니다.

입력 전압: 3.3V
주파수: 125KHz, 13.56MHz
아두이노 IDE에서 miguelbalboa가 제작한 RFID 라이브러리를 설치하세요. 최근에 업데이트 된 다른 라이브러리라면 더욱 좋습니다.
핀 배선
| Pin | Wiring to Arduino Uno |
| SDA | Digital 10 |
| SCK | Digital 13 |
| MOSI | Digital 11 |
| MISO | Digital 12 |
| IRQ | unconnected |
| GND | GND |
| RST | Digital 9 |
| 3.3V | 3.3V |
주의: 이 장치는 반드시 3.3V로 전원을 공급해야 합니다!
회로

RFID 태그에서 데이터 읽기
회로 준비가 완료되면 파일 > 예제 > MFRC522 > DumpInfo로 이동하여 코드를 업로드하세요. 이 코드는 (RFID 라이브러리를 설치한 후) Arduino IDE에서 사용할 수 있습니다.
다음으로 시리얼 모니터를 엽니다. 아래 그림과 같은 화면이 나타날 것입니다.

RFID 카드 또는 키체인을 리더기에 가까이 가져가세요. 모든 정보가 표시될 때까지 리더기와 태그를 더 가까이 두세요.

이것은 카드에서 읽을 수 있는 정보이며, 노란색으로 강조 표시된 카드 UID도 포함됩니다. 이 정보는 이전 그림에서 볼 수 있듯이 세그먼트와 블록으로 나뉜 메모리에 저장됩니다.
데이터 저장 공간은 1024바이트이며 16개의 섹터로 나뉘어 있고, 각 섹터는 A와 B라는 두 개의 서로 다른 키로 보호됩니다.
나중에 필요하니 UID 카드를 적어 두세요.
다음 코드를 업로드하세요.
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
void setup()
{
Serial.begin(9600); // Initiate a serial communication
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
Serial.println("Approximate your card to the reader...");
Serial.println();
}
void loop()
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "BD 31 15 2B") //change here the UID of the card/cards that you want to give access
{
Serial.println("Authorized access");
Serial.println();
delay(3000);
}
else {
Serial.println(" Access denied");
delay(3000);
}
}
위 코드에서 if (content.substring(1) == “REPLACE WITH YOUR UID”) 부분을 변경 하고 이전에 작성한 UID 카드를 입력해야 합니다.
이제 코드를 아두이노에 업로드하고 시리얼 모니터를 여세요. 접근 권한을 부여할 카드를 대략적으로 가리키면 다음과 같은 내용이 표시됩니다.
다른 UID를 가진 다른 태그를 유사하게 선택하면 거부 메시지가 표시됩니다.

이 튜토리얼을 읽어주셔서 감사합니다. 배움을 멈추지 마세요. 항상 즐거운 개발이 되길 바랍니다.
'아두이노우노 R4' 카테고리의 다른 글
| 아두이노 OLED 메뉴 디스플레이 (2) | 2026.02.03 |
|---|---|
| 아두이노와 3-디스플레이 OLED 시계 (0) | 2026.02.03 |
| Visuino를 사용한 실시간 시계 및 GC9A01 디스플레이 (0) | 2026.01.29 |
| 아두이노로 RGB LED 스트립 제어 (1) | 2025.12.27 |
| RFID RC522 모듈 Arduino Uno R4 WIFI 인터페이스 (0) | 2025.11.28 |
| Arduino Uno R4와 SG90 서보 모터를 사용한 RFID 액세스 시스템 (0) | 2025.11.28 |
| Arduino Nano R4 강력한 개요 (4) | 2025.08.09 |
| Arduino Nano R4 소개 (2) | 2025.07.25 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩