본문 바로가기

디바이스/라스베리파이

시리야, 춥다 얼른 문 열어줘

집 바깥문(storm door)에 사용할 smart door lock 을 만들어 봤어요

 

시리야, 춥다 얼른 문 열어줘

 

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

 

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

 

 

 

 

 

https://www.techhive.com/article/3212828/best-smart-lock.html

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

 

하지만, 바깥문은 전체를 바꾸지 않는 한 기존의 스마트 도어 락을 사용하기가 어려운 구조입니다.  

 

 

 

 

 

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

 

 

 

 


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

 

현재 결과물은 유투브에 있습니다

https://www.youtube.com/watch?v=mZIwY49XvS4



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

* 태양 전지 (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을 사용했구요. 동네 도서관에서 무료로 인쇄했습니다. 세금 낸 보람을 느끼면서 ... : )

 

[궁시렁 궁시렁]

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



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

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

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

 

 

이제 남은 일

 

1. 설치 후 추가 테스팅

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