꿈속에서조차 너를 그리다

하필 Blynk를 사용하려는 이유는?

Blynk를 사용하지 않으면 일이 너무 커집니다

이번 프로젝트에서는 간단하게 Blynk 플랫폼을 사용해서 스마트홈을 구성해보도록 하겠습니다. 완벽하게 독자적인 플랫폼을 만든다면야 더할나위 없이 좋겠지만 Blynk 플랫폼을 이용하는 게 제 시간안에 프로젝트를 끝낼 수 있는 방법입니다. Blynk 플랫폼을 이용하지 않는다면 저희는 위 그림대로 라즈베리파이를 추가로 구입하고 라즈베리파이 위에서 굴러가는 mqtt서버를 만들고, 이 서버와 통신하는 안드로이드 모바일 앱을 만들어야 합니다. 라즈베리파이를 사서 mqtt만 굴리기는 또 뭐하니까 Google Assistant도 좀 설치해주고, 데이터도 차곡차곡 모아보는 걸로 합시다. 행복회로를 좀 더 돌려서 데이터가 쌓이는대로 AI를 적용해 훈련을 좀 시켜보는 것은 어떨까요? 가장 궁극적으로 지향하는 바이긴 한데 라즈베리파이가 들어오는 순간 일이 너무 커집니다. 그냥 Blynk를 이용하도록 합시다. 저희의 본질은 집 습기 모니터링 + 제거를 위한 스마트홈 구축에 있으니까요.

이렇게 가면 조금 많이 편해집니다.

그 여러 플랫폼들 중에서 하필 Blynk를 고른 이유는 그냥 눈에 띄어서였습니다. 너무 대충 고른 게 아닌가 싶지만 그래도 스마트폰 앱이 굉장히 쉽게 잘 만들어져 있습니다. 일단 여기서 한 번 반했고, 앱이 잘 만들어져 있으니 아두이노 라이브러리는 안봐도 5분이면 해낼 수 있을만큼 간단하게 만들어졌을 게 뻔했습니다. 실제로도 그랬구요. 제가 할 일은 납땜해서 유닛을 만들고, mcu에 해당 라이브러리와 코드를 올리고, 스마트폰으로 센서 값을 받고 에어컨 보일러 껐다 켰다 하면서 행복을 느끼는 것 뿐이라는 생각이 들었습니다. Blynk는 좋은 선택입니다.

센서부 유닛 구성

기본 Unit 구성

유닛은 다음 3가지로 구성합니다. 가장 기본적인 IoT 스위치, Illumination Unit과 온습도 측정을 위해 DHT22모듈을 장착하는 Temp&Humidity Unit, 에어컨을 껐다 켜기 위해 IR 모듈이 추가된 Airconditioner Control Unit.


어떤 부품을 골라야 할까? - MCU

Blynk는 많은 종류의 MCU보드를 지원한다는 점에서 칭찬해주고 싶습니다. 물론 대부분의 MCU가 아두이노 펌웨어 아래에서 돌아가니까 많이 지원하는 것처럼 보이는 것도 있겠지만, 보드들이 제각각의 언어를 사용하더라도 모두 대응하고 있습니다. 통신방식도 Wifi, Zigbee, Bluetooth에 대해 모두 대응합니다. 스마트홈 구성하는 입장에서는 사랑스러워 보이지 않을 수 없습니다. 어쨌든 본론으로 들어가서, Wifi를 통신 방식으로 쓰게 된다면 저희에게 주어진 선택지는 단 하나입니다. 바로 ESP8266이라는 녀석인데, 가성비가 좋습니다. Wifi를 쓰게 해주는 것만으로도 감지덕지인데 가격조차 알리익스프레스에서 개당 1달러 내외에 팔고 있습니다. 

왼쪽에서부터 ESP8266, nodeMCU, ESP8266을 사용한 릴레이

ESP8266은 하나의 모듈로서, 아두이노에 붙이거나 모듈을 따로 프로그래밍해서 릴레이에 바로 붙여서 쓸 수도 있습니다. 저 릴레이도 되게 싼데, 2달러에서 끝낼 수 있습니다. 다시말해서 3달러면(esp8266 + relay) IoT스위치를 만들 수 있다는 소리입니다..! nodeMCU는 ESP8266에 핀을 더 늘려서 아두이노처럼 쓸 수 있게 하는 보드라 보면 되겠습니다. 완전 적절한 비유는 아니지만 대략 아두이노에 빗대어 봤을 때 

Atmega 328P - Arduino Uno
ESP8266 - nodeMCU

의 관계와 유사합니다. 크기를 생각하면 esp8266을 직접 프로그래밍해서 맨 오른쪽처럼 구성하는 것이 가장 효율적이지만, 수월한 진행을 위해 nodeMCU를 사용하기로 합니다.(사실 집에 nodeMCU 3개인가 사다놓고 쓰질 않고 있습니다..) 참고로 nodeMCU는 ESP8266에 비해 2-3배정도 큽니다. 물론 그만큼 GPIO도 많아서 써먹을 데는 더 많습니다. 유닛 구성하는데 그렇게까지 많은 핀들이 필요하지는 않지만요. 이쯤에서 왜 Arduino+ESP8266을 언급하지 않는지 궁금한 사람도 있을 겁니다. 그렇게 구성하는 게 이제 바보같은 짓이 되어버린 이유는, nodeMCU가 이를 충분히 대체할 수 있고, 심지어 가격도 더 싸기 때문입니다. 더 많은 돈을 주고 Arduino + ESP8266 연결부를 납땜하고 싶으시다면 그 조합도 말리진 않겠습니다.

릴레이는 구입할 때 주의해야한다!

500원 더 싼거에 현혹되면 안된다!

스마트홈 가장 기본적인 단위가 되는 릴레이를 구입할 때는 웬만하면 오른쪽 껄로 사기 바랍니다. 가격은 왼쪽 생 릴레이가 더 싸긴 한데 저걸 사게되면 그냥 쓴다 혹은 버린다 둘 중 하나를 선택해야합니다. 그냥 쓰게될 경우 저걸 아두이노에 붙이기 위해 맞는 트랜지스터를 사고 저항도 좀 사고 220v에도 연결해야하니 터미널블럭(오른쪽 기판 구멍 세 개 뚫린거)도 사서 만능기판에 달아야하는데 언제 그걸 하고 있습니까...? 버리고 오른쪽 모듈형으로 나온 걸 사는게 심리적으로나 안정성이나 정신건강에 이롭습니다. 

ETC

IR 모듈과 DHT22는 그냥 파는대로 구입하면 됩니다. 특별한 거 없습니다. 다만 IR의 경우는 집에 굴러다니는 장치에서 꺼내 쓰기로 했는데 이부분이 굉장히 큰 삽질이 될듯 합니다.

Summary

대략 3개의 모듈 구입 및 제작시 20달러 언저리로 sonoff basic wifi 스위치가 6.7달러 하는 걸 생각해보면 굉장히 손해같지만..에어컨 제어와 온습도 측정하는 샤오미 aquara가 13달러하는 걸 생각해보면...아무리 생각해도 diy하는 편이 손해같으니까 가격적인 메리트는 여기서 그만두도록 하겠습니다. 다음 글에서 unit을 만들고 간단하게 구현해보도록 하겠습니다.