레이블이 IoT인 게시물을 표시합니다. 모든 게시물 표시
레이블이 IoT인 게시물을 표시합니다. 모든 게시물 표시

9/28/2016

Cloud (수정 중, 관련자료 필요)

1.  Cloud의 기본개념 

인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고 그때 그때 컴퓨터나 휴대폰 등에 불러와서 사용하는 웹에 기반한 소프트웨어 서비스이다

현재 우리는 많은 Cloud 서비스를 사용하고 있으며, 이를 기반으로 단순한 데이타 저장만이 아닌,
다양한 웹기반 API Service를 제공하고 있다.
이 API에는 Machine Learning 뿐만 아니라, 음성인식등 다양하게 지원을 해주며, 점점세부화 되고 있다.


1.1 Public Cloud와 Private Cloud 

Public Cloud는 일반적인 Cloud Service 업체를 말하며, API 역시 공개하여, 자유롭게
데이타 저장 및 API를 이용가능하지만, Private Cloud는 이와 다르다.


1.2  Cloud Service 의 종류 

Cloud Service의 종류는 관리를 어디까지 하는가에 따라, 종류가 달라진다.


  • IaaS(Infrastructure as a Service)
서비스로써의 인프라라는 뜻으로, AWS에서 제공하는 EC2가 대표적인 예이다. 이는 단순히 서버 등의 자원을 제공해 주면서 사용자가 디바이스에 제약없이 데이터에 접근할 수 있도록 해준다.


  • PaaS(Platform as a Service)
서비스로써의 플랫폼이라는 뜻으로, 사용자(개발자)가 소프트웨어 개발을 할 수 있는 환경을 제공해 준다. 구글의 APP 엔진, Heroku 등이 대표적인 예다.


  • SaaS(Software as a Service)
서비스로써의 소프트웨어라는 뜻으로, 네이버에서 제공하는 N드라이브, drop box, google docs 등 과 같은 것을 말한다..

아래 Wiki에 너무 잘 설명이 되어 있다.
  https://ko.wikipedia.org/wiki/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C_%EC%BB%B4%ED%93%A8%ED%8C%85

출처 https://blogs.msdn.microsoft.com/eva/?p=1383 


왼쪽 좌측 처럼 본인이 Server를 운영하면서, Virtual box or VMware를 설치하고,
저장장치부분부터 OS 및 Middleware와 Application 을 모든 것을 다하면 좋겠지만,
힘들것이다, 그래서 본인이 관리하는 부분에따라 IaaS, Paas, SaaS 로 나누어진다.

SaaS로 Google Cloud Service를 보면, 관련 API와 관리역시 다 해주기에, 사용자가 입장에서는 API를 사용하면 된다.

PaaS, IaaS 필요할 경우도 있을 것이다. 왜냐하면 본인이 원하는 Serivce가 있지만, Vendor가 이를 지원하지 못한다면,
이는 불행한 일이며, 어쩔수 없이 공동개발을 진행을 해야 할 것 같다.


Microsoft의 Azure 관련 Cloud Serivce 설명
  https://blogs.msdn.microsoft.com/eva/?p=1383


2.  Cloud Platform 

둘다 Opensource 이며, Server에 설치가 가능하다, 본인도 아직 설치를 해보지는 못했다,
OpenStack인 경우는 너무 유명해서, Virtual Box와 함께 같이 설치하는 방법도 쉽게 나와있다.

Platform은 크게 두가지로 구분이 되는 것 같으며, 다양한 기업에서 이를 기반으로 서비스를 하고 있다.

  • CloudStack 
기본구조는 IaaS형태로 Apach와 함께 구성이 되며, Amazone 에서 AWS로 이용이 된다고 한다. 

  • OpenStack 
기본구조는 IaaS 형태로 Apach와 함깨 구성이 되며, AMD, Brocade, Dell, HP, IBM, VMware, and Yahoo, Redhat 다양한 업체에서 서비스 한다고 한다.

  • Virtualization : Vmware 를 이용하여, 컴퓨터를 시뮬레이터를 하는 기능 
  • Hypervisor : Vmware or Virtuabox에서 사용하는 가상 CPU를 말한다. Linux KVM를 지원한다.

2.2 OpenStack 설치 및 관련자료


  http://openstack.or.kr

9/07/2016

IoT Information 관련자료수집

1. IoT의 기본개념 

한국에서는 사물 인터넷이라고 부르며, IoT( Internet of Thing) 이다,
개별 Device에 센서를 부착하고 , 인터넷과 연동하여 쉽게 이 Device와 센서를 제어하는 것이 기본 목적이다.

   https://ko.wikipedia.org/wiki/%EC%82%AC%EB%AC%BC_%EC%9D%B8%ED%84%B0%EB%84%B7


1.1 IoT의 기본구조 

IoT 쪽의 장비인 이 System은 무선으로 연결되는 Device와 Sensor가 핵심이며,
Server는 Cloud로 운영되는 서비스를 이용하여 이곳과 연결하여, 모바일이나 PC와 쉽게 제어가 가능하게하는 게
기본 목적이며,  핵심기능이다.

더불어, 이 Cloud에서는 이 Sensor에서 들어온 정보들을 바탕으로 이를 저장하고, 분석하고,
Cloud 기반으로 된 곳에서 다양한 API를 제공받아 Service를 구현을 하는 것이다.

현재 Cloud Service를 해주는 Global 회사들은 많으며, 이를 이용하여 효율적이고, 다양한 장비를
만드는 것이다.


1.2 IoT 현재 흐름

초반의 IoT는 LTE ,WiFi or Bluetooth 기반으로 통신하여 했지만, 통신업체들이 참가하면서,
WiFi가 아닌 다른 무선방식의 Service를 제공하여 그 영역을 확장해나가고 있으며

IoT에서 무선방식의 선택도 중요한 부분으로 자리잡아가고 있다.


출처: https://en.wikipedia.org/wiki/Internet_of_things


  https://en.wikipedia.org/wiki/Internet_of_things


2. IoT General Service Providers

IoT 를 기본적으로 Service 를 해주는 업체들이며, Apple도 한다고 하는데 그 부분은 추후
봐야겠다.

2.1 Google

다양한 API를 제공을 하고 있으며, 사이트를 가봐도 쉽게 사용이 가능할 것 같다.
다만, 통신방식이 HTTP2까지 지원을 한다고 하며,

A. 통신방식 
 
   gRPC
   http://www.grpc.io/

   HTTP2/HTTP1/HTTPS

B. How To install Cloud SDK

   https://cloud.google.com/sdk/downloads?hl=ko


C. Cloud 서비스

아래 사이트가면 Google에서 제공해주는 Service들을 확인가능하다.
기회가 되면 본인도 해보고 싶지만, 아직 이 시장이 대기업 위주로 편중되어 있는 것 같다.

   https://cloud.google.com/products/?hl=ko

2.2 Samsung Service (artik)

삼성의 Cloud 서비스이며 , 역시 핵심은 Cloud Service이며 SDK 제공 여부이다.

   https://www.artik.io/

2.3 Amazon Service

아마존은 SDK 제공을 한다고 하니,

   https://aws.amazon.com/ko/iot/


3. IoT Telecom Service Proviers


아래와 같이 근접 무선통신과 원거리 무선통신이면서, low power를 사용하는 기술이 존재하며,
이를 SKT와 KT, LG에서 서비스를 시작하고 있다.

출처: https://www.opensensors.io/connectivity

Telecom 회사들의 IoT Service는 약간 다르지만, 기본서비스는 거의 비슷하고 동일할 것 같다.
하지만, 무선 Protocol System이 LTE-M or Lora 사용을 하며, 그 기능은 아래와 같다.
이 기반으로 자신들의 모듈을 제공을 하며, 저전력 MPU(Micom) or MPU(Micom)에 연결하여
동작하며, 저전력 MPU와 센서를 함께 사용할 경우, 아직 배터리 사용은 정확히 예측이 힘들다.

Lora인 경우는 Data 전송률은 적지만, 반경이 상당히 넓을 뿐만 아니라, Power 소비가 적어 이를 강점으로
내세우며 Cloud와 함께 Service 할 예정이다.








출처:
   http://www.netmanias.com/ko/post/blog/8691/iot-kt-lte-lte-m-nb-iot/kt-s-the-world-first-nationwide-lte-m-network-and-iot-strategy


3.1 SKT

Lora 기반으로 IoT Cloud Serivce를 진행을 한다고 하며, OPEN 상태로 진행을 하며,
업체당 무료로 Sample 하나식 Lora 모듈을 지급을 해주고 있다.
   https://lora.sktiot.com/main/index.do


SKT에서 현재 서비스를 진행하고 있는 내용
   https://lora.sktiot.com/introduction/technology/main.do
   http://theplot.kr/40068


3.2 KT

원래는 SIGFOX였으나, 이부분이 실패되고, LTE-M으로 변경이 되었으며,
Cloud 서비스 역시 반오프상태로 한다고 한다.
   http://gigaiot.olleh.com/bcc/#/home


4. IoT의 상용화


4.1 LG U+ Smart Home Service

   http://www.uplus.co.kr/ent/iot/IotInfo.hpi?mid=6786

4.2 KT IoT 상용서비스 

   https://product.olleh.com/wDic/productDetail.do?ItemCode=1072

4.3 Smart Farm

   http://www.smartfarmkorea.net/itis/main.do


5. IoT 관련 센서 

   http://smartiot.tistory.com/38
   http://www.sensor-insight.com/

   https://securityin.wordpress.com/2014/10/27/2-iot-%ED%95%B5%EC%8B%AC-%EC%9A%94%EC%86%8C-%EC%A0%95%EB%A6%AC-sensorsdevice/

관련기사
   http://www.ddaily.co.kr/news/article.html?no=140940

6/07/2016

STM32F103x and ESP8266

1. STM32F10x

IOT에 관련된 개인일이 있어 잠시 STM과 ESP8266 조합으로 사용하여 Interface를 UART를 이용하여 IOT Device를 만든적이 있는데,
너무 쉽고 다양한 기능을 제공하여 간단히만 소개한다.
사실 MCU는 본인이 직접 선택하여 다른 것을 사용되며, MCU라서 금방배우고, 익힐 수 있기 때문에 구지 ST사 것을 사용할 필요 없다.
더 싼 Device가 있다면 그것으로 사용하면 그뿐이다.
ESP8266은 WIFI Module(AP/STA/AP+STA) 기능 및 다양한 기능을 제공하고 있어 많은 개발하기 편한 걸로 기억한다.

2. ESP8266

UART(Serial Interface)로 손쉽게 Wifi 기능은 물론 (STA와 AP) 선택도 쉽게 선택가능하며,
다양한 Server들을 자체 제공을 해주고 있어 HTTP,DHCP,FTP Server 같은 것들을 기본으로 제공하고 있어 IOT 개발에 있어서 편하게 사용되었다.
다만, Parser의 크기가 상당히 좀 큰 거 같아, Internet을 검색해보면 다 수정을 해서 사용한 것  같다.

내가 이것을 개발했을 때문만 해도 인터넷에 자료가 많이 없었는데, 최근들어 풍부하게 자료들이 많이 늘어 더욱 쉽게 개발이 가능할 것 같다.
자세히 더 다루고 싶지만, 현재 관련 IOT보드를 지인에게 돌려주었기 때문에 현재 기억나는부분과 관련사이트를 Link만 한다.

  https://en.wikipedia.org/wiki/ESP8266
  http://www.hardcopyworld.com/ngine/aduino/index.php/archives/1257

2.1 ESP8266 AT Commands Parser

  http://esp8266at.com/index.html#sect_requirements

    A. How to upgrade to latest firmware

  http://bbs.espressif.com/viewtopic.php?f=16&t=1613

    B. Flash Download Tool

  http://bbs.espressif.com/viewtopic.php?f=57&t=433

2.2 ESP8266 API Function 

  http://esp8266at.com/group___e_s_p8266___a_p_i.html
  http://esp8266at.com/group___e_s_p8266___functions.html

  http://www.espressif.com/en/support/download/sdks-demos?keys=&field_type_tid%5B%5D=14

5/26/2016

Javascript 과 AJAX 와 차트(Chart) 관련 자료

1. HTTP의 기본개념  

HTTP는 기본적으로 Client가 Methods기반의 TEXT를 Server에게 보내면 Server가 해당하는 일을 처리하고 Server 상태정보와 함께 관련된 값을 전송을 해주는 것이다.

예를들면 Client가 GET or POST로 Server에게 보내면 200 OK 함께 통신의 성공여부와 함께 관련 데이타를 보내주는 것이다.

  https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
  https://ko.wikipedia.org/wiki/HTTP

HTTP Protocol을 이해하면, SIP/RTSP등 IETF에서 만든 Protocol을 기본적으로 쉽게 이해하며, Protocol 구조가 TEXT기반으로 거의 유사하다

1.1 AJAX의 기본개념 

AJAX (Asynchronous JavaScript and XML)의 약어로 Client와  Server 양쪽에서 사용되어지는 Web 기술이다.

기존은 HTTP 1.1 기준으로 Web browser에서 HTTP를 이용하여 Client가 Server에게 Request (Get or Post)보내면 이에 해당하는 응답(200 OK) 함께 해당 HTML 을 제공해주는 방식이었다.
(물론 HTML과 CSS , Javascript 이 전부포함하여 전체 Web Page, 즉 HTML를 제공해준다)

하지만 기존의 HTTP에는 근본적인 문제가 있다. Client가 Server로부터 주기적으로 관련 Data를 받고자 한다면,  Web Server 부하가 심해진다.
왜냐하면, Web의 통신주체는 항상 Client이며, 관련된 Data 및 Web Page의 변경을 원한다면 Client가 요구가 있을 경우 변경되는 것이  HTTP Protocol의 문제이다.

이런 문제를 조금이나마 극복하고자 나온 기술이 AJAX이며 그 기술은 다음과 같다.
전체 Web Page를 Refresh or Update를 하는 것이 아니라 부분적으로 가능한 것이다.
이는 기존의 Web에서 Client가 값을 얻고 저장하는 방식이 GET/POST 방식을 넘어 다른 매개체를 이용하여 Web Server에게 통신을 하는 것이다.

1.2 기존 Web 모델과 AJAX Engine 모델 비교 

아래의 두 개의 Web Server 모델을 간단히 비교 분석을 해보자

좌측은 기존에 사용되었던 Web Server와 Client모델이며, 항상 Client가 요구시에만 Web Page의 반응을 하는 구조를 가지고 있다.

우측은 AJAX Engine지원이되는 모델이며 이는 Browser(Client)와 Web Server가 동시에 지원이 가능해야한다.
우선 기존모델에는 Web Server을 지원을 하며, 이와 더불어 AJAX Engine이라고 하는 것이 별도로 존재한다.
이는 기본의 Client와 Server 통신을 확장되어 Javascript에 의해 JSON, XML, HTML으로 Data를 Server에 전송하고 응답이 가능하다.

아래의 링크에도 자세한 설명이 포함이 되어있다.
https://en.wikipedia.org/wiki/Ajax_(programming)

아래의 그림을 보고 확장된 기능을 정확히 알아보자. Client는 Server의 상태를 매번 정확히 알고 싶을 경우가 있을 것이다.
이때 기존의 경우는 매번 HTTP를 Request를 해서 값을 얻어 전체 Web Page를 매번 가져와야한다.
하지만, AJAX를 이용한다고 하면, Client는 Javascript을 이용하여 주기적으로 해당값들을 Refresh가 가능하다. 이는 시스템의 부하의 영향이 달라진다.

이 과정을 살펴보면, Client는  Web Server로 전송하는 Request Data를  JSON/XML/HTML로 전송하여, 특정 HTML을 Refresh를 해주면 된다.
(Javascript의 value값을 Refresh가 가능하고, HTML의 값이 가능하다는 소리이다.)


http://stackoverflow.com/questions/11028122/how-update-panel-do-partial-postback-and-server-side-function-is-invoked-and-con

  • AJAX 관련 자료 (일반적인 개념 및 관련자료)
  https://developer.mozilla.org/ko/docs/AJAX/Getting_Started
  https://taegon.kim/archives/206


1.2 AJAX 통신 DATA 매개체 

Web Client는 Web Server로 부터 Data를 얻고 설정하기 위해서는 별도의 통신 매개체를 필요하며, 이는 Client와 Server가 서로 호환이 되어야한다.

현재 알고 있는 방식으로는 Web Client는 XML/JSON/HTML 방식으로 DATA를 요구하고 Web Server를 이해 해당하는 함수를 호출하여 Data값을 전송을 한다.

쉽게 예를 들면, Javascript의 특정변수 값을 주기적으로 받고자 하면, XML로 이를 넣어 Server에게 보내며, Server는 이에 관련된 Refresh하는 것이다.
많이 XML을 이용하여 Server의 원하는 Data를 얻겠지만  JSON이라는 것을 이용하여 얻는다고고 한다.

  https://www.w3schools.com/xml/ajax_intro.asp

A. JSON(JavaScript Object Notation)의 개념 

  http://www.json.org/json-ko.html
  https://ko.wikipedia.org/wiki/JSON

B. AJAX에서 JSON을 이용하여 Data 가져오기 

  http://code.jquery.com/
  http://et-day.tistory.com/entry/Javascript-ajax-%EB%A1%9C-JSON-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

C. JQUERY-JSON GET, POST

  http://api.jquery.com/jquery.getjson/
  https://api.jquery.com/jquery.post/





1.3 AJAX의 사용법 

이 에 대해 좀 더 자세히 알고 싶다면, XmlHttpRequest 관련하여 검색을 해보거나, AJAX로 검색을 해보면 자세한 설명이 잘 나올 것이다.
많은 사람들이 JQUERY Library를 이용하여 사용하는 것 같으며 이와 관련부분을 알아보자.
상위 사이트에서 알아보자

아래의 그림을 설명과 Client와 Server를 보고 참고만 하자
  https://en.wikipedia.org/wiki/DWR_(Java)


 좌측의 메뉴 AJAX HOME부터 차례대로 예제를 실행 TEST가 가능
  http://www.w3schools.com/ajax/default.asp
  http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp


2. AJAX 적용소스 (Chart관련부분)

아래의 Chart 소스는 AJAX를 적용했던 Chart 소스였으며, 이전에 이를 이용하여 Active-X와 연결하여 사용했던 일이 있다.
아래의 소스가 너무 좋은 예제이어서 지금도 기억을 하고 있다.

  http://www.flotcharts.org/
  http://www.flotcharts.org/flot/examples/realtime/index.html

이외에도 구글에서도 다양한 Chart를 제공을 한다.

2.1 기타 Javascript Chart 소스 및 참고 소스 

  • SVG와 VML관련 자료 및 Chart 
  SVG를 이용하여 Chart or 간단한 그림을 만드는 법을 소개하고 있다.
  http://mobicon.tistory.com/311


  • Google AJAX 
  http://www.htmldrive.net/items/show/1291/-CSS3-and-jQuery-Interactive-Graph
  https://developers.google.com/speed/libraries/#jquery


  • Web Design 및 관련 Interface 참고 사이트 
  http://blog.outsider.ne.kr/422
  http://iyfnzgb.com/?pid=9PO1H9V71&dn=webdesigneraid.com



  • Node.js 와 AJAX 차이 

  https://stackoverflow.com/questions/12089982/difference-between-ajax-and-node-js


  • Node.js

  https://www.w3schools.com/nodejs/default.asp


3. ESP8266 AJAX

ESP8266는 WIFI관련 제어모듈이며, (AP/STA 제어가 가능) 이곳에 HTTP Server도 지원이 가능하다 물론 모듈형태로 제공이되어 Firmware Upgrade로 가능하다

아래예제들을 보며 느낀 것이 최근나온 모델은 별도의 많은 연산이 필요 없다면 MCU 조차 필요가 없을 것 같다.

이에 관련응용은 참으로 신기할 뿐이며,  AJAX 및 Web socket이라는 것을 처음알게된 사이트이며, 정말 감사할 뿐이다.

  http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_esp&wr_id=39
  http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_esp&wr_id=41

  • ESP8266 관련 Firmware Source
 https://github.com/godstale/ESP8266_Sming_Examples/tree/master/Examples/HttpServer_AJAX
 https://github.com/godstale/ESP8266_Sming_Examples/tree/master/Examples/HttpServer_WebSockets