본 체험 제품은 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.


 이번에는 퀵스타트가이드의 내용을 기본으로  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


블로그 이미지

김코치 나미쵸

컴퓨터 코치 김코치 컴퓨터 자격증 취득과 아는 힘의 즐거움을 드립니다. 나도 할 수 있다는 자신감은 덤으로 드립니다. 기초부터 실무까지 김코치를 찾아 주세요.


  본 체험 제품은 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.


가이드에 있는 내용을 보기 전에 EasyIot 플랫폼을 이용하여 데이터를 주고 받기 위한 디바이스 연결, 계정 만들기, 블록 코딩하기 및 실제 동작하는걸 영상으로 볼께요.



 영상중에 MQTT라는 단어가 나오는데 MQTT 프로토콜Message Queuing Telemetry Transport의 약자로서, 사물인터넷에서의 응용에 용이한 초경량 통신 프로토콜이에요. 브로커(Broker)라는 서버토픽들로 구성된 정보를 가지고 있어요. 여러 디바이스들이 이런 정보들을 받는 것구독(subscribe)한다 라고 하고, 반대로 이런 정보들을 보내는 것게제(publish)한다 라고 해요. EasyIoT 플랫폼을 예로 들어 볼께요. EasyIotBroker라고 하고 온도 데이터topic이에요. 이 온도라는 topic을 디바이스A, 디바이스B가 구독(subscribe)하고 있는 상황에서 디바이스C가 온도 데이터(28.39)를 게제(publish)하면 구독중인 디바이스A와 디바이스B에게 온도 데이터(28.39)가 전달 되요. 만약에 디바이스A만 구독중이라면 디바이스A에만 전달 되구요. 


 영상속의 내용퀵 가이드의 내용과 같아요. 단지 순서만 바뀌었을뿐! 아마도 영상을 봤다면 쉽게 이해 될거에요.


[OBLOQ 만남]


OBLOQ마이크로비트Wi-Fi 네트웍을 연결할 수 있도록 하는 확장 모듈이에요. 초보자도 연결을 설정 하여, 쉽게 EasyIoT platform을 통하여 데이터를 주고 받을 수 있어요. 몇번의 디바이스 조립&연결과 몇번의 클릭만으로 직접 데이터를 주고 받아보니, 정말 쉽더라구요. EasyIoT  platform은 MQTT 프로토콜을 사용한 서버여서, MQTT 라이브러리를 사용 가능한 프로그램 언어라면 여러가지로 응용이 가능해요. Gravity 마이크로비트 IoT 스타터 키트와 만남만으로 나는 이미  IoT 디벨로퍼(부끄)!!!!!!

[준비]


 Gravity 마이크로비트 IoT 스타터 키트usb포트와 인터넷 연결이 가능한 컴퓨터가 있다면 준비 끝! 옵션으로 외장배터리가 있으면 좋아요.


[EASYIOT 들어가기]

 

 디바이스들이 서로 데이터를 주고 받을려면 데이터를 저장할 곳이 필요해요. 단순하게 http://iot.dfrobot.com계정을 만들고 로그인 한 후, 'workshop' 메뉴에서 'new device' 추가하면 끝. 여기서는 3가지만 기억하면 되요!

lot_id, iot_pwd, topic


[에디터 열기]

 

 마이크로비트 에디터에서 OBLOQ 모듈을 사용하기 위해서는 메뉴 하단에 있는 '고급'에 있는 '패키지 추가'를 클릭하여 'OBLOQ' 검색추가하면 되요. 단 https://makecode.microbit.org/v0 <- v0 버전의 에디터에서 해야 하고, 최신 버전의 에디터에선 'OBLOQ'가 검색 되지 않아요. github 주소를 이용하여 추가 할 수 있으나, 블럭을 작성하고 업로드 하면 Error 030(heap손상)가 나니 이점 꼭 기억해야 해요.


[프로그래밍 시작하기]


네트웍 연결 설정은 아래와 같이 간단하게 설정할 수 있어요.

1 'Obloq' 블록 메뉴에서 'Obloq setup mqtt'블록을 'on start'안에 추가

3. 집에서 사용하는 Wi-Fi  name과 password를 입력

4. EasyIoT에서 생성된 user(lot_id), password(iot_pwd), topic을 입력

5. 'Global' 선택


[EASYIOT에 인사 하기]


 1초마다 'EasyIoT'에 'Hello' 메세지를 보낼려면, 무한반복 블록에 Obloq에 있는 publish 블럭을 추가하고  '일시정지' 블록을 추가하면 되요.  지금은 블록만 작성한 거라서 'EasyIot' 보낸 메세지가 저장된걸 확인 할 수 없지만, 마이크로 비트에 프로그램을 올리고 'Obloq' 모듈이 연결 하면 정상적으로 'Easylot' 저장 되는걸 확인 할 수 있어요.


[올리기]

[연결하기]


[연결 시작하기]


 마이크로비트에 작성한 코드를 올리고, 확장 쉴드에 OBLOQ모듈을 연결하여 마이크로비트에 부착하면 Wi-Fi 네트웍에 연결에 되었는지 EasyIoT에 연결이 되었는지 확인 할 수 있어요. 2번 표시 후에 'X'가 표시 된다면 Wi-Fi 네트워크에 연결이 안된 경우이므로  Wi-Fi name과 password를 다시 한번 확인! 4번 표시 후 'X'가 표시 된다면 lot_id & lot_pass & topic & server를 확인! Wi-Fi와 EasyIot에 정상적으로 연결이 되었다면 EasyIot dash board에서 확인 할 수 있어요.


[온도 데이터 EasyIoT에 게제하기(보내기)]


 첫번째 예제는 온도 데이터 보내기에요. 즉 서버에 온도 데이터가 저장되요.

 Obloq publish 블록에 DS18B20 온도 데이터 블록을 연결 하면되요. 가이드에는 안나왔지만 메이트 확장 쉴드 데이터 0 pin에 방수 온도 센서 데이터 선을 연결해야 해요. 블럭 코딩을 완성하고 마이크로비트에 프로그램을 올리면, 웹 사이트에서 온도 데이터를 확인 할 수 있어요.

[EasyIot를 이용해서 서보 조작하기]


 두번째 예제는 EasyIoT에서 메세지를 보내면(작성)하여 서보를 조작하는 거에요.

 'on topic_0 received' 블럭을 이용하여 마이크로 비트 엘이디와, 서보를 조작해요.


예전엔 결과만 동영상으로 만들었는데, 전체를 영상으로 만들어 보니 처음 접하는 사용자에게 도움이 될거 같다는 생각이 들어요^^(생각보다 시간이 많이 걸림). 그럼 잠시 쉬고 다음에 할 것을 준비해야 겠어요. 


2019/07/18 - [EDU/마이크로비트] - [무상체험 할동]Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit) - 개봉기

2019/07/28 - [EDU/마이크로비트] - [무상체험 할동]Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit) - 퀵가이드 & 사용기

2019/07/29 - [EDU/마이크로비트] - [무상체험 할동]Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit) - 활용기


마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 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


블로그 이미지

김코치 나미쵸

컴퓨터 코치 김코치 컴퓨터 자격증 취득과 아는 힘의 즐거움을 드립니다. 나도 할 수 있다는 자신감은 덤으로 드립니다. 기초부터 실무까지 김코치를 찾아 주세요.


  본 체험 제품은 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.



 오랫만에 icbanq 카페를 둘러보다 마이크로비트WIFI를 연결하여 IoT 서비스를 할 수 있는 제품이 출시 되어 무상체험 이벤트에 참여하게 되었어요. 그럼 Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit)가 어떻게 구성 되어 있는 볼께요.


[정면사진]


 한글이 아닌 영어로 되어 있어요ㅠㅠ. 그래도 'IoT'와 'OBLOQ Wi-Fi Module' 글씨가 제일먼저 보이네요 @.@. 아직까진 MQTT 프로토콜를 이용하여 외부(휴대폰 또는 인터넷)에서 직접 IoT 기기들을 제어해본 적이 없지만, 사용 연령 12+인걸 보니 쉽게 할 수 있겠단 생각이 들었어요. 그럼 케이스를 열어 볼께요! ^^


[열려진 케이스]


 덮개는 디바이스 사진, 이름 그리고 SKU 넘버가 있는 출력물이 있고, 상자안에는 SKU 별로 아래의 사진처럼 잘 포장이 되어 있어요. 예전에 아두이노 디바이스 세트를 중국에서 산 적이 있는데 칸이 나눠진 케이스에 디바이스만(포장X) 있어서 이게 새거인지 중고인지 모르겠더라구요(지저분한 디바이스도 꽤 있었음). 이제품은 개봉하는 맛이 있어 좋았어요^^. 


[잘 포장된 부품들]


[포장에서 벗어난 부품들]


큰 이미지를 보고 싶다면 ->  이미지.pdf



 마이크로비트와 마이크로 서보 이외에 'GRAVITY'이름을 가진 디바이스들은 정말 고급지게 보이는데 요즘 다크모드가 트렌드인지 몰라도 블랙PCB라 더 좋은거 같아요^^. 

 제일 관심이 많았던 Obloq Wi-Fi Module퀵가이드 대로 따라해 봤는데요!. 문제는 있었지만, 너무나도 쉽게 인터넷을 통해서 마이크로 비트에 연결된 디바이스를 제어 할 수 있었어요!. 그럼 Obloq Wi-Fi Module과 Micro:Mate Expansion Board 알아 볼께요.


 Obloq Wi-Fi Module은 아래 표에 있는 특징과 사양을 보면 '표준 MQTT 프로토콜' 지원해요. '표준 MQTT 프로토콜'에 따라 MQTT서버에 메세지만 보내면 되기 때문에 휴대폰 앱이든 일반 PC프로그램 이용하여 IoT 디바이스들을 제어 할 수 있어요. 집에서 와이파이를 통하여 접속이 안된다면 'Encryption type' 및 'Wireless mode' 확인해 보면 될거 같아요.


Obloq Wi-Fi Module 

특징

  • Built-in low-power 32-bit CPU: Can be used as an application processor
  • Built-in protocol: TCP / IP stack
  • Encryption type: WPA WPA2 / WPA2-PSK
  • 무선 애플리케이션에 표준 MQTT 프로토콜 및 TTL 직렬 포트에 대한 연결 지원
  • 사양

  • Operating Voltage: 3.3-5V
  • Supply Voltage: 3.3 ~ 5.5V
  • Baud rate: 9600 bps
  • Wireless Frequency: 2.4GHz
  • Interface Type: Gravity UART 4PIN
  • Wireless mode: IEEE802.11b / g / n
  • SRAM: 160KB
  • External Flash: 4MB
  • Supports low power consumption: <240mA
  • Dimension: 35mm * 32mm / 1.38inch * 1.26inch
  • Weight: 16g
  •  Micro:Mate Expansion Board은 Obloq Wi-Fi Module 및 디바이스들을 마이크로비트에 쉽게 연견해 주는 확장보드에요. 3 웨이 아날로그 입력 및 6-way 디지털 입력 / 출력 (PWM)과 반전된 연결 보호가 눈에 보이네요.


    Micro:Mate Expansion Board

    FEATURES

  • Color coded Gravity 3-Pin interface, compatible with hundreds of plug&play electronic modules
  • 3-way analog input; 6-way digital input/output (PWM); 3V/5V jumper switch; 3.5mm audio jack
  • External Micro USB power port, up to 5V 2A power output.
  • Well-designed component lay-out and silk-screen. Reversed connection protection.
  • SPECIFICATION

  • Interface: 6 x Gravity 3Pin
  • Operating Voltage: 5V/3.3V
  • Input Power: <10W
  • Measuring Range: 0-3.3V (Analog), 0-5V (Digital):
  • Dimension:68.5 * 53.3mm/ 2.7 * 2.1 inches
  • Weight:22.8g
  • * 나머지 디바이스에 대한 특징과 사양은 아래 링크를 이용하면 되요. *


    제품

    Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit) 


    구성품 

    QuickStart Guide

    micro:bit

    Micro:Mate Expansion Board

    Obloq Wi-Fi Module 

    Analog Capacitive Soil Moisture Sensor

    Waterproof DS18B20 Sensor Kit

    Digital PIR (Motion) Sensor

    Digital 5A Relay Module

    Digital Speaker Module

    Analog Sound Sensor For Arduino

    9g Metal Gear Micro Servo


    icbanq에서 개별로 구매 할 수 있는 부품 링크

    구성품


    dfrobot.com에 있는 구성품 정보 링크




     간단하게 'Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit)' 개봉을 해봤어요. 구성품 중에 링크로만 소개한 디바이스들과 Obloq Wi-Fi Module을 이용하면 IoT 서비스를 체험하고 만들기엔 충분하고, 초보자가 IoT에 관한 아이디어를 현실로 쉽게 구현 할 수 있는 제품이라고 생각되네요. 단지 영어때문에 못하는 사람을 위한 한글 퀵가이드가 있으면 좋겠다고 생각해요.


     다음 체험 활동퀵가이드의 내용을 기본으로 MQTT, Broker, Subscribe, Publish, 및 IoT 서비스를 이해해 볼 생각이에요. 그럼 구독 추천 부탁해요~~


    2019/07/18 - [EDU/마이크로비트] - [무상체험 할동]Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit) - 개봉기

    2019/07/28 - [EDU/마이크로비트] - [무상체험 할동]Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit) - 퀵가이드 & 사용기

    2019/07/29 - [EDU/마이크로비트] - [무상체험 할동]Gravity 마이크로비트 IoT 스타터 키트(Gravity IoT Starter Kit for micro:bit) - 활용기



    마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 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




    블로그 이미지

    김코치 나미쵸

    컴퓨터 코치 김코치 컴퓨터 자격증 취득과 아는 힘의 즐거움을 드립니다. 나도 할 수 있다는 자신감은 덤으로 드립니다. 기초부터 실무까지 김코치를 찾아 주세요.


    내일까지(2019.07.02) 이벤트 신청할 수 있어요^^.

    https://www.icbanq.com/shop/event_list.asp?number=422&paging=&b_type=EVENT#eventTop

    블로그 이미지

    김코치 나미쵸

    컴퓨터 코치 김코치 컴퓨터 자격증 취득과 아는 힘의 즐거움을 드립니다. 나도 할 수 있다는 자신감은 덤으로 드립니다. 기초부터 실무까지 김코치를 찾아 주세요.