자바스크립트로 라즈베리파이 제어 및 리모콘을 만들어 IoT를 실습하는 방법을 다루고 있습니다. 관련 목차는 다음과 같습니다.
0. 시작하기 앞서 (4p)
1. 파이를 동작시켜 보자 - 초기설정 (17p)
2. 파이의 운영체제 - Linux 속성실습 (33p)
3. JavaScript로 하드웨어 제어를 - Node.JS (57p)
4. 거리 측정하고 정보 표시 하기 - GPIO (81p)
5. 스마트폰으로 리모콘을 - jQueryMobile (119p)
6. 인터넷으로 음악과 날씨를 - OpenAPI & RSS (137p)
7. 오디오 소프트웨어 개발하기 - (153p)
8. 외관을 생각대로 만들기 - 3D 프린팅 (189p)
9. 언제 어디서나 동작하는 IoT- Circulus (192p)
10. 마무리(256p)
The document discusses configuring various services on a Red Hat Enterprise Linux system. It includes instructions for setting up a Yum repository, configuring SELinux, modifying cron access, adding a boot parameter, mounting an ISO file, setting up an FTP server allowing anonymous access only from the local network, creating an email alias, and more.
The document contains code snippets demonstrating the use of TensorFlow for building and training neural networks. It shows how to:
1. Define operations like convolutions, max pooling, fully connected layers using common TensorFlow functions like tf.nn.conv2d and tf.nn.max_pool.
2. Create and initialize variables using tf.Variable and initialize them using tf.global_variables_initializer.
3. Construct a multi-layer perceptron model for MNIST classification with convolutional and fully connected layers.
4. Train the model using tf.train.AdamOptimizer by running optimization steps and calculating loss over batches of data.
5. Evaluate the trained model on test data to calculate accuracy.
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
요즘 Hadoop 보다 더 뜨고 있는 Spark.
그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다.
RDD가 어떻게 동작하는지, 원 논문을 리뷰하며 살펴보도록 합시다.
http://www.cs.berkeley.edu/~matei/papers/2012/sigmod_shark_demo.pdf
빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
[IoT] MAKE with Open H/W + Node.JS - 5thPark Jonggun
IoT 시대에 Opensource H/W 와 NodeJS 를 이용하여 누구나 나만의 H/W + S/W + Service 를 만들기 위한 교육 과정을 만들어 보았습니다.
상상했던 아이디어를 Raspberry Pi 기반으로 나만의 IoT 제품을 현실로 만들어 보세요.
Lesson 1 - Introduction : IoT개요, Opensource H/W, 라즈베리파이 기초
Lesson 2 - Linux : Raspberry Pi 에서 리눅스 활용하기
Lesson 3 - Node.JS : Raspberry Pi 에서 Node.JS 로 프로그래밍 하기
Lesson 4 - Sensor : GPIO 를 Node.JS 로 동작시켜 센서 제어하기
Lesson 5 - Project : Raspberry Pi 로 스마트폰 + 무선 IoT 오디오 제작
챕터가 완성되는대로 추가적으로 공유하겠습니다.
Circulus Site - http://www.circul.us
Circulus Group - http://group.circul.us
2016 PyCon APAC Lightning Talk - Django로 음반 관리하기Yungon Park
Django + AWS EC2를 이용하여 음반 관리 사이트를 만드는 과정을 담았습니다.
- 개인적으로 사용할 목적이라 실제 동작하는 사이트 주소를 적지 않습니다.
- 단, 소스는 공개되어 있습니다. (http://github.com/rubysoho07/MusicManager)
The document discusses configuring various services on a Red Hat Enterprise Linux system. It includes instructions for setting up a Yum repository, configuring SELinux, modifying cron access, adding a boot parameter, mounting an ISO file, setting up an FTP server allowing anonymous access only from the local network, creating an email alias, and more.
The document contains code snippets demonstrating the use of TensorFlow for building and training neural networks. It shows how to:
1. Define operations like convolutions, max pooling, fully connected layers using common TensorFlow functions like tf.nn.conv2d and tf.nn.max_pool.
2. Create and initialize variables using tf.Variable and initialize them using tf.global_variables_initializer.
3. Construct a multi-layer perceptron model for MNIST classification with convolutional and fully connected layers.
4. Train the model using tf.train.AdamOptimizer by running optimization steps and calculating loss over batches of data.
5. Evaluate the trained model on test data to calculate accuracy.
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
요즘 Hadoop 보다 더 뜨고 있는 Spark.
그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다.
RDD가 어떻게 동작하는지, 원 논문을 리뷰하며 살펴보도록 합시다.
http://www.cs.berkeley.edu/~matei/papers/2012/sigmod_shark_demo.pdf
빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
[IoT] MAKE with Open H/W + Node.JS - 5thPark Jonggun
IoT 시대에 Opensource H/W 와 NodeJS 를 이용하여 누구나 나만의 H/W + S/W + Service 를 만들기 위한 교육 과정을 만들어 보았습니다.
상상했던 아이디어를 Raspberry Pi 기반으로 나만의 IoT 제품을 현실로 만들어 보세요.
Lesson 1 - Introduction : IoT개요, Opensource H/W, 라즈베리파이 기초
Lesson 2 - Linux : Raspberry Pi 에서 리눅스 활용하기
Lesson 3 - Node.JS : Raspberry Pi 에서 Node.JS 로 프로그래밍 하기
Lesson 4 - Sensor : GPIO 를 Node.JS 로 동작시켜 센서 제어하기
Lesson 5 - Project : Raspberry Pi 로 스마트폰 + 무선 IoT 오디오 제작
챕터가 완성되는대로 추가적으로 공유하겠습니다.
Circulus Site - http://www.circul.us
Circulus Group - http://group.circul.us
2016 PyCon APAC Lightning Talk - Django로 음반 관리하기Yungon Park
Django + AWS EC2를 이용하여 음반 관리 사이트를 만드는 과정을 담았습니다.
- 개인적으로 사용할 목적이라 실제 동작하는 사이트 주소를 적지 않습니다.
- 단, 소스는 공개되어 있습니다. (http://github.com/rubysoho07/MusicManager)
JavaScript Everywhere from Mobile and RobotCirculus
Build own idea using javascript from mobile and robot!
서큘러스 팀은 IoT 교육/개발 플랫폼과 데이터 수집 및 분석 시스템, 그리고 모바일과 봇 형 제품군까지 모든것을 JavaScript 하나만으로 제작및 통합하였습니다. 하나의 언어로 통합하여 얻게 되는 장점에 대해 살펴봅니다.
Pibo is a personal intelligent robot developed as an IoT platform that serves as a friend, assistant, and educational tool. It enables users to program custom functions and supports remote control and voice commands while integrating social learning through features like emotion expression and object recognition. Pibo functions on a cloud platform, allowing for data analysis and collaborative intelligence, enhancing its capabilities over time.
KICT 디바이스랩의 파워유저 활동의 종료보고회 자료입니다.
개인용 지능형 로봇 piBo 의 개선과 더불어, 웨어러블 디바이스(Gear S2) 를 통해 로봇을 제어하는 내용이 추가되었습니다.
아울러, Circulus 에서 기존엔 모바일 부터 하드웨어까지 클라우드상에서 개발할 수 있었던 상황에서, 이제는 웨어러블도 역시 JavaScript 만으로 개발 가능하게 업그레이드 되었습니다.
3. Open API
Open Application Programmer Interface 는 누구나 사용할 수 있도록 공개
이를 융합하여 새로운 서비스를 만드는 것을 매시 업(Meshup) 이라 함
4. 공공 데이터
국가 공공 기관의 데이터를 오픈하여 활용할 수 있게 함(data.go.kr)
이를 통하여 새로운 서비스를 만들 수 있도록 장려
5. RSS
Rich Site Summary 는 뉴스, 블로그 사이트에서 사용하는 콘텐츠 표현 방식
요약된 최신 정보를 제공함으로서, 이를 재 활용 할 수 있게 함
http://[블로거ID].tistory.com/rss
Tistory Blog
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>제목</title>
<link>주소</link>
<description>설명 (짤막하게)</description>
<item>
<title>제목</title>
<link>주소,글 주소</link>
<description>글 내용 전체(또는 일부)</description>
<pubDate>시간</pubDate>
<guid>주소/글 주소</guid>
</item>
<item>
<title>제목</title>
<link>주소,글 주소</link>
<description>글 내용</description>
<pubDate>시간과 날짜</pubDate>
<guid>주소,글 주소</guid>
</item>
</channel>
</rss>
http://blog.rss.naver.com/[블로거ID].xml
Naver Blog
http://bit.ly/1JaZhD7
뉴스 RSS 모음
6. 음악 Open API 활용
THINKER TO MAKER
Sound Cloud Open API
7. 음악 관련 Open API
음악 관련 Open API 로는 Youtube Data API 와 Soundcloud API 가 있음
영상이 중심일 때는 Youtube, 음악이 중심 일때는 Soundcloud 가 용이 함
SoundCloud APIYoutube Data API
YouTube Data API
YouTube 의 콘텐츠 검색, 동영상 업로
드, 재생목록 만들기, 구독정보 관리등
의 작업을 수행할 수 있음
SoundCloud API
SoundCloud 내의 콘텐츠 검색, 업로드,
스트리밍 음악 재생, 관리등의 작업을 수
행할 수 있는 기능을 제공 함
11. SoundCloud API 가입
모든 정보를 입력하고 Sumbit 을 누르면, 1~2주 후에 승인 메일 전달
해당 승인 메일을 통해 실제 API 사용이 가능해 짐
12. SoundCloud API 가입
음악 관련 Open API 로는 Youtube Data API 와 Soundcloud API 가 있음
영상이 중심일 때는 Youtube, 음악이 중심 일때는 Soundcloud 가 용이 함
새로운 어플리케이션 생성
13. SoundCloud API 가입
음악 관련 Open API 로는 Youtube Data API 와 Soundcloud API 가 있음
영상이 중심일 때는 Youtube, 음악이 중심 일때는 Soundcloud 가 용이 함
2. Register 버튼 클릭
1. 새로운 어플리케이션 이름 입력
14. SoundCloud API 가입
음악 관련 Open API 로는 Youtube Data API 와 Soundcloud API 가 있음
영상이 중심일 때는 Youtube, 음악이 중심 일때는 Soundcloud 가 용이 함
2. Save app 버튼 클
릭
1. Client ID 확인
16. HTTP 요청 예시
HTTP 요청으로 음악을 검색하고 정보를 불러올 수 있음
http://bit.ly/2gQLNlM
"purchase_title": null,
"release_day": null,
"release_month": null,
"release_year": null,
"reposts_count": 18821,
"state": "finished",
"tag_list": "alternative pop "big hero six"",
"track_type": null,
"user": {
"avatar_url": "https://i1.sndcdn.com/avatars-000121237593-dl8xs0-large.jpg",
"id": 3678183,
"kind": "user",
"permalink_url": "http://soundcloud.com/falloutboy",
"uri": "https://api.soundcloud.com/users/3678183",
"username": "FallOutBoy",
"permalink": "falloutboy",
"last_modified": "2016/01/11 22:49:04 +0000"
},
"bpm": null,
"user_playback_count": null,
"id": 172055891,
"kind": "track",
"created_at": "2014/10/14 04:53:00 +0000",
"last_modified": "2016/01/20 20:50:42 +0000",
"permalink": "fall-out-boy-immortals-from-big-hero-6",
"permalink_url": "https://soundcloud.com/falloutboy/fall-out-boy-immortals-from-big-
hero-6",
"title": "Immortals [From Big Hero 6]",
"duration": 192983,
"sharing": "public",
"stream_url": "https://api.soundcloud.com/tracks/172055891/stream",
"uri": "https://api.soundcloud.com/tracks/172055891",
"user_id": 3678183
},
{…}
]
[
{
"download_url": null,
"key_signature": "",
"user_favorite": false,
"likes_count": 171682,
"release": "",
"attachments_uri": "https://api.soundcloud.com/tracks/172055891/attachments",
"waveform_url": "https://w1.sndcdn.com/QnXGQzkYUaED_m.png",
"purchase_url": "http://smarturl.it/fobbh6",
"video_url": null,
"streamable": true,
"artwork_url": "https://i1.sndcdn.com/artworks-000093907678-79gb6j-large.jpg",
"comment_count": 3905,
"commentable": true,
"description": ""Immortals" from Disney's Big Hero 6 (inspired by the Marvel comic).
Download it on iTunes http://smarturl.it/fobbh6 Get the limited 7" vinyl + poster
http://bit.ly/1sutR2XnnListen to our new single "Centuries" http://youtu.be/sCbS-
TLEoRA Download it on iTunes http://smarturl.it/centuries out now on DCD2/Island
nnUpcoming tour dates: http://falloutboy.com/tour
nnhttp://falloutboy.comnhttp://facebook.com/falloutboynhttp://twitter.com/falloutbo
ynhttp://youtube.com/falloutboynhttp://instagram.com/falloutboynhttp://spoti.fi/T3yF
gInn",
"download_count": 0,
"downloadable": false,
"embeddable_by": "all",
"favoritings_count": 0,
"genre": "fall out boy",
"isrc": null,
"label_id": null,
"label_name": null,
"license": "all-rights-reserved",
"original_content_size": 4632820,
"original_format": "mp3",
"playback_count": 10426258,
17. HTTP 요청 변수
Q 키워드에 원하는 검색 어를 입력하면, 해당 음악이 검색 됨
조건을 추가하여 좀더 세분화 된 결과를 받을 수도 있음
항목 내용
q 음악을 검색하기 위한 검색어를 입력한다.
genres 콤마로 구분되는 장르 목록을 입력한다.
Bpm[from] 입력 값 이상의 bpm 을 가지는 음반 목록을 검색한다.
Bpm[to] 입력 값 이하의 bpm 을 가지는 음반 목록을 검색한다.
Duration[from] 입력 값 이상의 재생 시간을 가지는 음반 목록을 검색한다.
Duration[to] 입력 값 이하의 재생 시간을 가지는 음반 목록을 검색한다.
https://developers.soundcloud.com/docs/api/reference#tracks
18. HTTP 응답 변수
출력되는 데이터는 타이틀 정보, 타이틀 이미지, 음악 경로 등 정보 제공
웹에서 확인 시 JSON Formatter 를 설치하여 직관적으로 확인 가능
멤버 개요
Created_at 해당 음원이 등록된 시간을 보여준다.
Title 해당 음원의 타이틀 명을 보여준다.
Permalink_url SoundCloud 사이트에서 해당 음원의 페이지 정보를 보여준다.
Artwork_url 해당 음원의 대표 이미지 url 을 보여준다
Description 해당 음원의 상세 설명을 보여준다.
Duration 해당 음원의 총 재생 시간을 보여준다.
genre 해당 음원의 장르를 보여준다.
Playback_count 재생한 횟수를 보여준다
bpm Beat Per Minute 의 약자로 템포, 즉 음악의 빠르기를 나타낸다.
Release_year 음악이 공개된 연도를 나타낸다.
20. 날씨 정보 확인
기상청에서 RSS를 이용해 오늘의 날씨를 간편하게 확인할 수 있게 함
시/도 별 날씨 정보가 제공 됨
21. 날씨 정보 확인
RSS 정보로 제공되는 지역 목록
정보를 파싱(Parsing) 하여 어플리케이션 개발에 활용 가능
지역 RSS 주소
전국 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108
서울, 경기도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109
강원도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=105
충청북도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=131
충청남도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=133
전라북도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=146
전라남도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=146
경상북도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=143
경상남도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=159
제주도 http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=184