storm.door.2.jpg

 

캐나다 처럼 겨울이 길고 추운 나라에서는 바깥에 문을 하나 더 만들어, 현관 문이 직접 눈보라가 노출되지 않도록 하는 경우가 많은데요.

 

우리 집도 이렇게 문이 두개이다 보니, 매일 퇴근할 때 바깥문이 걸려 있으면 열쇠를 찾아서 직접 열어야 하죠 (아니면, 벨을 누르고 기다리든지, 추운데 ...)

 

한국이라면 일반 주택이라고 하더라도, 아마도 더욱 편리한 스마트 도어 락이 많이 있을 거 같은데요. 미국이나 캐나다에도 제일 중요한 메인 현관문은 기존에 스마트 도어락이 많이 나와 있어요.

smart-lock-hub-2019-100816484-poster-wide-large.jpg

 

보통 이런 바깥문은 단순히 90도로 돌려서 열고 닫는 구조로 되어 있는데요 (호화 고급주택은 어떨지 저도 모릅니다 ㅠㅠ). 값비싼 스마트 도어 락을 설치할 만큼 중요하게 생각하지는 않는 것 같더군요 (우편 배달원이 직접 열어서 우편물을 현관문 앞에 놓고 가기도 하죠)

home.depot.storm.door.lock.parts.jpg

집 앞에 와서 차에서 내리기도 전에, '시리야, 바깥문 열어 줘' 하면 바로 문이 자동으로 열려서 열쇠를 찾지 않고 바로 집안으로 들어가면 편리하겠다 싶어서, 한번 만들어 보게 되었습니다. 좀 더 편하고 싶은 끝없는 욕구가 더욱 노가다를 하게 만드는 형국이네요. 

 

YouTube: DIY HomeKit Smart Door Lock

diy.smart.door.lock.thumbnail.jpg

 

## 하드웨어 구성과 프로그램  

태양 전지 (solar cell) : 바깥문은 전기를 공급하기가 여의치 않고, 유리로 된 면이 바깥으로 향하고 있어, solar cell 로 리튬이온 배터리를 충전하는 구조입니다
수동 작동 버튼 (push button) : 스마트 폰이 아니라도 수동으로 열고 닫을 수 있도록 버튼을 달아 놓았어요.
서보 (servo) : 금속 재질인 deadbolt 를 90도 회전시키기 위해 9G servo 를 하나 사용했구요.

릴레이 (relay) : 서보는 회전을 하지 않을 때도 전기를 소모하기 때문에, 문을 열거나 닫고 나면, 전류를 아예 차단하여, 배터리 소모를 줄이도록 프로그램 했구요.  
라스베리 파이 제로: 애플 시리와 연동하기 위해서는 애플의 보안 프로토콜 스펙을 따라야 했는데, SRP (Secure Remote Password) 인데, 원래는 스탠포드에서 개발한 보안 프로토콜을 애플에서 약간만 수정해서 HomeKit 의 보안을 위해 사용하고 있더군요. C로 작성된 소스 코드가 있어서 무리없이 gnu c++로 포팅해서 Raspberry Pi 에서 사용할 수 있었습니다.

외형 케이스 3D 프린트 모델링은 Fusion 360을 사용했구요. 동네 도서관에서 무료로 인쇄했습니다. 세금 낸 보람을 느끼면서 ... : )

door.lock.3dmodel.png

 

[궁시렁 궁시렁]

원래는 더 값싸게 초소형 Arduino 보드 (ESP8266)에 TCP shield를 사용해서 프로그램 하려고 생각했으나, 일부 라이브러리가 표준 TCP 스펙을 '개'무시하고 개발되었던 것 같아요. 안정성에 문제가 있어 Raspberry Pi 로 변경했습니다. 일부, 인터넷에서 보이는 브리지 방식은, 구현은 더 간단하지만, 결국 End to End 보안이 문제가 될 수 있을 것 같더군요.



프로그램 과정 (단순 요약)

1. 라스베리 파이 OS 설치 (buster) 
2. 윈도우 PC에서 기본 에디터로 코딩

3. 컴파일은 ssh로 라스베이 파이에 접속 g++로 컴파일/디버깅/deploy

 

 

이제 남은 일

 

1. 설치 후 추가 테스팅

2. 더 작게도 만들 수 있을 것 같은데 ...

 

Comments


Comments are closed