개발이야기

도어락 해킹? 내가 만든 아두이노 보안 시스템으로 끝!

게임교수 2025. 3. 31. 16:35
반응형

도어락 해킹? 내가 만든 아두이노 보안 시스템으로 끝!

🔐 들어가며 도어락 해킹, 남의 집 이야기 같지만 실제로는 우리 주변에서도 벌어지는 일입니다. 시중의 스마트 도어락들도 대부분 무선 신호의 복제나 취약한 암호 구조로 인해 해킹에 취약할 수 있습니다. 그래서 직접 만들면 어떨까요? 이번 프로젝트에서는 아두이노를 활용해 RFID + 부저 + 서보모터 기반 보안 도어락 시스템을 만들어 보겠습니다. 직접 만들면서 보안 시스템의 작동 원리를 이해하고, 내 집을 더 안전하게 지킬 수 있는 방법을 익혀봅시다.

🧰 1. 준비물

부품명 설명

아두이노 Uno 또는 Nano 마이크로컨트롤러 보드
RFID 리더 모듈 (RC522) 카드/태그 인식용
RFID 카드 및 태그 출입 인증 수단
SG90 서보모터 도어락 물리 제어용
피에조 부저 알림 및 경고용
16x2 I2C LCD (선택사항) 상태 출력
점퍼 와이어 회로 연결용
브레드보드 임시 회로 구성용
5V 전원 어댑터 또는 USB 전원 공급

🔌 2. 회로 연결

📍 2.1 RFID 리더 모듈 (RC522)

RFID 핀 아두이노 핀

SDA D10
SCK D13
MOSI D11
MISO D12
IRQ 연결 안함
GND GND
RST D9
3.3V 3.3V (주의)

📍 2.2 서보모터

서보 핀 아두이노 핀

VCC 5V
GND GND
PWM D6

📍 2.3 부저

부저 핀 아두이노 핀

+ D5
- GND

📍 2.4 I2C LCD (선택사항)

LCD 핀 아두이노 핀

SDA A4
SCL A5

💻 3. 아두이노 IDE 준비

  • MFRC522 라이브러리 설치
  • Servo.h 라이브러리 기본 포함
  • LiquidCrystal_I2C.h 설치 (LCD 사용 시)

📜 4. 코드 개요

  • RFID 태그 감지 시 UID 확인
  • 등록된 UID일 경우 서보모터가 문을 엽니다
  • 잘못된 카드일 경우 부저 알림 발생
  • LCD에 상태 표시 가능

🧾 5. 전체 코드 (주석 포함)

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

#define SS_PIN 10
#define RST_PIN 9
#define RELAY_PIN 6
#define BUZZER 5

MFRC522 rfid(SS_PIN, RST_PIN);
Servo servo;

// 등록된 카드 UID (예시)
byte validUID[4] = {0xDE, 0xAD, 0xBE, 0xEF};

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  servo.attach(RELAY_PIN);
  pinMode(BUZZER, OUTPUT);
  servo.write(0); // 잠금 상태
}

void loop() {
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
  if (isValidUID(rfid.uid.uidByte)) {
    servo.write(90);
    delay(3000);
    servo.write(0);
  } else {
    digitalWrite(BUZZER, HIGH);
    delay(1000);
    digitalWrite(BUZZER, LOW);
  }
  rfid.PICC_HaltA();
}

bool isValidUID(byte *uid) {
  for (byte i = 0; i < 4; i++) {
    if (uid[i] != validUID[i]) return false;
  }
  return true;
}

🧪 6. 테스트 시나리오

  • 카드 등록 후 접근 테스트
  • 등록되지 않은 카드 접근 시 부저 작동 확인
  • 서보모터 회전 여부 확인
  • LCD 사용 시 'Access Granted/Denied' 문구 확인

🛠️ 7. 확장 기능 제안

  • 🔐 여러 사용자 등록 기능
  • ⏱ 일정 시간 경과 시 자동 잠금
  • 🧠 음성 피드백 기능 (DFPlayer Mini + 스피커)
  • 🌐 인터넷 연동 (ESP8266 WiFi 모듈)
  • 📱 스마트폰 앱 연동 (MIT App Inventor)
  • 📦 로그 기록 기능 (SD 카드 또는 EEPROM)
  • 🛎️ 인터폰 기능과의 연계
  • 🔍 관리자 모드 / 설정 초기화 버튼

📌 8. 제작 팁

  • 서보모터는 너무 자주 회전하지 않도록 제한
  • RFID 안테나는 금속 주변에 두지 말 것
  • LCD가 없다면 시리얼 출력으로 대체 가능
  • 실제 문에 고정할 땐 서보모터 위치 조절이 핵심

🧠 9. 마무리하며 시중 도어락은 '디자인'은 좋지만, 커스터마이징은 어렵습니다. 이 프로젝트를 통해 형님은 자신만의 보안 시스템을 직접 만들 수 있습니다. 누가 접근했고, 몇 시에 문이 열렸는지를 로그로 남기고, 음성으로 안내하는 스마트한 도어락이 바로 내 손에서 만들어질 수 있습니다. 간단한 센서부터 점점 더 정교한 보안 기능까지, 확장성과 실용성이 모두 갖춰진 DIY 프로젝트입니다.

📌 출처: ythouse.tistory.com

반응형