SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
수집된 정보의 가공, 처리, 융합
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■시스템 구성 개요 및 관련 도구 설치하기 
– Node.JS, MySQL 소개 및 설치 
■ Open API 소개 및 설계 
–RESTful Web API 의 설계 방법론 실습 
■ Open API 구현 
–온도 센서 on/off, 온도 값 획득 API 구현
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
Security 
Sensing 
•주변 상황 정보획득과 실시간 전달 
Network 
•사물과 인터넷 간의 연결 
Service 
•수집된 정보의 가공, 처리, 융합
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Get the source code: http://goo.gl/V5HJzo 
–Please download the latest 
※ Covers at day 2 
Serial comm. 
Open API
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
Security 
Sensing 
•주변 상황 정보획득과 실시간 전달 
Network 
•사물과 인터넷 간의 연결 
Service 
•수집된 정보의 가공, 처리, 융합
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Web App Development of IoT on Node.JS and MySQL 
Serial comm. 
Open API 
※ Covers at day 2 
※ Covers at day 3
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■IoT requests, responses and human consumes 
IoT 
요청 
IoT 
응답 
요청 
응답 
응답 
요청 
IoT 
IoT 
IoT 
IoT 
IoT 
IoT 
IoT 
IoT 
IoT 
C 
C 
client
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■ Sets of technologies that enable websites to interact with each other by using REST, SOAP, JavaScript and other web technologies. 
–wikipedia (http://en.wikipedia.org/wiki/Open_API) 
■Open API 예
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■For Better Client-side Development 
–http://webofthink.tistory.com/21 
–also acceptable for the server-side development on Node.js
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Asynchronous JavaScript And XML (or JSON) 
function ajaxGet(url:string, scb: Function, ecb: Function) { try { this.url = url; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if (xhr.status === 200) { scb(xhr); } else { ecb(err); } } }; xhr.open('GET', url); xhr.send(); } catch (error) { ecb(error); } }
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Asynchronous JavaScript And XML (or JSON) 
function ajaxPut(url:string, scb: Function, ecb: Function) { 
try { 
this.url = url; 
var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange = function () { 
if (xhr.readyState === 4) { 
if (xhr.status === 200) { scb(xhr); } else { ecb(err); } 
} 
}; xhr.setRequestHeader('Content-Type', 'application/json'); 
xhr.open('PUT', url); 
xhr.send(); 
} catch (error) { ecb(error); } 
}
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
Automatically created by widlproc. widlproc parses the API design document according to W3C Web IDL. This document can be accessible on your site also. See the /openapi.html
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Uses TypeScript 
–Compilable to JS 
•For better & secure programming
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■TODO 
myapi = new OpenAPIManager(); 
myapi.sensors.retrieve(function (sensors) { 
for (var i = 0; i < sensors.length; i++) { 
var sensor = sensors[i]; 
sensor.turnOn(function() { 
logger.i(JSON.stringify(sensor)); 
if (sensor.type == 'thermometer') { 
sensor.getTempList(function (list) { 
console.log(list.length + ' temperatures are retrieved properly.'); 
}); 
} 
}); 
} 
}, function (err) { 
console.log('Unable to retrieve sensors due to ' + err); 
}) 
<!-- in HTML header or body --> <script src="javascripts/api.ts.js"></script>
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Using my own thermometer 
myapi = require('./api.ts.js').myapi; myapi.sensors.retrieve(function (sensors) { for (var i = 0; i < sensors.length; i++) { var sensor = sensors[i]; sensor.turnOn(function() { if (sensor.type == 'thermometer') { sensor.getLatestTemp(function (temp) { console.log(temp.value + ' ' + temp.unitOfMeasure); }); } }); } }, function (err) { console.log('Unable to retrieve sensors due to ' + err); })
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Using nearby thermometers 
finder = require('./api.ts.js').finder; 
finder.findSensors('192.168.11.*', function (list) { 
console.log('The number of sensors is ' + list.length); 
for (var i = 0; i < list.length; i++) { 
var sensor = list[i]; 
sensor.turnOn(function() { 
if (sensor.type == 'thermometer') { 
sensor.getLatestTemp(function (temp) { 
console.log(temp.value + ' ' + temp.unitOfMeasure); 
}); 
} 
}); 
} 
console.log("total sensors: " + finder.nearbySensors.length); 
}, function (err) { 
console.log(err); 
});
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Node.js view engine 
–Refer to http://blog.doortts.com/223 
–Rewriting previous slide:
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■See the code snippet of any site 
–Go to your awesome site 
–Press F12 (개발자 모드) > Sources 
■Get open source code 
–Go to github and find HTML5 code 
•https://github.com/search?utf8=%E2%9C%93&q=html5
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Get code from here: 
–https://github.com/rheh/HTML5-canvas-projects/ 
–Select files in the thermometer folder 
–Copy files to /public 
■Add mode code to show latest temperature
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Google Charts 
–Line chart API document 
•https://google- developers.appspot.com/chart/interactive/docs/gallery/linechart 
■My temperature trends 
–code @ public/javascripts/gchart.js
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Check your IP address of PC 
–windows: ipconfig 
–OS X and linux: ifconfig 
■Open browser and enjoy your service 
–enter http://{your IP address}:3000/
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
Security 
Sensing 
•주변 상황 정보획득과 실시간 전달 
Network 
•사물과 인터넷 간의 연결 
Service 
•수집된 정보의 가공, 처리, 융합
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■온라인 회고 설문 
–http://goo.gl/forms/mt2CdQuqxI 
PLUS 
+ 
MINUS 
- 
INTERSTING 
I
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■DIoTY Enhancements 
–duino module: http://webofthink.tistory.com/32 
–MongoDB: http://www.mongodb.org/ 
–Service discovery: http://www.w3.org/TR/discovery-api/ 
–Security 
•Authentication: https://github.com/ciaranj/node-oauth 
•HTTPS: http://nodejs.org/api/https.html
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■Multi-platform application development 
–Apache Cordova: http://cordova.apache.org/ 
■Cloud 
–IBM bluemix: http://www-01.ibm.com/software/bluemix/ 
–MS Azure: http://azure.microsoft.com/ko-kr/
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■W3C Web IDL 
–http://www.w3.org/TR/WebIDL/ 
■widlproc 
–https://github.com/dontcallmedom/widlproc 
■REST to JavaScript for Better Client-side Development 
–http://ws- rest.org/2014/sites/default/files/wsrest2014_submission_ 5.pdf
IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 
■TypeScript 
–http://www.typescriptlang.org/ 
■Jade 
–http://jade-lang.com/ 
■ Google Charts 
–https://developers.google.com/chart/

Contenu connexe

Tendances

Node.js
Node.jsNode.js
Node.jsymtech
 
Grafana Review
Grafana ReviewGrafana Review
Grafana ReviewSangmo Goo
 
사물인터넷 노트7_사물인터넷과 영상처리
사물인터넷 노트7_사물인터넷과 영상처리사물인터넷 노트7_사물인터넷과 영상처리
사물인터넷 노트7_사물인터넷과 영상처리Dong Hwa Jeong
 
Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)창언 정
 
LUA를 이용한 스마트한 웹서버 만들기 (Ray. Lee)
LUA를 이용한 스마트한 웹서버 만들기 (Ray. Lee)LUA를 이용한 스마트한 웹서버 만들기 (Ray. Lee)
LUA를 이용한 스마트한 웹서버 만들기 (Ray. Lee)삵 (sarc.io)
 
Naver 오픈api-마이그레이션가이드 20160913-리뷰
Naver 오픈api-마이그레이션가이드 20160913-리뷰Naver 오픈api-마이그레이션가이드 20160913-리뷰
Naver 오픈api-마이그레이션가이드 20160913-리뷰NAVER D2
 
Vert.x
Vert.x Vert.x
Vert.x ymtech
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 

Tendances (10)

Node.js
Node.jsNode.js
Node.js
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
Grafana Review
Grafana ReviewGrafana Review
Grafana Review
 
사물인터넷 노트7_사물인터넷과 영상처리
사물인터넷 노트7_사물인터넷과 영상처리사물인터넷 노트7_사물인터넷과 영상처리
사물인터넷 노트7_사물인터넷과 영상처리
 
Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)
 
LUA를 이용한 스마트한 웹서버 만들기 (Ray. Lee)
LUA를 이용한 스마트한 웹서버 만들기 (Ray. Lee)LUA를 이용한 스마트한 웹서버 만들기 (Ray. Lee)
LUA를 이용한 스마트한 웹서버 만들기 (Ray. Lee)
 
Naver 오픈api-마이그레이션가이드 20160913-리뷰
Naver 오픈api-마이그레이션가이드 20160913-리뷰Naver 오픈api-마이그레이션가이드 20160913-리뷰
Naver 오픈api-마이그레이션가이드 20160913-리뷰
 
Vert.x
Vert.x Vert.x
Vert.x
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 

Similaire à IoT Web App - 수집된 정보의 가공, 처리, 융합

Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataTed Won
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영NAVER D2
 
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Jemin Huh
 
[경북] I'mcloud information
[경북] I'mcloud information[경북] I'mcloud information
[경북] I'mcloud informationstartupkorea
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처Sunggon Song
 
PHP Log Tracking with ELK & Filebeat part#2
PHP Log Tracking with ELK & Filebeat part#2PHP Log Tracking with ELK & Filebeat part#2
PHP Log Tracking with ELK & Filebeat part#2Juwon Kim
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
 
다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기정윤 김
 
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)Channy Yun
 
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...Amazon Web Services Korea
 
ksqlDB로 시작하는 스트림 프로세싱
ksqlDB로 시작하는 스트림 프로세싱ksqlDB로 시작하는 스트림 프로세싱
ksqlDB로 시작하는 스트림 프로세싱confluent
 
Google hack fair 발표 20121117
Google hack fair 발표   20121117Google hack fair 발표   20121117
Google hack fair 발표 20121117영호 라
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
정보보호통합플랫폼 기술 트렌드
정보보호통합플랫폼 기술 트렌드정보보호통합플랫폼 기술 트렌드
정보보호통합플랫폼 기술 트렌드Logpresso
 
REST API Development with Spring
REST API Development with SpringREST API Development with Spring
REST API Development with SpringKeesun Baik
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912Yooseok Choi
 

Similaire à IoT Web App - 수집된 정보의 가공, 처리, 융합 (20)

Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured Data
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
 
[경북] I'mcloud information
[경북] I'mcloud information[경북] I'mcloud information
[경북] I'mcloud information
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
PHP Log Tracking with ELK & Filebeat part#2
PHP Log Tracking with ELK & Filebeat part#2PHP Log Tracking with ELK & Filebeat part#2
PHP Log Tracking with ELK & Filebeat part#2
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 
다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기다음 통합검색 로딩 속도 개선 삽질기
다음 통합검색 로딩 속도 개선 삽질기
 
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
글로벌 지도 API 서비스 현황과 미래 - 한국지리정보학회 (2014)
 
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
스마트 팩토리: AWS 사물인터넷과 인공지능을 활용한 스마트 팩토리 구축 – 최영준 AWS 솔루션즈 아키텍트, 정현아 AWS 솔루션즈 아키...
 
4-2. ajax
4-2. ajax4-2. ajax
4-2. ajax
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
ksqlDB로 시작하는 스트림 프로세싱
ksqlDB로 시작하는 스트림 프로세싱ksqlDB로 시작하는 스트림 프로세싱
ksqlDB로 시작하는 스트림 프로세싱
 
Google hack fair 발표 20121117
Google hack fair 발표   20121117Google hack fair 발표   20121117
Google hack fair 발표 20121117
 
Html5 performance
Html5 performanceHtml5 performance
Html5 performance
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
정보보호통합플랫폼 기술 트렌드
정보보호통합플랫폼 기술 트렌드정보보호통합플랫폼 기술 트렌드
정보보호통합플랫폼 기술 트렌드
 
REST API Development with Spring
REST API Development with SpringREST API Development with Spring
REST API Development with Spring
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
 

Plus de Hyunghun Cho

2018 소프트웨어에 물들다 - 기계는 어떻게 생각할까?
2018 소프트웨어에 물들다 - 기계는 어떻게 생각할까?2018 소프트웨어에 물들다 - 기계는 어떻게 생각할까?
2018 소프트웨어에 물들다 - 기계는 어떻게 생각할까?Hyunghun Cho
 
Somul 2017 소프트웨어, 사람과 사물의 소통을 향하여
Somul 2017 소프트웨어, 사람과 사물의 소통을 향하여Somul 2017 소프트웨어, 사람과 사물의 소통을 향하여
Somul 2017 소프트웨어, 사람과 사물의 소통을 향하여Hyunghun Cho
 
Tensorflow internal
Tensorflow internalTensorflow internal
Tensorflow internalHyunghun Cho
 
IoT, 기술의 혁신과 미래 그리고 통찰
IoT, 기술의 혁신과 미래 그리고 통찰IoT, 기술의 혁신과 미래 그리고 통찰
IoT, 기술의 혁신과 미래 그리고 통찰Hyunghun Cho
 
GameTube app-swing-introduction
GameTube app-swing-introductionGameTube app-swing-introduction
GameTube app-swing-introductionHyunghun Cho
 
Home sensor prototype on Arduino & Raspberry Pi with Node.JS
Home sensor prototype on Arduino & Raspberry Pi with Node.JSHome sensor prototype on Arduino & Raspberry Pi with Node.JS
Home sensor prototype on Arduino & Raspberry Pi with Node.JSHyunghun Cho
 
REST to JavaScript for Better Client-side Development
REST to JavaScript for Better Client-side DevelopmentREST to JavaScript for Better Client-side Development
REST to JavaScript for Better Client-side DevelopmentHyunghun Cho
 

Plus de Hyunghun Cho (7)

2018 소프트웨어에 물들다 - 기계는 어떻게 생각할까?
2018 소프트웨어에 물들다 - 기계는 어떻게 생각할까?2018 소프트웨어에 물들다 - 기계는 어떻게 생각할까?
2018 소프트웨어에 물들다 - 기계는 어떻게 생각할까?
 
Somul 2017 소프트웨어, 사람과 사물의 소통을 향하여
Somul 2017 소프트웨어, 사람과 사물의 소통을 향하여Somul 2017 소프트웨어, 사람과 사물의 소통을 향하여
Somul 2017 소프트웨어, 사람과 사물의 소통을 향하여
 
Tensorflow internal
Tensorflow internalTensorflow internal
Tensorflow internal
 
IoT, 기술의 혁신과 미래 그리고 통찰
IoT, 기술의 혁신과 미래 그리고 통찰IoT, 기술의 혁신과 미래 그리고 통찰
IoT, 기술의 혁신과 미래 그리고 통찰
 
GameTube app-swing-introduction
GameTube app-swing-introductionGameTube app-swing-introduction
GameTube app-swing-introduction
 
Home sensor prototype on Arduino & Raspberry Pi with Node.JS
Home sensor prototype on Arduino & Raspberry Pi with Node.JSHome sensor prototype on Arduino & Raspberry Pi with Node.JS
Home sensor prototype on Arduino & Raspberry Pi with Node.JS
 
REST to JavaScript for Better Client-side Development
REST to JavaScript for Better Client-side DevelopmentREST to JavaScript for Better Client-side Development
REST to JavaScript for Better Client-side Development
 

IoT Web App - 수집된 정보의 가공, 처리, 융합

  • 2.
  • 3. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■시스템 구성 개요 및 관련 도구 설치하기 – Node.JS, MySQL 소개 및 설치 ■ Open API 소개 및 설계 –RESTful Web API 의 설계 방법론 실습 ■ Open API 구현 –온도 센서 on/off, 온도 값 획득 API 구현
  • 4. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 Security Sensing •주변 상황 정보획득과 실시간 전달 Network •사물과 인터넷 간의 연결 Service •수집된 정보의 가공, 처리, 융합
  • 5. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Get the source code: http://goo.gl/V5HJzo –Please download the latest ※ Covers at day 2 Serial comm. Open API
  • 6. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 Security Sensing •주변 상황 정보획득과 실시간 전달 Network •사물과 인터넷 간의 연결 Service •수집된 정보의 가공, 처리, 융합
  • 7. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Web App Development of IoT on Node.JS and MySQL Serial comm. Open API ※ Covers at day 2 ※ Covers at day 3
  • 8. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■IoT requests, responses and human consumes IoT 요청 IoT 응답 요청 응답 응답 요청 IoT IoT IoT IoT IoT IoT IoT IoT IoT C C client
  • 9. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■ Sets of technologies that enable websites to interact with each other by using REST, SOAP, JavaScript and other web technologies. –wikipedia (http://en.wikipedia.org/wiki/Open_API) ■Open API 예
  • 10. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■For Better Client-side Development –http://webofthink.tistory.com/21 –also acceptable for the server-side development on Node.js
  • 11. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Asynchronous JavaScript And XML (or JSON) function ajaxGet(url:string, scb: Function, ecb: Function) { try { this.url = url; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if (xhr.status === 200) { scb(xhr); } else { ecb(err); } } }; xhr.open('GET', url); xhr.send(); } catch (error) { ecb(error); } }
  • 12. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Asynchronous JavaScript And XML (or JSON) function ajaxPut(url:string, scb: Function, ecb: Function) { try { this.url = url; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if (xhr.status === 200) { scb(xhr); } else { ecb(err); } } }; xhr.setRequestHeader('Content-Type', 'application/json'); xhr.open('PUT', url); xhr.send(); } catch (error) { ecb(error); } }
  • 13. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합
  • 14. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 Automatically created by widlproc. widlproc parses the API design document according to W3C Web IDL. This document can be accessible on your site also. See the /openapi.html
  • 15. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Uses TypeScript –Compilable to JS •For better & secure programming
  • 16. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■TODO myapi = new OpenAPIManager(); myapi.sensors.retrieve(function (sensors) { for (var i = 0; i < sensors.length; i++) { var sensor = sensors[i]; sensor.turnOn(function() { logger.i(JSON.stringify(sensor)); if (sensor.type == 'thermometer') { sensor.getTempList(function (list) { console.log(list.length + ' temperatures are retrieved properly.'); }); } }); } }, function (err) { console.log('Unable to retrieve sensors due to ' + err); }) <!-- in HTML header or body --> <script src="javascripts/api.ts.js"></script>
  • 17. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Using my own thermometer myapi = require('./api.ts.js').myapi; myapi.sensors.retrieve(function (sensors) { for (var i = 0; i < sensors.length; i++) { var sensor = sensors[i]; sensor.turnOn(function() { if (sensor.type == 'thermometer') { sensor.getLatestTemp(function (temp) { console.log(temp.value + ' ' + temp.unitOfMeasure); }); } }); } }, function (err) { console.log('Unable to retrieve sensors due to ' + err); })
  • 18. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Using nearby thermometers finder = require('./api.ts.js').finder; finder.findSensors('192.168.11.*', function (list) { console.log('The number of sensors is ' + list.length); for (var i = 0; i < list.length; i++) { var sensor = list[i]; sensor.turnOn(function() { if (sensor.type == 'thermometer') { sensor.getLatestTemp(function (temp) { console.log(temp.value + ' ' + temp.unitOfMeasure); }); } }); } console.log("total sensors: " + finder.nearbySensors.length); }, function (err) { console.log(err); });
  • 19.
  • 20. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합
  • 21. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Node.js view engine –Refer to http://blog.doortts.com/223 –Rewriting previous slide:
  • 22. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■See the code snippet of any site –Go to your awesome site –Press F12 (개발자 모드) > Sources ■Get open source code –Go to github and find HTML5 code •https://github.com/search?utf8=%E2%9C%93&q=html5
  • 23. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Get code from here: –https://github.com/rheh/HTML5-canvas-projects/ –Select files in the thermometer folder –Copy files to /public ■Add mode code to show latest temperature
  • 24. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Google Charts –Line chart API document •https://google- developers.appspot.com/chart/interactive/docs/gallery/linechart ■My temperature trends –code @ public/javascripts/gchart.js
  • 25. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Check your IP address of PC –windows: ipconfig –OS X and linux: ifconfig ■Open browser and enjoy your service –enter http://{your IP address}:3000/
  • 26. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 Security Sensing •주변 상황 정보획득과 실시간 전달 Network •사물과 인터넷 간의 연결 Service •수집된 정보의 가공, 처리, 융합
  • 27. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■온라인 회고 설문 –http://goo.gl/forms/mt2CdQuqxI PLUS + MINUS - INTERSTING I
  • 28. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■DIoTY Enhancements –duino module: http://webofthink.tistory.com/32 –MongoDB: http://www.mongodb.org/ –Service discovery: http://www.w3.org/TR/discovery-api/ –Security •Authentication: https://github.com/ciaranj/node-oauth •HTTPS: http://nodejs.org/api/https.html
  • 29. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■Multi-platform application development –Apache Cordova: http://cordova.apache.org/ ■Cloud –IBM bluemix: http://www-01.ibm.com/software/bluemix/ –MS Azure: http://azure.microsoft.com/ko-kr/
  • 30. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■W3C Web IDL –http://www.w3.org/TR/WebIDL/ ■widlproc –https://github.com/dontcallmedom/widlproc ■REST to JavaScript for Better Client-side Development –http://ws- rest.org/2014/sites/default/files/wsrest2014_submission_ 5.pdf
  • 31. IoT Web App Dev. – 수집된 정보의 가공, 처리, 융합 ■TypeScript –http://www.typescriptlang.org/ ■Jade –http://jade-lang.com/ ■ Google Charts –https://developers.google.com/chart/