본문 바로가기

Programming/IoT_Embedded

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



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





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

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이라는 곳으로 되어 있는데, 저랑은 상관없는 곳이구요.

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


  • 익명 2014.07.18 11:51

    비밀댓글입니다

  • 익명 2014.07.18 11:51

    비밀댓글입니다

  • 익명 2015.03.04 00:08

    비밀댓글입니다

    • Favicon of https://blog.xcoda.net BlogIcon 이세우 2015.06.11 09:12 신고

      답변이 늦어서 도움이 될지 모르겠습니다.
      안드로이드에 웹서버와 웹소켓 서버에 대한 내용은 본문에 링크되어 있습니다.
      활용한 사례 예제는 http://bit.ly/arduinoEdu에 작성되어 있으니 참고하세요.

  • 익명 2015.03.16 01:36

    비밀댓글입니다

    • Favicon of https://blog.xcoda.net BlogIcon 이세우 2015.06.11 09:13 신고

      답변이 늦어서 죄송합니다.
      아두이노와 센서의 설치 방법을 댓글로 설명드릴 수 있는 수준은 아닙니다.

      제가 도와드릴 수 있는 유일한 방법은 제가 교육에 활요하는 사이트인
      http://bit.ly/arduinoEdu 를 참조하시라는 말씀을 드리는 것밖에 없네요.

  • 질문 2015.06.11 01:40

    질문하나 드려도될런지..

    만드신 프로그램을 들고와서 구축을 해봣는데 방범설정을 키고 센서가 작동하여 스마트폰으로 알림이 온다음에 다시 방범설정을 누르려면 장애물이 잇다던지 그런식으로 멘트가 뜨고 다시 방범모드로 가지를 않네요. 가끔 바로바로갈때도잇는데 뭐때문인지를 모르겟습니다.
    영상에서는 센서가작동해서 알림이 뜬후에 바로 방범설정을 다시하셔도 되던데.
    왜안되는지 알고싶습니다.답변부탁드릴께요

  • 질문 2015.06.11 02:27

    제가 너무 두서없게 글을쓴거같네요;
    스마트폰으로 알림이 뜬후 알림을해제하고 다시 방범설정을 누르면 장애물이 있다. 이런멘트가 뜨면서 다시 방범설정이 안되네요
    아두이노 리셋버튼을누르고 다시하면 바로되는데
    어떻게 해결할방법이 없을까요?답변부탁드립니다~

    • Favicon of https://blog.xcoda.net BlogIcon 이세우 2015.06.11 09:09 신고

      만약 제가 만든 방법과 동일하게 구성하셨다면,
      모션감지 센서를 부착했을 텐데요,
      알림이 뜬 후에 바로 방범설정을 하면 아마도 움직임을 감지하고 있어서
      외출방범이 안될겁니다.
      모션센서는 움직임을 감지하고나서도 일정시간 동안 감지된 신호를 보내게 되어 있어서, 잠시 움직임 없이 있다가 조작하시면 될겁니다.

      만약 모션센서가 아닌 적외선센서 문제라면 증상만으로 답변드리기 어렵습니다.

  • 이태균 2016.04.21 11:49

    혹시 전주에 교육은 안하시나요~?ㅠㅠ

    • Favicon of https://blog.xcoda.net BlogIcon 이세우 2016.04.25 21:54 신고

      교육은 전국 어디서든 하긴 하는데요,
      교육 인원이 적어도 10명 이상은 돼야 합니다.
      개별적으로 교육을 원하시는 경우는 비용 부담이 너무 큽니다.

  • 이태균 2016.06.01 11:59

    전주영상진흥원에 입주기업인데 꼭 한번 교육해주셨으면좋겠습니다!

  • 익명 2017.04.07 10:58

    비밀댓글입니다

    • Favicon of https://blog.xcoda.net BlogIcon 이세우 2017.04.24 10:24 신고

      죄송합니다. 개인적으로 오는 메일이 무척 많아 이렇게 비공개 익명으로 물으시면 어떤 분이 보내셨는지 확인은 불가능합니다.
      그리고, 질문은 댓글로 남겨 주시지 않으면 메일로는 특별한 경우를 제외하고는 답변드리지 않고 있습니다.

  • 늦었지만 2020.05.01 17:21

    아직 시작은 안하고 글만 읽었지만 미리 감사합니다 ㅋㅋ 아두이노라는걸 이번에 처음 접하게 되었는게 가장 쓸모있는(?) 결과물이 나올거 같아서 기대됩니다. 졸업 수준의 프로젝트이군요. 아무것도 모르는 초보지만 차근차근 해보려고합니다~ 분명 중간중간 막히겠지만 워낙 예전 글이니 여기서 답변을 구하긴 어렵겠죠 ㅠ 그래도 좋은 참고가 될거 같습니다.