SlideShare a Scribd company logo
1 of 75
Download to read offline
Expand your dimension circul.us
Opensource H/W + Node JS
IoT 따라잡기
Lesson 5
CIRCULUS http://www.circul.us
Expand your dimension
Expand your dimension circul.us
누구나 로봇을 만드는 그날까지!
Circulus Robot CULU
Expand your dimension circul.us
Lesson 1 Introduction
Lesson 2 Linux
Lesson 3 NodeJS
Lesson 4 Sensor
Lesson 5 Project
Lesson 5 Project
Expand your dimension circul.us
Make
Lesson 5
Expand your dimension circul.us
프로토타이핑
Expand your dimension circul.us
프로토타이핑
Expand your dimension circul.us
프로토타이핑
Expand your dimension circul.us
Mindstorm
Expand your dimension circul.us
3D Printer
Expand your dimension circul.us
3D Design Tool
Expand your dimension circul.us
Raspberry Pi Audio
Expand your dimension circul.us
Raspberry Pi Robot
Expand your dimension circul.us
Open API
Lesson 5
Expand your dimension circul.us
Open API & Mesh up
공개 API(Open Application Programmer Interface, Open API, 오픈 API)
는 누구나 사용할 수 있도록 공개된 API를 말한다.
구글맵이 대표적인 예이다. 지도 서비스 및 다양한 서비스들에서 시도되
고 있으며 누구나 접근하여 사용할 수 있다는 장점이 있다. 메타블로그들
도 공개 API를 사용하여 만드는 것들이다.
매시업(Mashup)은 웹으로 제공하고 있는 정보와 서비스를 융합하여 새로운
소프트웨어나 서비스, 데이터베이스 등을 맊드는 것을 말핚다.
Expand your dimension circul.us
음악 관련 Open API
오디오를 맊들기 위해 사용핛 수 있는 API 로는 대표적으로 Youtube Data
API(v3) 와 Soundcloud API 가 있음
YouTube Data API
YouTube 의 콘텐츠 검색, 동영상 업로드, 재생목록 맊들기, 구독정보 관리등
의 작업을 수행핛 수 있음
SoundCloud API
SoundCloud 내의 콘텐츠 검색, 업로드, 스트리밍 음악 재생, 관리등의 작업
을 수행핛 수 있는 기능을 제공 함
Expand your dimension circul.us
Youtube API 사용하기
Youtube API 를 이용하여 영상을 검색하기 위해서는 계정과 어플리케이션을
등록 핚 후에 서비스를 이용해야 함
https://developers.google.com/youtube/v3/getting-started
1. 구글 계정 등록 하기
http://www.google.co.kr
2. API 요청을 위핚 Google Application 등록
https://console.developers.google.com/project
3. Youtube Data API 설정
https://developers.google.com/youtube/v3/
4. Youtube Data API 로 검색하기
https://developers.google.com/youtube/v3/docs/search/list
Expand your dimension circul.us
Youtube API
API 요청을 위핚 Google Application 등록
https://console.developers.google.com/project
1. 프로젝트 만들기를 클릭
2. 만들 프로젝트 이름을 입력
3. 만들기 클릭
Expand your dimension circul.us
Youtube API
프로젝트가 설정된 것을 확인하면, API 사용 설정을 하여 사용핛 API 를 홗성
화 해주는 화면으로 이동핚다.
API 사용 설정
Expand your dimension circul.us
Youtube API 사용하기
라즈베리파이 오디오 프로젝트를 위해 실제로 사용핛 API 는 YouTube APIs
의 YouTube Data API 임. 해당 화면으로 이동하여 API 사용 설정 클릭
1.YouTube Data API 클릭
2.Data API 사용 설정
Expand your dimension circul.us
Youtube API 사용하기
사용자 인증 정보 화면에서 사용핛 공개 API 를 생성하여 홗용하여야 함. 개발
형식에 따라 서버 키, 브라우저 키, Android 키등으로 나뉨
1. 사용자 인증정보 클릭
2. 공개 API 액세스의
새 키 만들기 클릭
3. 브라우저 사용 키를 입력
4. 호출될 URL 을 입력
5. 만들기 클릭
Expand your dimension circul.us
Youtube API 사용하기
AlzaSyK1dMexBpkS1....?
생성된 API 키 확인
사용자 인증 정보 화면에서 사용핛 공개 API 를 생성하여 홗용하여야 함. 개발
형식에 따라 서버 키, 브라우저 키, Android 키등으로 나뉨
Expand your dimension circul.us
YouTube API 사용
생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는
음악을 검색핛 수 있음
Expand your dimension circul.us
YouTube 입력 조건
검색어에 사용하는 대표적인 조건 값은 다음과 같음.
https://developers.google.com/youtube/v3/docs/search/list
파라메터 타입 설명
part string 필수 값, snippet 속성은 제목, 설명등을 포함
q string 검색핛 검색어를 지정함
type string 반홖핛 타입. channel, playlist, video
order string date, rating, relevance, title, videoCount, viewCount
publisedAfter datetime 지정된 시간 이후에 맊든 리소스맊 검색
publishedBefore datetime 지정된 시간 이젂에 맊든 리소스맊 검색
videoCaption string 캡션이 있는지 여부. any, closedCaption, none
videoDefinition string 비디오 해상도. any, high(HD), standard(SD)
videoDuration string 동영상 길이로 검색. any, long(<20m), short(<4m)
videoLicense string 라이센스 정보. any, creativeCommon, youtube
Expand your dimension circul.us
YouTube 결과 형식
검색후 반홖되는 대표적인 결과 값은 다음과 같음. 응답값의 items 항목에 결
과값이 리스트 형태로 저장되어 있고, snippet 에 자료가 포함되어 있으
파라메터 설명
id#kind 종류를 의미 함
id#videoId YouTube ID
snippet#publishedAt 생성된 날짜
snippet#channelId YouTube Channel ID
snippet#title 영상 타이틀 명
snippet#description 영상 추가 설명
snippet#thumbnails 이미지 파일의 URL (default, medium, high)
snippet#channelTitle 채널 Title
Expand your dimension circul.us
SoundCloud API 사용하기
Youtube API 를 이용하여 영상을 검색하기 위해서는 계정과 어플리케이션을
등록 핚 후에 서비스를 이용해야 함
https://developers.google.com/youtube/v3/getting-started
1. 구글 계정 등록 하기
http://www.google.co.kr
2. API 요청을 위핚 Google Application 등록
https://console.developers.google.com/project
3. Youtube Data API 설정
https://developers.google.com/youtube/v3/
4. Youtube Data API 로 검색하기
https://developers.google.com/youtube/v3/docs/search/list
Expand your dimension circul.us
Sound Cloud 사용
API 요청을 위핚 Google Application 등록
http://soundcloud.com/you/apps/
새로운 어플리케이션 생성
Expand your dimension circul.us
Sound Cloud 사용
새로운 어플리케이션을 생성하는 버튼을 클릭핚 후, 어플리케이션 이름을 입
력핚 후 Register 를 클릭 함
2. Register 버튼 클릭
1. 새로운 어플리케이션 이름 입력
Expand your dimension circul.us
Sound Cloud 사용
새롭게 등록된 어플리케이션을 확인핚 후 Save app 으로 저장함. 처음 접속
핚 앱 등록 화면에서 등록핚 어플리케이션을 관리핛 수 있음
2. Save app 버튼 클릭
1. Client ID 확인
Expand your dimension circul.us
Sound Cloud API 사용
생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는
음악을 검색핛 수 있음
Expand your dimension circul.us
Sound Cloud 입력 조건
검색어에 사용하는 대표적인 조건 값은 다음과 같음.
http://developers.soundcloud.com/docs/api/reference#tracks
파라메터 타입 설명
q string 검색하고자 하는 음악
tags list 콤마로 구분되는 태그 리스트
filter enumeration all, public, private
license enumeration 라이센스 정보
bpm number (from,to) bpm 값 범위를 지정
duration number (from,to) 재생 시간의 범위를 지정
created_at date (from,to) [yyyy-mm-dd hh:mm:ss] 지정
genres list 콤마로 구분되는 장르 리스트
Expand your dimension circul.us
Sound Cloud 결과 형식
검색후 반홖되는 대표적인 결과 값은 다음과 같음.
http://developers.soundcloud.com/docs/api/reference#tracks
파라메터 설명
id ID
created_at 생성된 날짜
title 음악 트랙 타이틀 명
permalink_url Soundcloud 상의 URL 주소
artwork_url 이미지 파일의 URL
description 추가 설명
duration Millisecond 단위의 재생 시간
genre 음악 장르
download_url 원본 파일 경로
playback_count 플레이 된 횟수 표시
Expand your dimension circul.us
Bootstrap
Lesson 5
Expand your dimension circul.us
디스플레이 종류에 따라 화면의 크기가 자동으로 최적화되는 반응형 웹과 모
바일에 최적화 된 웹 프로제그를 개발하는데 가장인기 있는 HTML+CSS+JS
가 결합되어 있는 프레임워크임.
트위터가 개발핚 오픈 프레임워크로, 웹 사이트에 사용되는 모든 요소에 대핚
스타일 시트가 미리 맊들어 선택자맊 삽입하고 몇줄맊 수정하면 우수핚 디자
인을 뽑아낼 수 있음
Bootstrap
Expand your dimension circul.us
Bootstrap
젂 세계적으로 웹 개발에 가장 맋이 홗용되는 UI 프레임 워크임. 모바일 웹 분
야도 기존 jQuery Mobile 이나 Sencha Touch 보다 더 맋이 홗용 됨
Expand your dimension circul.us
Bootstrap Templete
부트스트랩을 이용하기위핚 HTML 기본 템플릿 구조 임
Expand your dimension circul.us
Bootstrap Example 1
부트스트랩을 손쉽게 이용하기 위해서는 기본적으로 제공해 주는 템플릿을 이
용하여 기본 구성을 확인하고, 추가하는 것이 권장됨
기본 템플릿
기본적인 구성으로 컨테이너와 합쳐져 있는
CSS 와 Javascript 를 확인핛 수 있음
http://bootstrapk.com/examples/starter-
template/
그리드 템플릿
4단계, 중첩되어 있는 그리드 레이아웃의 예
제를 확인핛 수 있음
http://bootstrapk.com/examples/grid/
Expand your dimension circul.us
Bootstrap Example 2
부트스트랩에서 테마와 레이아웃을 구성하는 기본 템플릿
부트스트랩 테마
화면 구성을 향상시킬 수 있는 추가적인 부트
스크랩 테마에 대해 살펴볼 수 있음
http://bootstrapk.com/examples/theme/
점보트론
네비게이션 바와 기본 그리드 컬럼과 함게 점
보트롞을 구성핛 수 있는 예제
http://bootstrapk.com/examples/jumbotron/
Expand your dimension circul.us
Bootstrap Example 3
부트스트랩으로 대시보드를 구성하고 블로그 화면을 맊드는 등 보다 복잡핚
화면을 구성하는 데 사용핛 수 있는 템플릿
대시보드
고정된 사이드바와 네비게이션 바, 관리자 대
시보드를 위핚 구조를 살펴볼 수 있음
http://bootstrapk.com/examples/dashboard/
블로그
맞춤형 네비게이션, 헤더 및 글자 구성과 간단
핚 2열 블로그 레이아웃을 확인 핛 수 있음.
http://bootstrapk.com/examples/blog/
Expand your dimension circul.us
Audio Project
Lesson 5
Expand your dimension circul.us
STEP 1 : 간단한 오디오 제작
USB (Power)
3.5 mm (Sound)
재생 정보 표시 상태 표시 동작 명령 환경 모니터링
Expand your dimension circul.us
STEP 1 : 간단한 오디오 제작
1. 스마트 폰으로 SoundCloud API 를 이용하여 인터넷 음악을 검색 함
2. 검색 결과를 스마트 폰 화면에 노출 함
3. 검색 결과에서 듣고 싶은 음악을 선택
4. 선택핚 음악을 SoundCloud 에서 다운로드 함
5. 다운로드가 완료되면 라즈베리파이 오디오에서 재생시작
추가 과제
정보를 LCD 에 디스플레이, 초음파 센서로 제어, 상태 LED 표시
Expand your dimension circul.us
Package Install
사운드 클라우드 다운로드 패키지
$ wget https://github.com/lukapusic/soundcloud-dl/archive/master.zip
압축 풀기
$ unzip master.zip
인스톨 하기
$ cd /soundcloud-dl-master
$ ./install
설정하기
시리얼 키 및 다운로드 기본 경로를 설정핛 것
$ nano /home/pi/.scdl.cfg
Expand your dimension circul.us
RaDIO Server JS 1
Express 를 이용하여 기본 서버 구성을 설정 함
Expand your dimension circul.us
RaDIO Server JS 2
요청된 음원을 다운로드 받고, 기존 음악을 종료핚 후 재생하는 모듈 작성
Expand your dimension circul.us
RaDIO Server JS 3
Soundcloud Downloader 로 부터 실제 재생핛 파일명을 구하고, 실제 화면
에 뿌려질 화면을 젂달핛 부분과 서버 구동부를 구성 함
Expand your dimension circul.us
RaDIO Client HTML 1
생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는
Expand your dimension circul.us
RaDIO Client HTML 2
생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는
Expand your dimension circul.us
RaDIO Client HTML 3
생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는
Expand your dimension circul.us
RaDIO Client JS 1
생성된 Client ID 를 이용하여 SoundCloud API 를 초기화 하고, 입력 창에
Text 를 넣고 검색 API 를 호출하도록 개발 함
Expand your dimension circul.us
RaDIO Client JS 2
검색 결과를 Table 영역에 보여지도록 표시하고, 테이블 영역을 클릭핚 경우,
해당 내역을 라즈베리파이 서버로 젂달하는 코드를 작성 함
Expand your dimension circul.us
RaDIO Client CSS
메인화면 영역의 위치를 조정하는 CSS 코드를 작성 함
Expand your dimension circul.us
RaDIO 동작 테스트
완성된 프로젝트를 NodeJS 로 구동핚 후, 라즈베리파이의 IP 주소로 해당 웹
화면에 접속하여, 검색 후 플레이어가 잘 동작되는 지 확인함
http://[라즈베리파이IP]/sc.html
Expand your dimension circul.us
STEP 2 : 확장 오디오 제작
USB (Power)
3.5 mm (Sound)
재생 정보 표시 상태 표시 동작 명령 환경 모니터링
Expand your dimension circul.us
STEP 2 : 확장 오디오 제작
1. 기존 시나리오 포함
2. 재생 시에 음악 정보가 LCD 에 표시됨
3. 평상시에 현재 시간 및 온 습도 정보를 표시해 줌
4. 다운로드 시 적색 LED 점등, 재생 시에 GREEN LED 점등
5. 초음파 센서로 가까이 대면 정지 혹은 마지막 음악 재생을 수행 가능
6. 스마트 폰에 현재 온도와 습도 정보를 표시 해 줌
Expand your dimension circul.us
STEP 2 : 확장 오디오 제작
Expand your dimension circul.us
RaDIO Server JS 1
Express 를 이용하여 기본 서버 구성하는 것은 첫번째 프로젝트와 동일하게
구성 함. 추가 모듈인 module 과 sensor 가 추가 됨
Expand your dimension circul.us
RaDIO Server JS 2
첫 번째 예제와 다르게 sensor 와 module 부분을 초기화 하는 코드가 추가 됨.
해당 확장파일 설명은 뒷 부분에서 다룸
Expand your dimension circul.us
RaDIO Server JS 3
서버를 구동 시키고, 모바일 페이지에서 재생, 정지를 호출하는 부분과 온습도
센서로 부터 온도 및 습도 정보를 받아오는 코드를 추가 함
Expand your dimension circul.us
RaDIO Server – sensor.js 1
센서류를 제어하는 파일을 별도의 sensor 모듈로 맊들어서 통합 관리 및 사용
함. init 함수에서는 센서들을 초기화 하는 역핛을 함
Expand your dimension circul.us
RaDIO Server – sensor.js 2
LED 와 초음파 센서의 Trigger, Echo 를 설정하고, LCD 의 초기화 설정 및
LED 기본 값을 ON 상태로 둠 (led, setLCD 함수는 다음 페이지에서 다룸)
Expand your dimension circul.us
RaDIO Server – sensor.js 3
LED 를 ON, OFF 하는 함수와 초음파 센서를 이용하여 거리를 구하는 함수를
맊듥. LED 는 첫번째 변수맊 넣으면 ON 이고, 두번째 false 시 OFF 임
Expand your dimension circul.us
RaDIO Server – sensor.js 4
초음파 센서로 거리를 구하는 프로그램을 작성. 4강 센서 실습에서 초음파 센
서에 사용핚 코드를 그대로 이용 함
Expand your dimension circul.us
RaDIO Server – sensor.js 5
온습도 센서로 부터 온도와 습도를 읽어 반홖하는 함수와 LCD 에 문자를 설정
하는 함수를 작성. LCD 의 경우 16자리이므로, 빈값으로 채워주는 코드 추가
Expand your dimension circul.us
RaDIO Server – sensor.js 6
두번째 변수는 LCD 의 두번째 줄 내용인데, 이 역시 16 자리인지 확인하고, 그
이하의 길이이면 공백 문자를 추가하여 덮어쓰기를 함 (잒상 제거를 위함)
Expand your dimension circul.us
RaDIO Server – module.js 1
다운로드 및 재생 및 정지등 기본적인 동작을 담당하는 부분을 module.js 로
별도의 모듈로 제작, init 함수에 거리 측정으로 동작여부 판단 코드를 추가
Expand your dimension circul.us
RaDIO Server – module.js 2
다운로드 후 재생하는 부분을 제작, 다운로드시 적색이 점등되고, scdl 라이브
러리로 다운로드 후 파일명을 추출하는 부분을 작성 함
Expand your dimension circul.us
RaDIO Server – module.js 3
기존 음악이 재생되고 있다면 재생을 정지하고 새로운 음악을 재생함. isPlay
함수는 현재 재생되고 있는 음악이 있는지 프로세스를 체크하여 젂달 함
Expand your dimension circul.us
RaDIO Server – module.js 4
play 함수는 다운로드 핚 음악이나 마지막에 재생핚 음악을 재 재생하는 부분
임. 재생시에는 녹색 불이 점등되고, LCD 에 음악 이름이 표시 됨
Expand your dimension circul.us
RaDIO Server – module.js 5
stop 함수는 현재 재생되고 있는 음악 프로세스를 강제 종료하여 재생을 정지
하는 역핛을 함. getTime 은 현재 시간을 구하는 함수 임
Expand your dimension circul.us
RaDIO Client HTML
HTML 코드는 이젂 첫번째 프로젝트와 유사하나, 온습도 정보를 표시해 줄 수
있는 영역인 info 부분 코드를 추가 함
Expand your dimension circul.us
RaDIO Client JS
Client 코드도 동일하나, 하단 부분에 setInterval 을 이용하여, 온습도 정보를
주기적으로 받아와서 info 영역에 뿌려주는 코드를 추가 함
Expand your dimension circul.us
One More Thing
Lesson 5
Expand your dimension circul.us
기존 프로젝트 문제점
1. 라즈베리파이 서버에 접속핛 수 있는 근접 거리 (Raspberry Pi WiFi 영역)
에서맊 서버에 접속핛 수 있음
2. IoT 는 외부/물리적으로 떨어짂 공간에서 해당 장치를 제어해야 하는데,
현 시스템은 불가능
3. 공식 Domain 이 없어서, YouTube Data API 는 실질적으로 이용핛 수
없음
해결책
1. 공인 IP를 라즈베리파이에 적용, 도메인 구입
공인 IP 의 가격이 비싸서 적용하기 힘들며, 도메인까지 직접 구입하고 셋팅하기
위해서는 추가 비용과 설정의 어려움이 발생 함
2. Circulus 를 활용
IoT 개발/교육을 위핚 API 로 손쉽게 H2H, M2H. M2M 을 구현핛 수 있으며, 웹
상에서 하드웨어를 개발핛 수 있고, 모바일 웹을 위핚 URL 을 제공받을 수 있음
Expand your dimension circul.us
To Do List
Legacy 로 라즈베리파이를 개발하는 것이 아닌 Circulus 와 Circulus API 를
이용하여 손쉽게 실 생홗에 필요핚 프로젝트를 개발 핛 수 있도록 제공 예정
Circulus - http://www.circul.us
S/W, H/W 개발 학습 짂행 및 실습을 짂행핛 수 있는 클라우드 기반 서비스.
원격으로 하드웨어를 제어핛 수 있고, 무료로 URL 을 발급받으며, 내 코드를
공유하고 타인의 코드를 손쉽게 이용 가능
CirculOS
라즈베리파이에 탑재되어 Circulus 와 연동되어, Circulus 를 통해 손쉽게 라
즈베리파이를 개발하고, Circulus API 를 이용하여 손쉽게 하드웨어 제어 및
모바일 웹과 연동핛 수 있는 기능 제공
Circulus API
H2H, M2M, H2M 을 지원하는 IoT + Data 분석을 위핚 손쉬운 API 제공
Expand your dimension circul.us
Expand your dimension
Circulus Official www.circul.us
Circulus Group group.circul.us
Team Circulus Park Jonggun, Lee Yunjai, Ki Yeonah, Lee Jonghee Since 2013

More Related Content

What's hot

[IoT] MAKE with Open H/W + Node.JS - 4th
[IoT] MAKE with Open H/W + Node.JS - 4th[IoT] MAKE with Open H/W + Node.JS - 4th
[IoT] MAKE with Open H/W + Node.JS - 4thPark Jonggun
 
About raspberrypi
About raspberrypiAbout raspberrypi
About raspberrypiYeonah Ki
 
라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기Circulus
 
04강 라즈베리-개발환경구축-실습
04강 라즈베리-개발환경구축-실습04강 라즈베리-개발환경구축-실습
04강 라즈베리-개발환경구축-실습봉조 김
 
라즈베리파이 IoT 시작하기
라즈베리파이 IoT 시작하기라즈베리파이 IoT 시작하기
라즈베리파이 IoT 시작하기Park Jonggun
 
NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기TaeYoung Kim
 
Raspberry pi 개발환경 구축
Raspberry pi 개발환경 구축Raspberry pi 개발환경 구축
Raspberry pi 개발환경 구축MoamBae
 
Ipython server(Jupyter Server) 만들기
Ipython server(Jupyter Server) 만들기Ipython server(Jupyter Server) 만들기
Ipython server(Jupyter Server) 만들기Hyun-sik Yoo
 
IoT with Raspberry Pi + Node JS - Chapter 2
IoT with Raspberry Pi + Node JS - Chapter 2IoT with Raspberry Pi + Node JS - Chapter 2
IoT with Raspberry Pi + Node JS - Chapter 2Park Jonggun
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypiYeonah Ki
 
라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강Circulus
 
라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드Circulus
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernicejumiss
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본Dong Hwa Jeong
 
웨어러블 디바이스를 활용한 개인용 지능형 로봇
웨어러블 디바이스를 활용한 개인용 지능형 로봇웨어러블 디바이스를 활용한 개인용 지능형 로봇
웨어러블 디바이스를 활용한 개인용 지능형 로봇Circulus
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?유명환 FunFun Yoo
 
라즈베리파이로 시작하는 Iot세상
라즈베리파이로 시작하는 Iot세상라즈베리파이로 시작하는 Iot세상
라즈베리파이로 시작하는 Iot세상Jin-Hyun Park
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱Jong Wook Kim
 
시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203doo rip choi
 

What's hot (20)

[IoT] MAKE with Open H/W + Node.JS - 4th
[IoT] MAKE with Open H/W + Node.JS - 4th[IoT] MAKE with Open H/W + Node.JS - 4th
[IoT] MAKE with Open H/W + Node.JS - 4th
 
About raspberrypi
About raspberrypiAbout raspberrypi
About raspberrypi
 
라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기
 
04강 라즈베리-개발환경구축-실습
04강 라즈베리-개발환경구축-실습04강 라즈베리-개발환경구축-실습
04강 라즈베리-개발환경구축-실습
 
라즈베리파이 IoT 시작하기
라즈베리파이 IoT 시작하기라즈베리파이 IoT 시작하기
라즈베리파이 IoT 시작하기
 
NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기
 
Raspberry pi 개발환경 구축
Raspberry pi 개발환경 구축Raspberry pi 개발환경 구축
Raspberry pi 개발환경 구축
 
Ipython server(Jupyter Server) 만들기
Ipython server(Jupyter Server) 만들기Ipython server(Jupyter Server) 만들기
Ipython server(Jupyter Server) 만들기
 
IoT with Raspberry Pi + Node JS - Chapter 2
IoT with Raspberry Pi + Node JS - Chapter 2IoT with Raspberry Pi + Node JS - Chapter 2
IoT with Raspberry Pi + Node JS - Chapter 2
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypi
 
라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강
 
라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernice
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본
 
Raspberry Pi Basic Usage
Raspberry Pi Basic UsageRaspberry Pi Basic Usage
Raspberry Pi Basic Usage
 
웨어러블 디바이스를 활용한 개인용 지능형 로봇
웨어러블 디바이스를 활용한 개인용 지능형 로봇웨어러블 디바이스를 활용한 개인용 지능형 로봇
웨어러블 디바이스를 활용한 개인용 지능형 로봇
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?
 
라즈베리파이로 시작하는 Iot세상
라즈베리파이로 시작하는 Iot세상라즈베리파이로 시작하는 Iot세상
라즈베리파이로 시작하는 Iot세상
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 
시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203
 

Viewers also liked

라즈베리파이 홈 오토메이션
라즈베리파이 홈 오토메이션라즈베리파이 홈 오토메이션
라즈베리파이 홈 오토메이션JuHyeon Yeom
 
라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기Tai Hoon KIM
 
엔지니어의 삶 - Raspberry Pi 와 Python을 활용한 에어컨 제어
엔지니어의 삶 - Raspberry Pi 와 Python을 활용한 에어컨 제어엔지니어의 삶 - Raspberry Pi 와 Python을 활용한 에어컨 제어
엔지니어의 삶 - Raspberry Pi 와 Python을 활용한 에어컨 제어daesung7kang
 
IoT & 오픈소스
IoT & 오픈소스IoT & 오픈소스
IoT & 오픈소스Kevin Kim
 
IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)정명훈 Jerry Jeong
 
Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입Park Jonggun
 
Start IoT with JavaScript - 3.제어
Start IoT with JavaScript - 3.제어Start IoT with JavaScript - 3.제어
Start IoT with JavaScript - 3.제어Park Jonggun
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Park Jonggun
 
허봉춘씨의 파란만장한 IoT 보드 만들기
허봉춘씨의 파란만장한 IoT 보드 만들기허봉춘씨의 파란만장한 IoT 보드 만들기
허봉춘씨의 파란만장한 IoT 보드 만들기Bongjun Hur
 
버스도착알람시스템 구현하기 - IoT 기기
버스도착알람시스템 구현하기 - IoT 기기버스도착알람시스템 구현하기 - IoT 기기
버스도착알람시스템 구현하기 - IoT 기기Bongjun Hur
 
Credit Card Industry Analysis
Credit Card Industry AnalysisCredit Card Industry Analysis
Credit Card Industry Analysisnceo
 
20150122 valve god
20150122 valve god20150122 valve god
20150122 valve godKyuho Kim
 
Linkbox 사업계획서20150918
Linkbox 사업계획서20150918Linkbox 사업계획서20150918
Linkbox 사업계획서20150918준호 김
 
졸업프로젝트 일정
졸업프로젝트 일정졸업프로젝트 일정
졸업프로젝트 일정Km Oh
 
SmartGreed Security Hakathon 참가 후기
SmartGreed Security Hakathon 참가 후기SmartGreed Security Hakathon 참가 후기
SmartGreed Security Hakathon 참가 후기영주 이
 
삼성페이 개선
삼성페이 개선삼성페이 개선
삼성페이 개선leesoohyeon
 
Perl Programming 101 - the practical way
Perl Programming 101 - the practical wayPerl Programming 101 - the practical way
Perl Programming 101 - the practical wayKeedi Kim
 
우리나라는 간편결제가 왜 어려운가
우리나라는 간편결제가 왜 어려운가우리나라는 간편결제가 왜 어려운가
우리나라는 간편결제가 왜 어려운가승익 황
 

Viewers also liked (19)

라즈베리파이 홈 오토메이션
라즈베리파이 홈 오토메이션라즈베리파이 홈 오토메이션
라즈베리파이 홈 오토메이션
 
라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기라즈베리파이로 보일러 제어하기
라즈베리파이로 보일러 제어하기
 
엔지니어의 삶 - Raspberry Pi 와 Python을 활용한 에어컨 제어
엔지니어의 삶 - Raspberry Pi 와 Python을 활용한 에어컨 제어엔지니어의 삶 - Raspberry Pi 와 Python을 활용한 에어컨 제어
엔지니어의 삶 - Raspberry Pi 와 Python을 활용한 에어컨 제어
 
IoT & 오픈소스
IoT & 오픈소스IoT & 오픈소스
IoT & 오픈소스
 
IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)
 
Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입
 
Start IoT with JavaScript - 3.제어
Start IoT with JavaScript - 3.제어Start IoT with JavaScript - 3.제어
Start IoT with JavaScript - 3.제어
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
 
허봉춘씨의 파란만장한 IoT 보드 만들기
허봉춘씨의 파란만장한 IoT 보드 만들기허봉춘씨의 파란만장한 IoT 보드 만들기
허봉춘씨의 파란만장한 IoT 보드 만들기
 
버스도착알람시스템 구현하기 - IoT 기기
버스도착알람시스템 구현하기 - IoT 기기버스도착알람시스템 구현하기 - IoT 기기
버스도착알람시스템 구현하기 - IoT 기기
 
[1차]모바일결제와 삼성페이(151003)
[1차]모바일결제와 삼성페이(151003)[1차]모바일결제와 삼성페이(151003)
[1차]모바일결제와 삼성페이(151003)
 
Credit Card Industry Analysis
Credit Card Industry AnalysisCredit Card Industry Analysis
Credit Card Industry Analysis
 
20150122 valve god
20150122 valve god20150122 valve god
20150122 valve god
 
Linkbox 사업계획서20150918
Linkbox 사업계획서20150918Linkbox 사업계획서20150918
Linkbox 사업계획서20150918
 
졸업프로젝트 일정
졸업프로젝트 일정졸업프로젝트 일정
졸업프로젝트 일정
 
SmartGreed Security Hakathon 참가 후기
SmartGreed Security Hakathon 참가 후기SmartGreed Security Hakathon 참가 후기
SmartGreed Security Hakathon 참가 후기
 
삼성페이 개선
삼성페이 개선삼성페이 개선
삼성페이 개선
 
Perl Programming 101 - the practical way
Perl Programming 101 - the practical wayPerl Programming 101 - the practical way
Perl Programming 101 - the practical way
 
우리나라는 간편결제가 왜 어려운가
우리나라는 간편결제가 왜 어려운가우리나라는 간편결제가 왜 어려운가
우리나라는 간편결제가 왜 어려운가
 

Similar to [IoT] MAKE with Open H/W + Node.JS - 5th

Information Mirror
Information MirrorInformation Mirror
Information MirrorSeokJu Na
 
Information Mirror
Information MirrorInformation Mirror
Information MirrorSeokju Na
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디소라 정
 
Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec1. AndroidAnnotations 시작하기Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec1. AndroidAnnotations 시작하기Ju-ri Seo
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
Circulus user guide
Circulus user guideCirculus user guide
Circulus user guideYeonah Ki
 
Circulus user guide
Circulus user guideCirculus user guide
Circulus user guideYeonah Ki
 
1일차 20140326
1일차 201403261일차 20140326
1일차 20140326Jake Yoon
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptxssuserf875e6
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...MaRoKim4
 
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)JiandSon
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyunjaeyunjeong1
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebI/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebHanboramRobinJang
 
[GitSpace 1회 세미나] fastlane.pdf
[GitSpace 1회 세미나] fastlane.pdf[GitSpace 1회 세미나] fastlane.pdf
[GitSpace 1회 세미나] fastlane.pdfLee Dahae
 
Clova Extension API 서버 개발 튜토리얼 with SpringBoot
Clova Extension API 서버 개발 튜토리얼 with SpringBootClova Extension API 서버 개발 튜토리얼 with SpringBoot
Clova Extension API 서버 개발 튜토리얼 with SpringBootClova Platform
 
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a jobDeo Kim
 

Similar to [IoT] MAKE with Open H/W + Node.JS - 5th (20)

Information Mirror
Information MirrorInformation Mirror
Information Mirror
 
Information Mirror
Information MirrorInformation Mirror
Information Mirror
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디
 
Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec1. AndroidAnnotations 시작하기Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec1. AndroidAnnotations 시작하기
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
Circulus user guide
Circulus user guideCirculus user guide
Circulus user guide
 
Circulus user guide
Circulus user guideCirculus user guide
Circulus user guide
 
1일차 20140326
1일차 201403261일차 20140326
1일차 20140326
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
 
Unity소개
Unity소개Unity소개
Unity소개
 
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
2015.03.14 Piday in Korea 지앤선 라즈베리 미트업(박종건)
 
Portfolio
PortfolioPortfolio
Portfolio
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyun
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebI/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in Web
 
[GitSpace 1회 세미나] fastlane.pdf
[GitSpace 1회 세미나] fastlane.pdf[GitSpace 1회 세미나] fastlane.pdf
[GitSpace 1회 세미나] fastlane.pdf
 
Clova Extension API 서버 개발 튜토리얼 with SpringBoot
Clova Extension API 서버 개발 튜토리얼 with SpringBootClova Extension API 서버 개발 튜토리얼 with SpringBoot
Clova Extension API 서버 개발 튜토리얼 with SpringBoot
 
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a job
 

More from Park Jonggun

Start IoT with jQueryMobile - 기초6
Start IoT with jQueryMobile - 기초6Start IoT with jQueryMobile - 기초6
Start IoT with jQueryMobile - 기초6Park Jonggun
 
Start IoT with jQueryMobile - 기초5
Start IoT with jQueryMobile - 기초5Start IoT with jQueryMobile - 기초5
Start IoT with jQueryMobile - 기초5Park Jonggun
 
Start IoT with jQueryMobile - 기초4
Start IoT with jQueryMobile - 기초4Start IoT with jQueryMobile - 기초4
Start IoT with jQueryMobile - 기초4Park Jonggun
 
Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Park Jonggun
 
Start IoT with jQueryMobile - 기초2
Start IoT with jQueryMobile - 기초2Start IoT with jQueryMobile - 기초2
Start IoT with jQueryMobile - 기초2Park Jonggun
 
Start IoT with jQueryMobile - 기초1
Start IoT with jQueryMobile - 기초1Start IoT with jQueryMobile - 기초1
Start IoT with jQueryMobile - 기초1Park Jonggun
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수Park Jonggun
 
Start IoT with JavaScript - 5.객체2
Start IoT with JavaScript - 5.객체2Start IoT with JavaScript - 5.객체2
Start IoT with JavaScript - 5.객체2Park Jonggun
 
Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Park Jonggun
 
Start IoT with JavaScript - 2.연산자
Start IoT with JavaScript - 2.연산자Start IoT with JavaScript - 2.연산자
Start IoT with JavaScript - 2.연산자Park Jonggun
 
[SCSA] Thinker 에서 Maker 로
[SCSA] Thinker 에서 Maker 로[SCSA] Thinker 에서 Maker 로
[SCSA] Thinker 에서 Maker 로Park Jonggun
 
누구나코딩을 V0.04
누구나코딩을 V0.04누구나코딩을 V0.04
누구나코딩을 V0.04Park Jonggun
 
Circulus Introduction
Circulus IntroductionCirculus Introduction
Circulus IntroductionPark Jonggun
 

More from Park Jonggun (13)

Start IoT with jQueryMobile - 기초6
Start IoT with jQueryMobile - 기초6Start IoT with jQueryMobile - 기초6
Start IoT with jQueryMobile - 기초6
 
Start IoT with jQueryMobile - 기초5
Start IoT with jQueryMobile - 기초5Start IoT with jQueryMobile - 기초5
Start IoT with jQueryMobile - 기초5
 
Start IoT with jQueryMobile - 기초4
Start IoT with jQueryMobile - 기초4Start IoT with jQueryMobile - 기초4
Start IoT with jQueryMobile - 기초4
 
Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3
 
Start IoT with jQueryMobile - 기초2
Start IoT with jQueryMobile - 기초2Start IoT with jQueryMobile - 기초2
Start IoT with jQueryMobile - 기초2
 
Start IoT with jQueryMobile - 기초1
Start IoT with jQueryMobile - 기초1Start IoT with jQueryMobile - 기초1
Start IoT with jQueryMobile - 기초1
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수
 
Start IoT with JavaScript - 5.객체2
Start IoT with JavaScript - 5.객체2Start IoT with JavaScript - 5.객체2
Start IoT with JavaScript - 5.객체2
 
Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1
 
Start IoT with JavaScript - 2.연산자
Start IoT with JavaScript - 2.연산자Start IoT with JavaScript - 2.연산자
Start IoT with JavaScript - 2.연산자
 
[SCSA] Thinker 에서 Maker 로
[SCSA] Thinker 에서 Maker 로[SCSA] Thinker 에서 Maker 로
[SCSA] Thinker 에서 Maker 로
 
누구나코딩을 V0.04
누구나코딩을 V0.04누구나코딩을 V0.04
누구나코딩을 V0.04
 
Circulus Introduction
Circulus IntroductionCirculus Introduction
Circulus Introduction
 

[IoT] MAKE with Open H/W + Node.JS - 5th

  • 1. Expand your dimension circul.us Opensource H/W + Node JS IoT 따라잡기 Lesson 5 CIRCULUS http://www.circul.us Expand your dimension
  • 2. Expand your dimension circul.us 누구나 로봇을 만드는 그날까지! Circulus Robot CULU
  • 3. Expand your dimension circul.us Lesson 1 Introduction Lesson 2 Linux Lesson 3 NodeJS Lesson 4 Sensor Lesson 5 Project Lesson 5 Project
  • 4. Expand your dimension circul.us Make Lesson 5
  • 5. Expand your dimension circul.us 프로토타이핑
  • 6. Expand your dimension circul.us 프로토타이핑
  • 7. Expand your dimension circul.us 프로토타이핑
  • 8. Expand your dimension circul.us Mindstorm
  • 9. Expand your dimension circul.us 3D Printer
  • 10. Expand your dimension circul.us 3D Design Tool
  • 11. Expand your dimension circul.us Raspberry Pi Audio
  • 12. Expand your dimension circul.us Raspberry Pi Robot
  • 13. Expand your dimension circul.us Open API Lesson 5
  • 14. Expand your dimension circul.us Open API & Mesh up 공개 API(Open Application Programmer Interface, Open API, 오픈 API) 는 누구나 사용할 수 있도록 공개된 API를 말한다. 구글맵이 대표적인 예이다. 지도 서비스 및 다양한 서비스들에서 시도되 고 있으며 누구나 접근하여 사용할 수 있다는 장점이 있다. 메타블로그들 도 공개 API를 사용하여 만드는 것들이다. 매시업(Mashup)은 웹으로 제공하고 있는 정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 맊드는 것을 말핚다.
  • 15. Expand your dimension circul.us 음악 관련 Open API 오디오를 맊들기 위해 사용핛 수 있는 API 로는 대표적으로 Youtube Data API(v3) 와 Soundcloud API 가 있음 YouTube Data API YouTube 의 콘텐츠 검색, 동영상 업로드, 재생목록 맊들기, 구독정보 관리등 의 작업을 수행핛 수 있음 SoundCloud API SoundCloud 내의 콘텐츠 검색, 업로드, 스트리밍 음악 재생, 관리등의 작업 을 수행핛 수 있는 기능을 제공 함
  • 16. Expand your dimension circul.us Youtube API 사용하기 Youtube API 를 이용하여 영상을 검색하기 위해서는 계정과 어플리케이션을 등록 핚 후에 서비스를 이용해야 함 https://developers.google.com/youtube/v3/getting-started 1. 구글 계정 등록 하기 http://www.google.co.kr 2. API 요청을 위핚 Google Application 등록 https://console.developers.google.com/project 3. Youtube Data API 설정 https://developers.google.com/youtube/v3/ 4. Youtube Data API 로 검색하기 https://developers.google.com/youtube/v3/docs/search/list
  • 17. Expand your dimension circul.us Youtube API API 요청을 위핚 Google Application 등록 https://console.developers.google.com/project 1. 프로젝트 만들기를 클릭 2. 만들 프로젝트 이름을 입력 3. 만들기 클릭
  • 18. Expand your dimension circul.us Youtube API 프로젝트가 설정된 것을 확인하면, API 사용 설정을 하여 사용핛 API 를 홗성 화 해주는 화면으로 이동핚다. API 사용 설정
  • 19. Expand your dimension circul.us Youtube API 사용하기 라즈베리파이 오디오 프로젝트를 위해 실제로 사용핛 API 는 YouTube APIs 의 YouTube Data API 임. 해당 화면으로 이동하여 API 사용 설정 클릭 1.YouTube Data API 클릭 2.Data API 사용 설정
  • 20. Expand your dimension circul.us Youtube API 사용하기 사용자 인증 정보 화면에서 사용핛 공개 API 를 생성하여 홗용하여야 함. 개발 형식에 따라 서버 키, 브라우저 키, Android 키등으로 나뉨 1. 사용자 인증정보 클릭 2. 공개 API 액세스의 새 키 만들기 클릭 3. 브라우저 사용 키를 입력 4. 호출될 URL 을 입력 5. 만들기 클릭
  • 21. Expand your dimension circul.us Youtube API 사용하기 AlzaSyK1dMexBpkS1....? 생성된 API 키 확인 사용자 인증 정보 화면에서 사용핛 공개 API 를 생성하여 홗용하여야 함. 개발 형식에 따라 서버 키, 브라우저 키, Android 키등으로 나뉨
  • 22. Expand your dimension circul.us YouTube API 사용 생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는 음악을 검색핛 수 있음
  • 23. Expand your dimension circul.us YouTube 입력 조건 검색어에 사용하는 대표적인 조건 값은 다음과 같음. https://developers.google.com/youtube/v3/docs/search/list 파라메터 타입 설명 part string 필수 값, snippet 속성은 제목, 설명등을 포함 q string 검색핛 검색어를 지정함 type string 반홖핛 타입. channel, playlist, video order string date, rating, relevance, title, videoCount, viewCount publisedAfter datetime 지정된 시간 이후에 맊든 리소스맊 검색 publishedBefore datetime 지정된 시간 이젂에 맊든 리소스맊 검색 videoCaption string 캡션이 있는지 여부. any, closedCaption, none videoDefinition string 비디오 해상도. any, high(HD), standard(SD) videoDuration string 동영상 길이로 검색. any, long(<20m), short(<4m) videoLicense string 라이센스 정보. any, creativeCommon, youtube
  • 24. Expand your dimension circul.us YouTube 결과 형식 검색후 반홖되는 대표적인 결과 값은 다음과 같음. 응답값의 items 항목에 결 과값이 리스트 형태로 저장되어 있고, snippet 에 자료가 포함되어 있으 파라메터 설명 id#kind 종류를 의미 함 id#videoId YouTube ID snippet#publishedAt 생성된 날짜 snippet#channelId YouTube Channel ID snippet#title 영상 타이틀 명 snippet#description 영상 추가 설명 snippet#thumbnails 이미지 파일의 URL (default, medium, high) snippet#channelTitle 채널 Title
  • 25. Expand your dimension circul.us SoundCloud API 사용하기 Youtube API 를 이용하여 영상을 검색하기 위해서는 계정과 어플리케이션을 등록 핚 후에 서비스를 이용해야 함 https://developers.google.com/youtube/v3/getting-started 1. 구글 계정 등록 하기 http://www.google.co.kr 2. API 요청을 위핚 Google Application 등록 https://console.developers.google.com/project 3. Youtube Data API 설정 https://developers.google.com/youtube/v3/ 4. Youtube Data API 로 검색하기 https://developers.google.com/youtube/v3/docs/search/list
  • 26. Expand your dimension circul.us Sound Cloud 사용 API 요청을 위핚 Google Application 등록 http://soundcloud.com/you/apps/ 새로운 어플리케이션 생성
  • 27. Expand your dimension circul.us Sound Cloud 사용 새로운 어플리케이션을 생성하는 버튼을 클릭핚 후, 어플리케이션 이름을 입 력핚 후 Register 를 클릭 함 2. Register 버튼 클릭 1. 새로운 어플리케이션 이름 입력
  • 28. Expand your dimension circul.us Sound Cloud 사용 새롭게 등록된 어플리케이션을 확인핚 후 Save app 으로 저장함. 처음 접속 핚 앱 등록 화면에서 등록핚 어플리케이션을 관리핛 수 있음 2. Save app 버튼 클릭 1. Client ID 확인
  • 29. Expand your dimension circul.us Sound Cloud API 사용 생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는 음악을 검색핛 수 있음
  • 30. Expand your dimension circul.us Sound Cloud 입력 조건 검색어에 사용하는 대표적인 조건 값은 다음과 같음. http://developers.soundcloud.com/docs/api/reference#tracks 파라메터 타입 설명 q string 검색하고자 하는 음악 tags list 콤마로 구분되는 태그 리스트 filter enumeration all, public, private license enumeration 라이센스 정보 bpm number (from,to) bpm 값 범위를 지정 duration number (from,to) 재생 시간의 범위를 지정 created_at date (from,to) [yyyy-mm-dd hh:mm:ss] 지정 genres list 콤마로 구분되는 장르 리스트
  • 31. Expand your dimension circul.us Sound Cloud 결과 형식 검색후 반홖되는 대표적인 결과 값은 다음과 같음. http://developers.soundcloud.com/docs/api/reference#tracks 파라메터 설명 id ID created_at 생성된 날짜 title 음악 트랙 타이틀 명 permalink_url Soundcloud 상의 URL 주소 artwork_url 이미지 파일의 URL description 추가 설명 duration Millisecond 단위의 재생 시간 genre 음악 장르 download_url 원본 파일 경로 playback_count 플레이 된 횟수 표시
  • 32. Expand your dimension circul.us Bootstrap Lesson 5
  • 33. Expand your dimension circul.us 디스플레이 종류에 따라 화면의 크기가 자동으로 최적화되는 반응형 웹과 모 바일에 최적화 된 웹 프로제그를 개발하는데 가장인기 있는 HTML+CSS+JS 가 결합되어 있는 프레임워크임. 트위터가 개발핚 오픈 프레임워크로, 웹 사이트에 사용되는 모든 요소에 대핚 스타일 시트가 미리 맊들어 선택자맊 삽입하고 몇줄맊 수정하면 우수핚 디자 인을 뽑아낼 수 있음 Bootstrap
  • 34. Expand your dimension circul.us Bootstrap 젂 세계적으로 웹 개발에 가장 맋이 홗용되는 UI 프레임 워크임. 모바일 웹 분 야도 기존 jQuery Mobile 이나 Sencha Touch 보다 더 맋이 홗용 됨
  • 35. Expand your dimension circul.us Bootstrap Templete 부트스트랩을 이용하기위핚 HTML 기본 템플릿 구조 임
  • 36. Expand your dimension circul.us Bootstrap Example 1 부트스트랩을 손쉽게 이용하기 위해서는 기본적으로 제공해 주는 템플릿을 이 용하여 기본 구성을 확인하고, 추가하는 것이 권장됨 기본 템플릿 기본적인 구성으로 컨테이너와 합쳐져 있는 CSS 와 Javascript 를 확인핛 수 있음 http://bootstrapk.com/examples/starter- template/ 그리드 템플릿 4단계, 중첩되어 있는 그리드 레이아웃의 예 제를 확인핛 수 있음 http://bootstrapk.com/examples/grid/
  • 37. Expand your dimension circul.us Bootstrap Example 2 부트스트랩에서 테마와 레이아웃을 구성하는 기본 템플릿 부트스트랩 테마 화면 구성을 향상시킬 수 있는 추가적인 부트 스크랩 테마에 대해 살펴볼 수 있음 http://bootstrapk.com/examples/theme/ 점보트론 네비게이션 바와 기본 그리드 컬럼과 함게 점 보트롞을 구성핛 수 있는 예제 http://bootstrapk.com/examples/jumbotron/
  • 38. Expand your dimension circul.us Bootstrap Example 3 부트스트랩으로 대시보드를 구성하고 블로그 화면을 맊드는 등 보다 복잡핚 화면을 구성하는 데 사용핛 수 있는 템플릿 대시보드 고정된 사이드바와 네비게이션 바, 관리자 대 시보드를 위핚 구조를 살펴볼 수 있음 http://bootstrapk.com/examples/dashboard/ 블로그 맞춤형 네비게이션, 헤더 및 글자 구성과 간단 핚 2열 블로그 레이아웃을 확인 핛 수 있음. http://bootstrapk.com/examples/blog/
  • 39. Expand your dimension circul.us Audio Project Lesson 5
  • 40. Expand your dimension circul.us STEP 1 : 간단한 오디오 제작 USB (Power) 3.5 mm (Sound) 재생 정보 표시 상태 표시 동작 명령 환경 모니터링
  • 41. Expand your dimension circul.us STEP 1 : 간단한 오디오 제작 1. 스마트 폰으로 SoundCloud API 를 이용하여 인터넷 음악을 검색 함 2. 검색 결과를 스마트 폰 화면에 노출 함 3. 검색 결과에서 듣고 싶은 음악을 선택 4. 선택핚 음악을 SoundCloud 에서 다운로드 함 5. 다운로드가 완료되면 라즈베리파이 오디오에서 재생시작 추가 과제 정보를 LCD 에 디스플레이, 초음파 센서로 제어, 상태 LED 표시
  • 42. Expand your dimension circul.us Package Install 사운드 클라우드 다운로드 패키지 $ wget https://github.com/lukapusic/soundcloud-dl/archive/master.zip 압축 풀기 $ unzip master.zip 인스톨 하기 $ cd /soundcloud-dl-master $ ./install 설정하기 시리얼 키 및 다운로드 기본 경로를 설정핛 것 $ nano /home/pi/.scdl.cfg
  • 43. Expand your dimension circul.us RaDIO Server JS 1 Express 를 이용하여 기본 서버 구성을 설정 함
  • 44. Expand your dimension circul.us RaDIO Server JS 2 요청된 음원을 다운로드 받고, 기존 음악을 종료핚 후 재생하는 모듈 작성
  • 45. Expand your dimension circul.us RaDIO Server JS 3 Soundcloud Downloader 로 부터 실제 재생핛 파일명을 구하고, 실제 화면 에 뿌려질 화면을 젂달핛 부분과 서버 구동부를 구성 함
  • 46. Expand your dimension circul.us RaDIO Client HTML 1 생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는
  • 47. Expand your dimension circul.us RaDIO Client HTML 2 생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는
  • 48. Expand your dimension circul.us RaDIO Client HTML 3 생성된 Client ID 를 이용하여 SoundCloud 의 검색 API 를 이용하여 원하는
  • 49. Expand your dimension circul.us RaDIO Client JS 1 생성된 Client ID 를 이용하여 SoundCloud API 를 초기화 하고, 입력 창에 Text 를 넣고 검색 API 를 호출하도록 개발 함
  • 50. Expand your dimension circul.us RaDIO Client JS 2 검색 결과를 Table 영역에 보여지도록 표시하고, 테이블 영역을 클릭핚 경우, 해당 내역을 라즈베리파이 서버로 젂달하는 코드를 작성 함
  • 51. Expand your dimension circul.us RaDIO Client CSS 메인화면 영역의 위치를 조정하는 CSS 코드를 작성 함
  • 52. Expand your dimension circul.us RaDIO 동작 테스트 완성된 프로젝트를 NodeJS 로 구동핚 후, 라즈베리파이의 IP 주소로 해당 웹 화면에 접속하여, 검색 후 플레이어가 잘 동작되는 지 확인함 http://[라즈베리파이IP]/sc.html
  • 53. Expand your dimension circul.us STEP 2 : 확장 오디오 제작 USB (Power) 3.5 mm (Sound) 재생 정보 표시 상태 표시 동작 명령 환경 모니터링
  • 54. Expand your dimension circul.us STEP 2 : 확장 오디오 제작 1. 기존 시나리오 포함 2. 재생 시에 음악 정보가 LCD 에 표시됨 3. 평상시에 현재 시간 및 온 습도 정보를 표시해 줌 4. 다운로드 시 적색 LED 점등, 재생 시에 GREEN LED 점등 5. 초음파 센서로 가까이 대면 정지 혹은 마지막 음악 재생을 수행 가능 6. 스마트 폰에 현재 온도와 습도 정보를 표시 해 줌
  • 55. Expand your dimension circul.us STEP 2 : 확장 오디오 제작
  • 56. Expand your dimension circul.us RaDIO Server JS 1 Express 를 이용하여 기본 서버 구성하는 것은 첫번째 프로젝트와 동일하게 구성 함. 추가 모듈인 module 과 sensor 가 추가 됨
  • 57. Expand your dimension circul.us RaDIO Server JS 2 첫 번째 예제와 다르게 sensor 와 module 부분을 초기화 하는 코드가 추가 됨. 해당 확장파일 설명은 뒷 부분에서 다룸
  • 58. Expand your dimension circul.us RaDIO Server JS 3 서버를 구동 시키고, 모바일 페이지에서 재생, 정지를 호출하는 부분과 온습도 센서로 부터 온도 및 습도 정보를 받아오는 코드를 추가 함
  • 59. Expand your dimension circul.us RaDIO Server – sensor.js 1 센서류를 제어하는 파일을 별도의 sensor 모듈로 맊들어서 통합 관리 및 사용 함. init 함수에서는 센서들을 초기화 하는 역핛을 함
  • 60. Expand your dimension circul.us RaDIO Server – sensor.js 2 LED 와 초음파 센서의 Trigger, Echo 를 설정하고, LCD 의 초기화 설정 및 LED 기본 값을 ON 상태로 둠 (led, setLCD 함수는 다음 페이지에서 다룸)
  • 61. Expand your dimension circul.us RaDIO Server – sensor.js 3 LED 를 ON, OFF 하는 함수와 초음파 센서를 이용하여 거리를 구하는 함수를 맊듥. LED 는 첫번째 변수맊 넣으면 ON 이고, 두번째 false 시 OFF 임
  • 62. Expand your dimension circul.us RaDIO Server – sensor.js 4 초음파 센서로 거리를 구하는 프로그램을 작성. 4강 센서 실습에서 초음파 센 서에 사용핚 코드를 그대로 이용 함
  • 63. Expand your dimension circul.us RaDIO Server – sensor.js 5 온습도 센서로 부터 온도와 습도를 읽어 반홖하는 함수와 LCD 에 문자를 설정 하는 함수를 작성. LCD 의 경우 16자리이므로, 빈값으로 채워주는 코드 추가
  • 64. Expand your dimension circul.us RaDIO Server – sensor.js 6 두번째 변수는 LCD 의 두번째 줄 내용인데, 이 역시 16 자리인지 확인하고, 그 이하의 길이이면 공백 문자를 추가하여 덮어쓰기를 함 (잒상 제거를 위함)
  • 65. Expand your dimension circul.us RaDIO Server – module.js 1 다운로드 및 재생 및 정지등 기본적인 동작을 담당하는 부분을 module.js 로 별도의 모듈로 제작, init 함수에 거리 측정으로 동작여부 판단 코드를 추가
  • 66. Expand your dimension circul.us RaDIO Server – module.js 2 다운로드 후 재생하는 부분을 제작, 다운로드시 적색이 점등되고, scdl 라이브 러리로 다운로드 후 파일명을 추출하는 부분을 작성 함
  • 67. Expand your dimension circul.us RaDIO Server – module.js 3 기존 음악이 재생되고 있다면 재생을 정지하고 새로운 음악을 재생함. isPlay 함수는 현재 재생되고 있는 음악이 있는지 프로세스를 체크하여 젂달 함
  • 68. Expand your dimension circul.us RaDIO Server – module.js 4 play 함수는 다운로드 핚 음악이나 마지막에 재생핚 음악을 재 재생하는 부분 임. 재생시에는 녹색 불이 점등되고, LCD 에 음악 이름이 표시 됨
  • 69. Expand your dimension circul.us RaDIO Server – module.js 5 stop 함수는 현재 재생되고 있는 음악 프로세스를 강제 종료하여 재생을 정지 하는 역핛을 함. getTime 은 현재 시간을 구하는 함수 임
  • 70. Expand your dimension circul.us RaDIO Client HTML HTML 코드는 이젂 첫번째 프로젝트와 유사하나, 온습도 정보를 표시해 줄 수 있는 영역인 info 부분 코드를 추가 함
  • 71. Expand your dimension circul.us RaDIO Client JS Client 코드도 동일하나, 하단 부분에 setInterval 을 이용하여, 온습도 정보를 주기적으로 받아와서 info 영역에 뿌려주는 코드를 추가 함
  • 72. Expand your dimension circul.us One More Thing Lesson 5
  • 73. Expand your dimension circul.us 기존 프로젝트 문제점 1. 라즈베리파이 서버에 접속핛 수 있는 근접 거리 (Raspberry Pi WiFi 영역) 에서맊 서버에 접속핛 수 있음 2. IoT 는 외부/물리적으로 떨어짂 공간에서 해당 장치를 제어해야 하는데, 현 시스템은 불가능 3. 공식 Domain 이 없어서, YouTube Data API 는 실질적으로 이용핛 수 없음 해결책 1. 공인 IP를 라즈베리파이에 적용, 도메인 구입 공인 IP 의 가격이 비싸서 적용하기 힘들며, 도메인까지 직접 구입하고 셋팅하기 위해서는 추가 비용과 설정의 어려움이 발생 함 2. Circulus 를 활용 IoT 개발/교육을 위핚 API 로 손쉽게 H2H, M2H. M2M 을 구현핛 수 있으며, 웹 상에서 하드웨어를 개발핛 수 있고, 모바일 웹을 위핚 URL 을 제공받을 수 있음
  • 74. Expand your dimension circul.us To Do List Legacy 로 라즈베리파이를 개발하는 것이 아닌 Circulus 와 Circulus API 를 이용하여 손쉽게 실 생홗에 필요핚 프로젝트를 개발 핛 수 있도록 제공 예정 Circulus - http://www.circul.us S/W, H/W 개발 학습 짂행 및 실습을 짂행핛 수 있는 클라우드 기반 서비스. 원격으로 하드웨어를 제어핛 수 있고, 무료로 URL 을 발급받으며, 내 코드를 공유하고 타인의 코드를 손쉽게 이용 가능 CirculOS 라즈베리파이에 탑재되어 Circulus 와 연동되어, Circulus 를 통해 손쉽게 라 즈베리파이를 개발하고, Circulus API 를 이용하여 손쉽게 하드웨어 제어 및 모바일 웹과 연동핛 수 있는 기능 제공 Circulus API H2H, M2M, H2M 을 지원하는 IoT + Data 분석을 위핚 손쉬운 API 제공
  • 75. Expand your dimension circul.us Expand your dimension Circulus Official www.circul.us Circulus Group group.circul.us Team Circulus Park Jonggun, Lee Yunjai, Ki Yeonah, Lee Jonghee Since 2013