관리 메뉴

악보쓰는 프로그래머

DIY 스마트 홈 프로젝트 본문

Programming/IoT_Embedded

DIY 스마트 홈 프로젝트

dltpdn@gmail.com 이세우 2016.02.01 13:34

라즈베리파이와 아두이노를 이용해서 DIY Smart Home 시스템을 만들어 봤습니다.

예전에 모형을 이용해서 스마트홈 시스템을 만들었다고 포스팅한 적 있었지요.
이걸로 작년 한해 IoT강의도 많이 얻어서 먹고 살기도 했는데요.




이번엔 모형이 아닌 진짜 제가 살고 있는 땅콩집에 설치해서 사용할 수 있는 스마트홈 프로젝트를 진행했습니다.

전체 구성도는 아래와 같습니다.

라즈베리파이에 NodeJs와 MySQL을 설치해서 메인 서버로 사용하구요.
NodeJs의 OnOff 모듈을 이용해서 GPIO를 제어할 수 있습니다.
Express로 웹 서비스를 할 수 있구요.

아두이노는 NFC 리더를 연결해서 현관 밖에 설치하고 출입 제어 시스템으로 사용합니다.
아두이노와 라즈베리는 시리얼(UART) 통신으로 연결되어 있구요.

센서로는 도어센서 1개, 적외선 침입센서 3개, 동작감지센서 2개, 화재센서 2종을 2개씩 연결했구요.
전등 제어를 위한 리모콘 스위치 1개와 현관 밖에 경광등이 설치되어 있습니다.

동작하는 모습은 아래의 동영상으로 보실 수 있습니다.


여기에 사용한 센서들은 모두 시중 오픈마켓에서 손쉽게 구입이 가능한것으로 
스스로 만들어 보실 수 있습니다.

앞으로 센서들 하나하나 동작 방법을 포스팅 하려고 합니다.
물론, 라즈베리파이와 아두이노 코드 도 설명하는 포스팅도 하려고 하구요.

이번 프로젝트에서는 모두 유선으로만 연결하였는데, 
시간이 되는대로 무선으로 할 수 있는 방법도 함께 올려 보겠습니다.

적외선 침입 센서같이 전원이 많이 필요한 것은 무선으로는 불가능 할거구요.

이게 아두이노나 라즈베리 전원으로 돌아가는 모형에서 구현하는 것과는 차원이 다르게 힘든 작업이었습니다.
대부분의 센서들은 12~24V로 돌아 가기 때문에 회로구성도 복잡하고 자칫하다가 회로연결을 잘못하면
보드가 순식간에 상하기 때문입니다.
그래서 저는 이번 프로젝트 하면서 라즈베리파이를 4대나 날려 먹었답니다.

특히 현관문 도어락 제어를 서보 모터를 이용해서 흉내내는 것이나 도어락에 주렁주렁 선이며 장치들을 달아 놓는 것은
보기도 싫고 쓸수도 없는 현실성 없는 접근이라서 걸기적 거리는 선도 없이 기존 도어락을 제어하는 것은 생각보다 무척 힘든 일입니다.

이런 도어락 이라면 스마트 하다고 보기 힘들겠죠? 분명 아내에게 한 소리 듣고 철거 당할게 뻔합니다.

이건 쓸수 있는 것들이 아니죠.

그래서 완전히 깔끔하고 기존 도어락을 사용하게 하느라 엄청 고민 많이 했네요.


마지막으로 전등 스위치를 조작하는 것은 정말 끝판왕입니다.
릴레이 스위치에 전등 물려서 스탠드 껐다 켰다 하는 것은 실제로의 적용 가능성이 전혀 없습니다.

이렇게 놓고 거실에서 아이들과 함께 생활 한다는 것은 또 한번 아내에게 핀잔이나 듣고 철수 하게 되는 거죠.

게다가 천장에 달려 있는 전등을 무슨 수로...


그래서 스위치에 덧붙여서 쓰는 스마트 스위치 같은것이 나오기도 하는데, 이것도 충전에 블루투스 페어링에 불편하기도 하고 스위치 모양에 따라 호환도 안되는 스위치도 많습니다.


<스위처>



스위치는 아직 저도 완벽히 해법을 찾지는 못했는데, 어쨌든 엄청 힘든 분야 더군요.

끝으로 설치는 정말 힘든 일이었어요.
아무리 지식이 뛰어나고 아이디어가 좋아도 단순히 설치하는 노동도 만만한게 아니더군요.
지식 노동자 보다 육체 노동자가 한수 아래이고 수입이 적어야 한다는 논리는 개나 줘 버려야 한다는걸 또 한번 느겼네요.

앞으로 차근차근 구성 내용과 DIY 할수 있는 방법을 포스팅 하겠습니다.


10 Comments
  • 프로필사진 BlogIcon 홈스마트 2016.07.29 22:23 신고 좋은 내용 잘 봤습니다! 멋지네요^^
  • 프로필사진 Favicon of http://blog.xcoda.net BlogIcon dltpdn@gmail.com 이세우 2016.10.05 10:00 신고 감사합니다.
  • 프로필사진 김지수 2016.08.30 00:55 신고 라즈베리파이와 아두이노를 기반으로 스마트홈 어플 제작을 하려고 계획중입니다. 혹시 화재 감지 센서로는 무엇을 쓰셨는지. 회로도나 동작 방법을 좀 알 수 있을까요?
  • 프로필사진 Favicon of http://blog.xcoda.net BlogIcon dltpdn@gmail.com 이세우 2016.10.05 10:04 신고 화재감지센서는 보통 건물에서 흔히 사용하는 차동식 화재감지기를 사용했습니다.
    G마켓같은데서 차동식 화재 감지기로 검색하면 5천원 이내의 물건이 많이 나옵니다.

    회로도는 별것이 없기는 하지만 댓글로 설명드릴 수준이 아니어서 근시일내에 새로운 포스팅으로 올려 놓겠습니다.
    급하신것 같아서 간단히 설명드리자면
    차동식 화재 센서는 12v~24V로 동작하는 일종의 스위치라고 보면됩니다.
    일정한 온도 이상이 감지되면 스위치가 연결되는 것이죠.
    그래서 평소에는 선이 떨어져 있다가 화재를 감지하면 24V가 나옵니다.
    이것을 아두이노나 라즈베리로 입력을 받기 위해서는 풀업과 전압강하 회로를 만들어야 합니다.
  • 프로필사진 belox 2016.11.07 11:34 신고 요즘 부모님댁에 구축해드리려고 알아보는 중인데 딱 제가 원하는 구성이네요.
    잘 봤습니다.^^ 실례지만 시간이 되신다면 구성내용과 DIY 할 수 있는 방법 포스팅 부탁드릴게요.
    감사합니다!
  • 프로필사진 Favicon of http://blog.xcoda.net BlogIcon dltpdn@gmail.com 이세우 2016.11.14 20:11 신고 틈틈히 올리려고 하는데, 시간이 잘 나질 안네요. 좀 더 업그레이드 해서 포스팅 할예정입니다.
    댓글 주셔서 감사합니다.
  • 프로필사진 Favicon of http://nhs0912.tistory.com BlogIcon nhs0912 2017.05.30 12:12 신고 질문이 있는데요. 저는 스프링 개발을 한 적이 있는데요. 스프링으로 웹사이트(MVC패턴) 구축후에 라즈베리파이에 웹서버를 통해 웹페이지 띄운 후 그곳에서 on/off 명령을 주면 블루투스 통신으로 아두이노를 동작하게 만들고 싶은데요. 이것을 하기 위해서는 꼭 nodeJS가 필요한지요?
    스프링 MVC 에서 컨트롤러에서 명령 주는 방법은 없나요?
  • 프로필사진 Favicon of http://blog.xcoda.net BlogIcon dltpdn@gmail.com 이세우 2017.05.31 21:21 신고 라즈베리파이에 Raspbian OS를 설치하면 기본으로 Java가 설치되어 있습니다.
    라즈베리파이 GPIO에 직접 연결된 회로 제어를 하고자 한다면 Spring Framework를 추가로 설치하고 웹페이지를 만들고 브라우져에서 Request를 발생시켰을 때 스프링에서 GPIO를 통해 신호를 보내면 되는데, 이때 pi4j라는 모듈을 사용하면 됩니다.

    그런데, 블루투스로 다시 아두이노와 통신을 하고자 한다면 Java로 라즈베리파이의 블루투스를 제어해야 하는데, 이 부분은 Java로 제공되는 라이브러리가 있는지 잘 모르겠습니다.

    도움이 많이 되지 못해 미안합니다.
  • 프로필사진 sbun 2018.03.08 17:59 신고 다음편이 안올라와서 그런데 코드 알려주실수있나요?
  • 프로필사진 Favicon of http://blog.xcoda.net BlogIcon dltpdn@gmail.com 이세우 2018.03.11 12:12 신고 죄송합니다. 소스코드에 개인 정보가 많아 보여 드릴수가 없네요. 곧 정리해서 소스코드라도 볼 수 있게 할께요.
댓글쓰기 폼