'IoTMakers'에 해당되는 글 3건

Prototype/IoT Platform

1. WizFi310

image

WizFi310은 Embedded Wi-Fi 모듈로서 기본적인 TCP, UDP통신 이외에도 MQTT 프로토콜을 AT Command로 구현되어 있다.

또한 앞서 살펴보았던 IoTMakers SDK가 구현되어 있어 AT Command 몇 개로 IoTMakers에 접속하거나 데이터 전송, 제어 데이터 수신을 할 수 있다.

이번 포스팅에서는 WizFi310으로 IoTMakers에 접속하고 데이터를 보내는 방법에 대한 내용이며, IoTMakers에서 디바이스를 등록하고 대시보드를 생성하는 방법은 가이드 문서에 자세히 나와 있다.

 

EX)

AT+TKTSET1=<Gateway 연결 ID>,<Device ID>,<Device Password>

AT+TKTCON=2,<IoTMakers IP>,<IoT Makers Port>,0,1111

AT+TKTSEND=<Tag Stream Type>,<Tag Stream ID>,<Value>

 

  • AT+TKTSET1: IoTMakers에 접속하기 위해 필요한 인증 정보들이다.
  • AT+TKTCON: IoTMakers의 IP와 Port 정보를 입력하고, 실제 MQTT접속과 디바이스 인증과정을 수행한다.
  • AT+TKTSEND: 데이터를 전송할 때 사용한다.
    • <Tag Stream Type>: 숫자형은 ‘d’, 문자형은 ‘s’를 입력한다.

image

 

2. 디바이스 구성하기

 

image

 

WizFi310에 구현된 IoTMakers SDK를 활용하기 위한 디바이스를 구성했다.

개발환경은 mbed IDE를 사용했다.

보드는 Nucleo-F401RE보드를 사용했고, 센서로는 CDS 조도센서와 Tact 스위치를 사용했다. 조도 센서의 센싱 데이터를 주기적으로 IoTMakers에 보내고, Tact 스위치를 눌렀을 때 이벤트적으로 알림용 데이터를 보낸다.

 

Nucleo-F401RE보드에 대한 설명은 아래 링크를 참고.

https://developer.mbed.org/platforms/ST-Nucleo-F401RE/

 

image

image

IoTMakers_proto

핀 연결은 위와 같이 했다.

WizFi310과 연결된 UART 핀은 Tx, Rx, cts, rts, reset핀 순이다.

PA_1에는 조도센서, LED에는 PC_7, 사용자 버튼에는 PC_13에 연결했다.

 

 

3. 소스코드 설정

https://developer.mbed.org/users/jehoon/code/KT_IoTMakers_WizFi310_Example/

 

image

  • AP_SSID: 디바이스가 접속할 공유기의 SSID를 입력한다.
  • AP_PASSWORD: 공유기의 PASSWORD를 입력한다.
  • AP_SECURITY: 공유기의 보안 타입을 입력한다.(현재 WPA2로 설정됨)

 

  • IoTMakers_GW_ID: Gateway 연결 ID
  • IoTMakers_DEV_ID: Device ID
  • IoTMakers_DEV_PWD: Device Password

 

  • IoTMakers_MQTT_IP: IoTMakers의 MQTT Broker IP
  • IoTMakers_MQTT_PORT: IoTMakers의 MQTT Broker Port

 

  • DELAY_SEND_TIME_MS: 주기 데이터를 전송할 주기(milliseconds)

 

4. 소스코드 메인 loop

image

메인 loop에서는 AP에 접속, IoTMakers에 접속 하는 과정과  주기적으로 센싱 데이터 전송(Periodic_Event())와 사용자 버튼 이벤트(Button_Push_Event()), 제어 신호를 프린트 하도록 구현되어 있다.

 

5. AP에 접속

image

 

 

6. 데이터 전송

image

주기 데이터(illumination, 숫자형)과 버튼 푸시 데이터(switch, 문자형)

 

7. 제어 데이터 수신

image

제어 데이터를 수신했을 때, IoTMakers의 oneM2M 포맷으로 프린트 한다.

snsnTagCd: Tag Stream ID

strVal: 문자형 제어 신호(ex: on, off)

 

 

8. 대시 보드로 센싱 데이터 표현 및 제어

image

Prototype/IoT Platform

1. 프로토콜 선택

앞서 설명했듯이 IoTMakers에서는 아래와 같은 프로토콜을 지원하고 있다.

개발 환경에 따라서 JAVA를 사용할지, C를 사용할지, 아니면 아두이노를 사용할지 선택해야 한다.

 

 

기본적으로 각각의 SDK는 위와 같은 연동 구조로 되어있으며, 디바이스와 IoTMakers 사이의 접속, 데이터 전송, 제어 등을 위한 API(Application Programming Interface)가 구현되어 있다.

 

이번 포스팅에서는 C SDK의 MQTT프로토콜 가이드 문서를 통해 IoTMakers에 접속하는 방법에 대해 알아볼 것이다.

 

2. IoTMakers MQTT API

IoTMakers에 접속해 데이터를 전송해서는 위에 나타난 정도의 함수들로 처리할 수 있다. (1, 3, 6, 11, 14, 15, 17)

 

1. im_init(): 이 함수에서는 IoTMakers의 IP, Port, Gateway 연결 ID, Device ID, Device Password 등 IoTMakers에 접속하기 위한 기본 설정 과정이다.

3. im_connect(): 위의 IP, Port 정보들로 바탕으로 MQTT 연결을 수행하고, receive 핸들러를 등록한다.

6. im_auth_device(): Gateway 연결 ID, Device ID, Device Password 정보로 인증 요청을 수행한다.

11. im_send_numdata(): 숫자 형태의 데이터를 전송할 때 사용한다. 문자형은 im_send_strdata()를 사용하며, 숫자형와 문자형을 동시에 여러 개 보낼 경우 im_send_complexdata()를 사용한다.

14. dataresp_handler(): (3)에서 등록한 receive 핸들러로 수신된 데이터를 확인할 수 있다.

15. im_disconnect(): mqtt disconnect함수

17. im_release(): 메모리 할당 해제

 

함수에 대한 자세한 사용방법이나 예제 소스코드는 가이드 문서를 참고하세요.

http://iotmakers.olleh.com/openp/assets/files/C_SDK_manual_MQTT_2.2.0.pdf

Prototype/IoT Platform

 

 

1. IoT Makers란..

 

국내 통신사들이 IoT 관련 활발해지면서 각 통신사마다 IoT Platform을 내놓고 있다. 그 중 KT에서는 IoT Makers라는 이름으로 IoT Platform을 개발하고 제공하려 하고 있다.

사이트 주소 :  http://iotmakers.olleh.com/

 

 

 

2. IoT Makers 특징

KT의 IoT Makers의 특징은 아래와 같다.

 

  • IoTMakers에서 현재 사용 가능한 프로토콜은 TCP+oneM2M과 MQTT+oneM2M이다. 사설 프로토콜도 사용 가능하다고 되어있는데, 이 점은 테스트해봐야 할 것 같다..
  • 가상 디바이스 시뮬레이터는 센서 디바이스 없이 어플리케이션을 개발하려고 할 때, 가상의 센싱 데이터를 만들 때 사용한다.
  • 다른 IoT Platform 들과 마찬가지로 대시 보드로 데이터를 모니터링 할 수 있다.
  • 사용해보면서 느낀 KT IoTMakers 만의 특징이라고 한다면 GUI 기반의 이벤트 생성이다. 아래 그림처럼 직관적으로 이벤트를 생성할 수 있다.

 

 

3. IoTMakers에 접속하고 데이터 전송하기

디바이스가 IoTMakers에 접속하고 데이터를 전송하거나, IoTMakers로 부터 제어신호를 수신하기 위한 방법은 아래와 같다.

IoTMakers에서 제공하는 SDK(Software Development Kit)은 위와 같다. JAVA SDK에는 TCP, HTTP, MQTT, CoAP 통신 프로토콜이 포함되어 있다. JAVA SDK는 아무래도 어플리케이션 개발에 사용되기 때문에.. 별로 관심이 없다.

C SDK에는 TCP와 MQTT 프로토콜을 제공하고 있으며, 아두이노 용 SDK도 배포 중이다. 아두이노 용 SDK는 기본적으로 C-TCP와 동일한 TCP+oneM2M 구조로 되어 있으며, 임베디드 용으로 구현되었기 때문에 JSON Library 등 utility의 사이즈를 줄이기 위해 심플하게 구현되어 있는 것이 차이점이다.

 

SDK 들 중 사용자의 환경에 맞는 SDK를 사용하면 아래처럼 IoTMakers에 데이터를 전송하고 제어신호를 수신할 수 있다.

 

1
블로그 이미지

IoT 개발자 블로그이고 싶다.

1byte