아두이노 & 안드로이드 블루투스 제어 스마트 키리스 도어락
부품 및 소모품
| 부품 |
수량 |
| 아두이노 우노 (Arduino UNO) |
1 |
| HC-05 블루투스 모듈 |
1 |
| 서보 모터 (Tower Pro MG996R) |
1 |
필요 도구
앱 및 온라인 서비스
- 아두이노 IDE
- MIT App Inventor 2 (안드로이드 앱 개발)
프로젝트 개요
열쇠 없이 스마트폰으로 문을 여닫을 수 있는 블루투스 도어락입니다. 잠금 장치를 문 안쪽에 설치하여 외부에서 물리적 파손이 불가능하며, 안드로이드 앱으로 비밀번호를 전송하여 제어합니다. 올바른 비밀번호 입력 시 서보 모터가 작동하여 잠금/해제하고 결과를 앱으로 피드백합니다.
3D 프린팅 및 조립
Thingiverse(thing:2350856)의 ridercz 설계 파일을 기반으로 출력합니다. LT(경량) 버전도 충분한 강도를 가집니다. 출력된 부품들을 사진 순서대로 조립하고 4개의 나사로 고정합니다.
회로도 및 연결
- HC-05 TX → 아두이노 RX (핀 0)
- HC-05 RX → 아두이노 TX (핀 1) *전압 분할 필요
- 서보 모터 신호선 → 디지털 핀 9
- 전원: 5V 1A 어댑터
아두이노 스케치
#include <Servo.h>
Servo myservo;
String inputString = "";
String command = "";
String value = "";
String password = "arduPi"; // 원하는 비밀번호로 변경
boolean stringComplete = false;
void setup() {
Serial.begin(9600);
inputString.reserve(50);
command.reserve(50);
value.reserve(50);
myservo.attach(9);
}
void loop() {
if (stringComplete) {
delay(100);
int pos = inputString.indexOf('=');
if (pos > -1) {
command = inputString.substring(0, pos);
value = inputString.substring(pos + 1, inputString.length() - 1);
if (!password.compareTo(value) && (command == "OPEN")) {
openDoor();
Serial.println(" OPEN");
delay(100);
} else if (!password.compareTo(value) && (command == "CLOSE")) {
closeDoor();
Serial.println(" CLOSE");
delay(100);
} else if (password.compareTo(value)) {
Serial.println(" WRONG");
delay(100);
}
}
inputString = "";
stringComplete = false;
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == '\n' || inChar == '\r') {
stringComplete = true;
}
}
}
void openDoor() {
myservo.write(0);
delay(100);
}
void closeDoor() {
myservo.write(65);
delay(100);
}
안드로이드 앱 개발 (MIT App Inventor 2)
기본 앱 제작 단계
- ai2.appinventor.mit.edu 접속, 구글 계정 로그인
- 새 프로젝트 "BluetoothControlDoorLock" 생성
- 디자이너에서: ListPicker(블루투스 연결), Label, PasswordTextBox, Button 2개(열기/닫기), BluetoothClient(비가시) 배치
- 블록 에디터에서 ListPicker.BeforePicking/AfterPicking, 버튼 클릭 이벤트, 블루투스 데이터 송수신 로직 구현
- 빌드 메뉴에서 APK 파일 생성하여 설치
고급 앱 기능 (BTcontrol.aia/apk 제공)
- 블루투스 미활성화 시 활성화 다이얼로그 표시
- 연결된 기기 MAC 주소 및 이름 표시
- 비밀번호 입력 후 열기/닫기 버튼으로 제어
- 올바른 비밀번호: "문 열림/닫힘" 메시지 표시
- 잘못된 비밀번호: "비밀번호 틀림" 알림
- 구글 플레이 스토어에서도 다운로드 가능
설치 방법
- 아두이노에 스케치 업로드 및 회로 테스트
- 도어락 본체를 문 안쪽에 4개 나사로 고정
- 블루투스 모듈을 본체에 핫글루로 고정
- 아두이노 보드를 하단에 배치하고 배선 연결
- 5V 어댑터로 전원 공급
- 스마트폰에 앱 설치 후 블루투스 페어링 및 연결
다운로드 자료