산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노로 만드는 휴대용 RFID 도어락 - 단계별 완벽 가이드

필요한 부품 및 준비물

부품 수량 비고
아두이노 우노 (Arduino UNO) 1 메인 컨트롤러
RFID 리더 모듈 (RC522/MFRC522) 1 13.56MHz, 3.3V 동작
점퍼 와이어 (암-수, 수-수) 1세트 연결용
USB-A to 마이크로 USB 케이블 1 전원 및 업로드용
4채널 릴레이 모듈 (I2C 타입) 1 도어락 작동 제어용

소프트웨어 및 온라인 도구

프로젝트 개요

이 튜토리얼에서는 아두이노 우노와 RC522 RFID 모듈을 사용하여 휴대용 RFID 도어락 시스템을 제작하는 방법을 단계별로 설명합니다. 인증된 RFID 카드나 키팝을 태그하면 릴레이를 통해 도어락을 해제하고, 미인증 태그에는 접근을 차단하는 보안 시스템입니다.

RC522 RFID 모듈 이해하기

RFID란 무엇인가?

RFID(Radio Frequency Identification)는 전파를 이용해 근거리에서 데이터를 무선으로 전송하는 기술입니다. 리더기(Reader)와 태그(Tag)로 구성되며, 태그는 배터리 없이 리더기의 전자기장에서 전력을 얻어 고유 식별 번호(UID)를 전송합니다.

RC522 모듈 주요 사양

하드웨어 연결 (핀 배선)

RC522 모듈을 아두이노 우노에 다음과 같이 연결하세요:

RC522 핀 아두이노 우노 핀
SDA (SS) Digital 10
SCK Digital 13
MOSI Digital 11
MISO Digital 12
IRQ 미연결
GND GND
RST Digital 9
3.3V 3.3V (5V 연결 절대 금지)

주의: 4채널 릴레이 모듈의 제어 핀은 Digital 8번을 사용합니다. 릴레이 모듈의 VCC는 5V, GND는 GND에 연결하세요.

소프트웨어 설정 및 라이브러리 설치

  1. 아두이노 IDE 실행
  2. 메뉴: 스케치 → 라이브러리 포함하기 → 라이브러리 관리자
  3. 검색창에 "MFRC522" 입력 후 GithubCommunity 버전 설치
  4. SPI 라이브러리는 기본 내장되어 있음

UID 확인 및 등록 과정

  1. 아두이노 IDE에서 파일 → 예제 → MFRC522 → DumpInfo 열기
  2. 코드 업로드 후 시리얼 모니터 열기 (9600 baud)
  3. RFID 카드/키팝을 리더기에 접근시키면 UID가 표시됨 (예: 89 18 79 63)
  4. 표시된 UID를 메모해 둠

메인 코드 설명 및 수정

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

#define RELAY_PIN 8
#define SS_PIN 10
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH); // 릴레이 OFF 상태 (Active LOW 가정)
  
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  
  Serial.println(F("RFID 도어락 시스템 준비 완료"));
  Serial.println(F("인증된 카드를 태그하세요..."));
}

void loop() {
  // 새 카드 감지 대기
  if (!mfrc522.PICC_IsNewCardPresent()) return;
  if (!mfrc522.PICC_ReadCardSerial()) return;

  // UID 문자열 생성
  String uidStr = "";
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    uidStr += (mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    uidStr += String(mfrc522.uid.uidByte[i], HEX);
  }
  uidStr.toUpperCase();
  uidStr = uidStr.substring(1); // 앞 공백 제거

  Serial.print(F("감지된 UID: "));
  Serial.println(uidStr);

  // ★ 여기에 본인의 UID 등록 (DumpInfo에서 확인한 값)
  if (uidStr == "89 18 79 63") {  // ← 이 부분을 본인 UID로 변경
    Serial.println(F(">>> 인증 성공: 접근 허용"));
    digitalWrite(RELAY_PIN, LOW);  // 릴레이 ON (도어락 해제)
    delay(3000);                   // 3초간 유지
    digitalWrite(RELAY_PIN, HIGH); // 릴레이 OFF (도어락 잠금)
  } else {
    Serial.println(F(">>> 인증 실패: 접근 거부"));
    // 필요시 부저 경고음 추가 가능
  }
  
  delay(1000); // 중복 읽기 방지
  mfrc522.PICC_HaltA(); // 카드 통신 종료
}

작동 테스트 및 결과

  1. 등록된 카드 태그 → 시리얼 모니터에 "인증 성공" 표시, 릴레이 작동 (도어락 해제)
  2. 미등록 카드 태그 → "인증 실패" 표시, 릴레이 미작동
  3. 실제 도어락(전자정, 솔레노이드 등)은 릴레이의 COM/NO 단자에 연결

확장 아이디어 및 팁

  • 다중 사용자 등록: 배열이나 EEPROM에 여러 UID 저장
  • 로그 기록: SD 카드 모듈 추가하여 출입 기록 저장
  • OLED 디스플레이: 상태 메시지 시각적 표시
  • 부저 추가: 인증 성공/실패 시 다른 톤으로 알림
  • 전원 관리: 배터리 구동 시 슬립 모드 활용

자주 발생하는 문제 해결

증상 원인 및 해결
카드 인식 안 됨 배선 확인 (특히 3.3V/GND), 안테나 간섭 확인, 라이브러리 재설치
릴레이가 반대 동작 릴레이 모듈 Active HIGH/LOW 타입 확인 후 코드 수정
시리얼 모니터에 깨진 문자 보드레이트 9600으로 맞췄는지 확인
인증 후 바로 잠김 delay 시간 조정, 기계적 래칭 타입 릴레이 고려

회로도 참고

프로젝트 첨부된 회로도 이미지(schematics 섹션 참조)를 확인하여 실제 배선하세요. 브레드보드용 배선도와 PCB용 회로도가 모두 제공됩니다.

제조공정

  1. 아두이노로 만드는 레트로 누미트론 클락: 심플하고 신뢰성 높으며 에너지 효율적
  2. 아두이노와 RC522 RFID로 보안 도어락 만들기 (MIFARE 13.56MHz)
  3. 아두이노 RFID 도어락 만들기 – 단계별 완벽 가이드
  4. 파이썬 연동 아두이노 RFID 출석 관리 시스템 구축하기
  5. 스마트 저금통 만들기: 아두이노 나노로 동전 인식기 제어하기
  6. 아두이노 블루투스로 LED 제어하기 - HC-05 & MIT App Inventor 입문 가이드
  7. 아두이노와 노키아 5110 LCD로 만드는 DIY 전압계 - 단계별 가이드
  8. 아두이노 나노와 로터리 인코더로 만드는 정밀 측정 바퀴
  9. Sharp GP2Y1010AU0F 센서로 정밀 공기질 모니터 만들기
  10. 아두이노 우노와 이더넷 실드로 정확한 태양광 복사량 측정하기