'IOT'에 해당되는 글 12건

IoT/News
WIZnet MakerSpace Newsletter
IoT/News

LoRa를 이용해 IoT 제품을 개발하시려는 분들에게 무료 강의를 진행합니다.


SKT에서 서비스하는 LoRa 기술과 ThingPlug에 대한 강의 입니다.


아래 링크에서 강의를 신청하실 수 있습니다.

http://wiznetacademy.com/index.php?module=lecture&act=dispCourseInfo&course_seq=3178


LoRa 강의는 아래 SKT LoRa Potal 을 통해 강의 신청을 받기로 했습니다.

https://lora.sktiot.com/openhouse/main.do




이 외에도 '아두이노'와 'mbed' 기초 강의도 진행하고 있으며, 응용 강의로 '스마트팩토리', facebook으로 디바이스를 제어하는 'Javis' 강의도 준비되어 있습니다.



IoT/News



컨테스트 참가하기: http://wiznetian.com/


IoT 디바이스를 활용한 컨테스트 정보입니다. 여러분의 아이디어를 마음껏 발휘해 보세요!




참가하시면, 아래의 보드를 활용해 아이디어를 구현하시면 됩니다.


1. WizArduino: 아두이노 제로(M0+)와 이더넷 실드를 하나의 보드로 사용하실 수 있습니다.

2. WizArduino WiFi: 아두이노 메가와 WiFi 실드(WizFi310)가 하나의 보드에 구현되어 있습니다.

3. Security Shield: SSL/TLS를 지원하는 이더넷 실드입니다. 사용하시려면 별도의 MCU(아두이노)가 필요합니다.





IoT Open House/LoRa

 

LoRa의 Class, 서비스 형태에 따라 선택해야 한다.

LoRa 디바이스로 구성된 LoRa network에서 LoRa 디바이스는 통신을 위해 3가지 클래스로 동작한다.

이 클래스는 Down-Link 할 수 있는 타이밍에 따라 구분된다. LoRa 디바이스는 LoRa Gateway에 Join 하면서 사용할 클래스에 대한 정보를 Gateway와 공유하게 된다. 그리고 LoRa 디바이스의 클래스에 따라서 디바이스에게 데이터를 보내는 타이밍을 정한다.


Class를 선택하기 위해서는 LoRa 서비스의 형태와 LoRa 디바이스에 상시전원을 공급할 수 있는지 여부로 판단할 수 있다.

서비스의 형태는 LoRa 디바이스가 Up-Link 위주의 서비스인지, Down-Link도 포함하는지 여부이다.



A Class

LoRa 디바이스와 LoRa 게이트웨이 사이의 A Class 통신은, LoRa 디바이스가 게이트웨이에게 Up-Link 전송을 수행한 이후에 두 번에 걸쳐 Down-Link 수신할 수 있다.

LoRa 디바이스는 Tx를 하기 전에는 Tx와 Rx를 꺼두었다가 Tx 이후 정해진 시간에 잠깐 Rx 신호를 감지한다.


A Class를 사용하면 Rx를 수신하기 위해서 Tx를 사용해야 한다. 그렇기 때문에 Tx 위주의 서비스나, 상시전원을 사용하지 않고 배터리로 운영하는 경우에 사용한다.


아래 그림에서 (노란색)은 LoRa 디바이스가 Rx 할 수 있는 상태이다. Tx 1회당 2번의 Rx를 할 수 있는데, 첫 번째 Rx 타이밍에 수신한 데이터가 없을 때 두 번째 Rx를 시도 한다.



B Class

A Class가 Up-Link(Tx) 위부의 Class라면 B Class는 Down-Link(Rx)를 고려하고, A Class에 비해 낮은 지연시간의 Class 이다.

B Class는 일정 시간 간격마다 Rx를 수신할 수 있는 상태(노란색)가 되고, 해당 타이밍에 LoRa Gateway로 부터 데이터를 수신할 수 있다.


B Class는 A Class와 달리 Rx 위주의 서비스와, 배터리로 운영하는 경우 고려할 수 있다.

주로 A와 C를 사용한다.






C Class

C Class는 Rx 가능 상태를 유지하기 때문에 타 Class에 비해 최소 지연시간을 갖지만, 가장 많은 전력을 소비한다. 그래서 C Class를 사용하기 위해서는 충분한 전력이 공급되는 상황에서 고려해야 한다.


항상 Rx 가능 상태이기 때문


에 LoRa를 이용한 스마트 플러그, 원격 제어등 액츄에이터 구현에 적합한 Class이다.


Rx1, Rx2, Tx 등등 LoRa 기술 상 이슈로 아래 이미지에서는 노란색 중간중간 비워두었다.




IoT/WiFi

SKT ThingPlug 더 쉽게 시작하기 강의록입니다.


ThingPlug Device로는 Nucleo F411RE와 WizFi310(Embedded WiFi module)을 사용했습니다.


Application은 Python으로 작성한 대시보드를 사용했습니다.



ThingPlug 뿐만 아니라, Arduino, mbed, Embedded WiFi 관련 강의가 준비되어 있습니다.

http://wiznetacademy.com/



(강의록 로딩이 조금 오래 걸립니다.)


IoT Open House/ThingPlug


https://developers.sktelecom.com


강의 신청은 skt developer 사이트를 거쳐서 하셔도 되고, 아래 사이트에서 하셔도 됩니다.

http://wiznetacademy.com/


아래 강의에 대한 간략한 설명은 아래 글을 확인해 주세요.

http://1byte.tistory.com/15







IoT Open House/ThingPlug


안녕하세요


저는 위즈네트에서 WiFi 모듈 개발을 담당하고 있고, 'WiFi 모듈 사용 기초 방법'과 SK telecom의 IoT 플랫폼인 'ThingPlug를 쉽게 사용하는 방법'에 대해서 오프라인 강의를 하고 있습니다.

ThingPlug 강의는 무료입니다. 하지만 다른 강의들은 일반인 2만원, 학생 1만원을 받는다고 합니다. 


http://wiznetacademy.com/?module=lecture&act=dispCourseInfo&course_seq=175


Wireless(Embedded WiFi)의 커리큘럼은 3강의로 구성되어 있습니다.

기초, 중급, 고급의 구분은 딱히 없지만, 초급 중급 고급 순서대로 수강하시면 이해하시기 빠를것 같습니다.


강의의 내용은 아래와 같이 진행됩니다. 저는 초급과 고급 강의를 진행하고 있기 때문에 두 강의를 우선 소개해드리겠습니다.



1. WizFi310으로 Embedded Wi-Fi 시작하기


해당 강의는 WizFi310(embedded WiFi 모듈)을 사용하는 방법과 기본적인 예제들로 구성되어 있습니다.

이 강의를 수강하시면, 기본적인 TCP/IP 통신과 MQTT의 기초까지 알 수 있습니다.

아래에 해당하시는 분이라면 수강 가능합니다.(초보자 대상)

    • TCP/IP를 들어봤다.
    • 서버와 클라이언트를 안다.
    • 스마트폰으로 WiFi를 사용할 수 있다.
    • 키보드가 잘 눌리는 노트북이 있다.


2. ThingPlug 더 쉽게 시작하기


이 강의는 SKT의 IoT 플랫폼인 'ThingPlug'를 쉽게 사용하는 방법에 대해서 알려드립니다. 해당 강의는 (중급) 강의에서 진행된 MCU(Cortex M3)로 WizFi310을 제어해서 SKT ThingPlug를 사용하는 강의입니다.

이 강의는 '세계 최초로 oneM2M 표준을 적용한 IoT 플랫폼인 'ThingPlug''의 구조와 사용방법, 그리고 더 쉽게 사용하는 방법까지 모두 '무료'로 알려드립니다.


이 강의의 수강 대상자는 아래와 같습니다.

    • 1번 WiFi 기초 강의 수강자 - 필수는 아니지만 WizFi310을 사용해서 강의가 진행되기 때문에 선행되었으면 좋겠습니다.

    • MCU에 대한 기본적인 이해가 필요하지만, C 언어의 if, for, while을 아신다면 수강하실 수 있습니다. - 부족하시다면 중급 강의도 수강해주세요.

    • oneM2M, ThingPlug를 들어봤다.




이 외에도 아두이노, ARM mbed 관련 강의도 있으니 관심있으신 분은 아래 링크를 통해 신청해주세요.


http://wiznetacademy.com/








Prototype/IoT Platform

 

 

아래 게시글의 ThingPlug 대시보드는 Local PC에 node.js 서버를 구동해서 만든 대시보드였다.

http://1byte.tistory.com/10

 

그렇기 때문에 외부에서 접근하기 위해서는 port forwading 등 서버 port에 접속하기 위한 별도의 작업이 필요하고, Local PC에서 서버를 구동하고 있는 동안에만 접속할 수 있다.

 

따라서, 위 문제점등을 해결하기 위해서 외부에서 호스팅 해주는 방법이 필요해 보였다.

 

구글링 결과, Heroku라는 클라우드 플랫폼을 선택했다. Heroku는 테스트 용도로 적합해 보이며, 꽤 쉽게 어플리케이션을 호스팅 할 수 있었다.

 

 

1. ThingPlug Starter Kit 소스코드 다운로드

 

https://github.com/SKT-ThingPlug/thingplug-lora-starter-kit

 

우선 ThingPlug Lora Starter Kit을 다운 받았다. Starter kit의 사용 방법은 PC에 starter kit 소스코드와 node.js를 다운로드 받고, config_x.js 파일에 테스트할 node id, user key, container 등등 ThingPlug web Application에서 필요한 정보들과,  디바이스 시뮬레이터를 실행 시키기 위한 config 내용들이 모두 포함되어 있다.

그렇기 때문에 config_x.js 에 node id, user key, container등의 정보가 정상적으로 저장되어 있어야만 최신 데이터 조회, 디바이스 제어 등을 수행할 수 있다.

 

2. ThingPlug Starter Kit 소스코드 수정

 

제공하는 StarterKit도 쓸만하지만, 여러 사용자들이 Config 파일과 상관 없이 접근 가능한 대시보드를 만드는 것이 목표였기 때문에,, 조금 StarterKit의 소스코드를 조금 수정했다.

 

      

왼쪽의 서버 소스코드를 오른쪽 처럼 Node ID, User Key, Container Name 을 직접 입력 받도록 수정했다.

이 과정에서 필요 없는 부분인 google 지도와 Event trigger를 없앴다.

https://github.com/wpgnss/ThingPlug_starter_kit_for_academy

 

 

3. Heroku 사용하기

Heroku에서 어플리케이션을 배포하기 위한 방법은 3가지를 지원한다.

Heroku CLI를 다운로드 받아서 Heroku Git에 소스코드를 업로드 하는 방법과 GitHub나 Dropbox에 소스코드를 업로드 후 연결하는 방법이 있다.

 

Heroku CLI를 사용하는 방법은 구글링에도 많이 나오기 때문에, 머리아픈 CLI 없이 GitHub와 연동하는 방법으로 해보기로 했다.

 

4. Heroku 사용하기 – Procfile

 

Heroku를 사용하기 위해서 자신의 ThingPlug StarterKit repository에 꼭 필요한 파일이 있다. Procfile이라는 파일이다. 해당 파일을 생성 후 commit & push 해주자.

이 파일은 처음 실행되어야 할 web app의 이름을 정의하는 파일이다.

 

ThingPlug Starter Kit의 메인 js 파일은 application_web.js이니까 아래처럼 작성해 준다.

 

web: node application_web.js

 

 

5. Heroku 사용하기 – Create New App

https://dashboard.heroku.com

Heroku에 가입 후 dashboard 사이트에 접속하게 되면 오른쪽 상단에서 New->Create new app을 선택한다.

 

Create App을 선택한다.

 

GitHub를 선택한다. (이미 GitHub와 연동되었기 때문에 아래처럼 나오지만 처음이라면 GitHub에 권한을 요청하는 팝업이 뜬다.)

 

Search를 클릭한 후 원하는 Repository에 Connect를 누른다.

 

Enable Automatic Deploys 를 누른다.

 

정상적으로 진행했다면, Overview 탭에서 Dyno formation 에서 web node application_web.js    ON 으로 변하면서 서버가 정상 동작하게 된다.

만약 Dyno formation이 바뀌지 않는다면, Manual deploys로 해보자.

 

 

Open app을 누르면 동작 중인 서버에 접속할 수 있다.

 

이렇게…

 

 

사이트 주소 뒤에 /dashboard 를 입력하면 SKT ThingPlug 대시보드가 정상적으로 동작하는 것을 확인할 수 있다.

https://boiling-everglades-36951.herokuapp.com/dashboard/

Prototype/IoT Platform

  ThingPlug 대시보드  


Node-Red 대시보드

Node.js 대시보드








해당 ThingPlug 대시보드는 SKT의 ThingPlug-LoRa-Staterkit을 수정하여 만들어졌습니다. 

(https://github.com/SKT-ThingPlug/thingplug-lora-starter-kit)






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

1 2
블로그 이미지

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

1byte