Programming/IoT_Embedded

Arduino + Android를 이용한 Home-Automation/Security

이세우 2014. 5. 30. 01:27



아두이노와 안드로이드를 이용해서 홈오토메이션+홈방범방재 시스템을 구성해 봤습니다.





제가 지금 살고 있는 땅콩집에 이사 오면서 단독주택이다 보니 보안이 문제가 될것 같아서

ADT 캡스를 방범 서비스로 사용하고 있습니다.




그런데, 이게 비용 등 불합리한게 한 두가지가 아니더군요.

우선 비싸고, 경보가 울려도 출동 대신 전화가 오고 출동하면 출동비 따로 내야 하고,

설비는 현관 신발장 한칸을 모두 차지하고 있으며, 덩치도 커서 전기료도 많이 나옵니다.


그래서 제가 직접 만들기로 했습니다.

출동은 어차피 하지도 않으니 외출 중 전화나 문자로 침입을 알려 주거나

경찰이나 소방서에 전화 신고를 자동화하는 기능을 만들면 될겁니다.


아두이노와 Node.js를 연동하는 사례는 많이 있기도 하고, SCSA 강의했을때 학생들이 만들기도 했었는데,

Node.Js를 돌리기 위한 컴퓨터를 상시로 켜두어야 한다는게 문제여서,

책상 서랍에 굴러 다니는 약정 끝난 안드로이드 기기를 이용하는 방안을 모색했습니다.


어차피 ADT 설치하면 아래 사진 같은 컨트롤이 거실에 자리하는데, 이것을 안드로이드 기기로 대신한다는 계획인거죠.



이 컨트롤말고 보통 신발장에 한가득 서버가 들어 서게 되는데 그건 아두이노로 대체하는 거죠.





일단, 구성을 위한 프로토타입 실험 영상을 보시죠.





안드로이드와 아두이노의 연결은 OTG 케이블로 연결해서 Serial 통신으로 이루어 집니다.

아두이노와 연결된 센서는 대략 다음과 같습니다.

그 밖에 220V 가전제품 전원 조작을 위해 반도체 릴레이를 사용했구요.


적외선 발신기를 이용하면 보일러와 에어컨 등도 얼마든지 원격 조작이 되겠더군요.

게다가 안드로이드 카메라를 이용해서 CCTV 도 구현이 되구요.


안드로이드 기기의 전원공급이 마지막 문제 였는데,

안드로이드 기기의 usb 포트로 전원 공급을 받아야 하는데,

그 포트가 이미 아두이노와 연결하는데 써버렸으니 이를 어쩌나 했는데,

Y 커넥터로 전원 공급을 받을 수 있더군요.





안드로이드에는 웹서버웹소켓 서버를 구성해서

원격 시스템에서 모니터링 및 조작이 가능하게 했고,

모든 접속 기기는 실시간 동기화 되게 했습니다.



클라이언트는 웹 브라우져를 통해 아무곳에서나 접속이 가능 하니 편리하고

웹브라우져에 주소입력하는게 불편하거나  네이티브 기능이 필요하면

모바일의 경우  Phonegap으로 데스크탑의 경우 node-webkit을 이용해서

Hybrid App 앱으로  만들면 모든 플랫폼에서 원하는 모든 기능을 구현해서 사용할 수 있겠죠.


화면 Front-End 프레임워크는 부트스트랩으로 구현했는데,

jQueryMobile이나 SenchaTouch로 구현해도 좋을것 같구요.


곧 제가 살고 있는 집에 실제 적용해서 돈, 공간, 전기를 절약되고 부뜻한 심리적 만족감을 갖을 겁니다.


이 구성을 그대로 교육 과정으로 편성해서 강의도 열었으니 1석 2조인 셈이네요.





이 구성을 해보고 싶은 분들은 제가 강의할때 사용하는 사이트에 모든 정보가 다 들어 있으니 참고 하셔도 될것 같습니다.

http://bit.ly/arduinoEdu


이 프로젝트 주제는 물론 여기에 사용된 모든 기술과 관련된 교육이 필요하신 분들은 xxx로 연락 주세용.

그러고 보니 이 프로젝트에 제가 강의하는 모든 기술이 다 들어 있군요.(Spring 빼구요...)

(나중에 추가:

예의를 갖추지 않은 졸업작품 문의가 무척 많습니다. 졸업작품 하다가 질문하는 경우가 많은데 공부는 안하고 결과만 나오길 바라는 경우는 그래도 애교 수준인데,

예의 조차 없는 대학생들이 너무 많아서 스트레스 입니다. 졸업작품 질문은 하셔도 답변을 드리지 않습니다.)


PS. (위의 부품 링크는 모두 artrobot이라는 곳으로 되어 있는데, 저랑은 상관없는 곳이구요.

 무려 교육을 위해 대량 구매할때 불친절하기 까지 했다는...)