본 체험 제품은 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다. |
이번에는 퀵스타트가이드의 내용을 기본으로 IoT를 확장해 볼께요. 큰 특징은 OBLOQ 모듈이 연결된 마이크로비트에서 데이터의 흐름을 제어해요. 그래서 제어하고 싶은 만큼 마이크로비트를 추가하여 사용할 수 있어요. 쉽게 말해서 샤오미 홈킷에 보면 게이트웨이라고 보면 되요^^. 간단하게 흉내를 내는 정도라 생각하면 좋을 거 같아요.
[IoT 확장 구성]
간단한게 정리하면 아래와 같아요.
1. 일정 온도에 따라 릴레이에 연결된 제품을 'ON/OFF' 제어 할 수 있다.
2. 움직임이 감지되면 서보 제어를 할 수 있다.
3. 관련 제어는 파이언 언어로 프로그램을 만들어 사용한다. (옵션으로 안드로이드 앱으로 프로그램 만듬)
4. 메인 마이크로비트와 서브마이크로비트의 통신은 라디오 통신을 사용한다.
전부다 기능 구현을 다 못하더라도 이번 글에서는 각각의 마이크로비트에 연결된 릴레이와 서보 동작은 빼고 나머지 부분을 할 생각이에요.
먼저 EasyIot 토픽 설정부터 할께요.
[EasyIot topic 설정]
방수 온도 센서를 위한 온도 topic과 동작센서를 위한 동작 topic! 그리고 디바이스 제어를 위한 제어 topic 3개를 만들어요.
[메인 마이크로비트 블록 코딩]
메인에서 해야할 기능은 서브 마이크로비트에서 라이오 통신으로 보내진 온도와 동작 데이터를 각각에 topic에 게제(publish)하면 되요. 예를 들어 서브 마이크로비트에서 'TE:30.10' 데이터를 받으면 '온도' topic에 '30.10' 보내면 되고. 마찬가지로 데이터가 'MO:1' 라면 '동작' topic에 '1'을 보내면 되요. 또 다른 기능은 '제어' 메세지를 받으면 각각에 서브 마이크로비트에 보내면 되는데, 메인에서는 각각의 서브마이크로비트에 따로 보내는것이 아니라 각각의 서브마이크로비트에서 자기가 필요한 메세지를 확인해서 동작하기 때문에 메인에서는 간단하게 작성이 가능해요.
* topic_0 & topic_1은 publish topic, topic_2는 subscribe
[서브 마이크로비트 블록 코딩 : 방수온도센서]
방수 온도 센서가 연결된 마이크로비트 블록 코딩이에요. '무한반복 실행' 블록에는 10초 단위로 온도 데이터를 보내면 되고, 메인에서 라디오로 보내진 데이터를 수신하면 즉, '온도 제어 데이터'가 오면 처리하면 되요. ':' 문자를 기준으로 앞쪽은 타입이고 뒤쪽은 값이에요, 값에 따라 마이크로비트에 연결된 디바이스를 동작하면 되요.
[서브 마이크로비트 블록 코딩 : 동작 센서]
동작 감지 센서 제어 부분과 데이터 타입('MO')만 다를뿐 나머지는 위에 있는 블록 코딩과 같아요.
[파이썬 코드]
아직 파이썬 GUI프로그래밍 관련 지식이 없어서 간단하게 텍스트로 확인 할 수 있는 코드에요. 왼쪽은 전체 topic을 구독(subscribe)하는 코드이고, 오른쪽 코드는 제어 topic에 거제(publish)하는 코드에요.
'Gravity 마이크로비트 IoT 스타터 키트'에 마이크로비트 몇개를 추가 하고, 간단한 파이썬 코드를 이용하여 IoT를 확장해 봤어요. 시간 나는 대로 Microsoft Azure IoT와 안드로이드 앱도 만들어볼 생각이에요^^.
동작 영상으로 마무리해요.!
마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 https://www.icbanq.com/
아이씨뱅큐 공식 카페 : https://cafe.naver.com/icbanq
아이씨뱅큐 공식 블로그 : https://blog.naver.com/icbanq
마이크로비트 공식 카페 : https://cafe.naver.com/bbcmicro
나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ |