IoT EDU/MAKE 플랫폼인 Circulus 를 이용하여,
라즈베리파이를 개발할 때 제공되는 API 가이드라인입니다.
이 가이드에서는
LED, 초음파센서, 7세그먼트, 온습도 센서, 조도 센서, SW/HW PWM, TTS, 카메라, 사운드인식, 위치파악, 모니터링, 광학문자인식(OCR) 등에 대해 단 몇줄의 자바스크립트만으로 제어하는 예제를 다루고 있습니다. 앞으로도 지속적으로 추가될 예정입니다.
KICT 디바이스랩의 파워유저 활동의 종료보고회 자료입니다.
개인용 지능형 로봇 piBo 의 개선과 더불어, 웨어러블 디바이스(Gear S2) 를 통해 로봇을 제어하는 내용이 추가되었습니다.
아울러, Circulus 에서 기존엔 모바일 부터 하드웨어까지 클라우드상에서 개발할 수 있었던 상황에서, 이제는 웨어러블도 역시 JavaScript 만으로 개발 가능하게 업그레이드 되었습니다.
[IoT] MAKE with Open H/W + Node.JS - 4thPark 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
IoT EDU/MAKE 플랫폼인 Circulus 를 이용하여,
라즈베리파이를 개발할 때 제공되는 API 가이드라인입니다.
이 가이드에서는
LED, 초음파센서, 7세그먼트, 온습도 센서, 조도 센서, SW/HW PWM, TTS, 카메라, 사운드인식, 위치파악, 모니터링, 광학문자인식(OCR) 등에 대해 단 몇줄의 자바스크립트만으로 제어하는 예제를 다루고 있습니다. 앞으로도 지속적으로 추가될 예정입니다.
KICT 디바이스랩의 파워유저 활동의 종료보고회 자료입니다.
개인용 지능형 로봇 piBo 의 개선과 더불어, 웨어러블 디바이스(Gear S2) 를 통해 로봇을 제어하는 내용이 추가되었습니다.
아울러, Circulus 에서 기존엔 모바일 부터 하드웨어까지 클라우드상에서 개발할 수 있었던 상황에서, 이제는 웨어러블도 역시 JavaScript 만으로 개발 가능하게 업그레이드 되었습니다.
[IoT] MAKE with Open H/W + Node.JS - 4thPark 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
[IoT] MAKE with Open H/W + Node.JS - 3rdPark 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
[IoT] MAKE with Open H/W + Node.JS - 1stPark 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
[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
메이커 페어 서울 2018 소개 자료입니다.
- 측우자격루
- 라즈베리파이, 아두이노, 레고를 활용하여 만든 작품입니다.
- 개발자용 소개 자료입니다.
목차
- 프로젝트 소개
- IoT 기술 소개
- 기능 상세
- 제작 과정
- 시연
- 느낀 점
작업 후기 링크입니다.
https://blog.skcc.com/3805
https://blog.skcc.com/3810
The slide that explains how to make circuits that connected to Raspberry PI GPIO and several sensors.
This slides show how to program using Python language.
[IoT] MAKE with Open H/W + Node.JS - 3rdPark 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
[IoT] MAKE with Open H/W + Node.JS - 1stPark 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
[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
메이커 페어 서울 2018 소개 자료입니다.
- 측우자격루
- 라즈베리파이, 아두이노, 레고를 활용하여 만든 작품입니다.
- 개발자용 소개 자료입니다.
목차
- 프로젝트 소개
- IoT 기술 소개
- 기능 상세
- 제작 과정
- 시연
- 느낀 점
작업 후기 링크입니다.
https://blog.skcc.com/3805
https://blog.skcc.com/3810
The slide that explains how to make circuits that connected to Raspberry PI GPIO and several sensors.
This slides show how to program using Python language.
사물인터넷 DIY 방과후 학교 교육 키트는 부엉이 로봇을 활용한 사물인터넷 체험 창작용 키트입니다. 오프소스인 쉬운 개방형 스크래치를 사용한 수준별 학습 테마로 구성되어 있으며 여러가지 실습을 통해 소프트웨어에 대해 이해할 수 있는 학습을 제공합니다.
교육 키트는 라즈베리 파이 기반으로 동작되며 리눅스의 X-Window 기반으로 스크래치를 사용하여 교육이 진행됩니다. 부엉이 로봇 교육 키트의 특징은 아래와 같습니다.
쉬운 개방형 스크래치를 사용한 수준별 학습 테마
빛과 소리 그리고 움직임을 만드는 실습
모터와 LED, 다양한 센서를 실습할 수 있도록 구성
기본 원리에 상상하기를 더한 DIY 창작활동
실습을 통한 센서부, 구동부, 통신부 이해
오픈 소스인 스크래치 사용으로 쉽게 소프트웨어와 친숙한 환경 제공
Presentation from #andevcon by Anna Schaller
Peter van der Linden, Android Technology Evangelists from the Developer Platforms and Services team at Motorola Mobility. More info at http://developer.motorola.com
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)Tae Young Lee
파이썬 데이터과학 - 기초 과정(1일차)
- 데이터분석, 데이터시각화
- jupyter notebook, numpy, pandas, matplotlib, seaborn
2차 과정은 따로 올리겠습니다.
문의 및 제안 : se2n@naver.com
데이터 소스 : https://github.com/sh2orc/datascience
소프트박스(softbox) 제품 소개 & 퀵스타트 가이드
소프트박스 교육도구는 주변환경과 밀접한 7종의 센서입력부와 센서에서 얻은 데이터를 처리하는 제어통신부, 데이터를 분석하여 제어할 수 있는 5종의 구동출력부를 인쇄회로기판(PCB) 위에 견고하게 모아 제작한 피지컬 아두이노 소프트웨어 교육도구입니다.
소프트박스는 가장 기본적인 “아두이노 피지컬 소프트웨어 교육도구”로서 학생들과 일반인이 처음으로 소프트웨어를 배우기에 적합한 도구입니다. 기본 교육 과정을 마치면 수준에 따른 프로젝트를 진행하게 되는데 이러한 프로젝트를 통해 창의적인 아이디어를 소프트웨어로 구현하는 과정을 배우도록 하는 것이 바로 “프로젝트 실습에 따른 코딩교육”이며 프로젝트를 실행하기 위한 다양한 소스코드와 메이커 활동에 필요한 콘텐츠를 제공합니다.
7. Arduino vs. Raspberry Pi
Micro Controller
No
Micro Computer
Yes
성격
리눅스
C
C, C++, Java, Python,
Node.JS, Ruby ...
개발 언어
No Yes카메라
Limit Yes무선환경
8. Raspberry Pi
Name
Raspberry Pi
Model A+
Raspberry Pi
Model B+
Raspberry Pi2
Model B
Raspberry Pi
Zero
Raspberry Pi 3
Model
Price $20 $35 $5 $35
Processor ARM 11
ARM
Cortex A7
ARM 11
ARM
Coretex-A53
Clock Speed 700Mhz 900Mhz 1Ghz 1.2Ghz
RAM 256MB 512MB 1GB 512MB 1GB
Multi Core Single Quad Single Quad
Flash Micro SD Card
GPIO 40
Ethernet N/A 10/100 N/A 10/100
USB USB 2.0X1 USB 2.0X4 Micro 1 USB 2.0X4
Power 5V, 200mA 5V, 600mA 5V, 800mA 5V, 160mA N/A
Video Out HDMI, Composite Mini-HDMI
HDMI,
Composite
Audio Out HDMI, Analog Mini-HDMI HDMI, Analog
Wi-Fi 모듈
블루투스 지원
10. Circulus Architecture
Core Engine
API Gateway
M2M Controller
Cloud Storage
CirculOS
Intelligence Agent
Circulus
App
Circulus
Web
Data Processing
H2H Controller
모바일부터 하드웨어까지. IoT 개발 학습/제작 클라우드 플랫폼
복잡한 IoT 지식 없이, 생각을 다양한 API를 사용하여 손쉽게 구현 가능
11. One JavaScript - Multi Use
JavaScript (+Node.JS) 만으로 모바일 부터 하드웨어 개발까지 구현
IoT 서비스 제작/배포 지원 솔루션
19. JavaScript 기초
1. 모듈 추가하기(어떤 기능을 가지고 있는 모음)
var wpi = require('wiring-pi');
2. 변수 선언하기(변수: 값을 담아두는 상자)
var val = 10;
3. 출력문 만들기
console.log(“Hello, Raspberry Pi”);
var num = 10;
console.log(“저는 ” + num + “살 입니다.”);
20. var isOn = 1;
setInterval(function(){
wpi.digitalWrite(pin, isOn);
isOn = +!isOn;
}, 1000);
Javascript 기초
4. 주기적으로 반복하기
if(a >= b)
return a;
5. 조건문 사용하기
While(a == true)
console.log(“true”);
6. 반복문 사용하기
22. GPIO(General Purpose Input/Output) 사용하기
- GPIO란? 신호를 보내거나 받을 수 있는 핀
- 센서나 외부 장치들과 정보를 주고 받음, BCM번호로 각 핀에게 명령을 내림
- 라즈베리파이의 GPIO는 입-출력 외에 또 다른 역할을 하는 핀들이 있음
GROUND : 0V
GPIO_XX : ~3.3V
3.3V : 3.3V
5V : 5V
BCM 번호
(각 핀의 일반 적인 이름)
추가 기능을 가진 핀
23. Wiring-pi 사용하기
- GPIO를 사용하는 기능을 모아 둔 모음집 중 하나
- 아두이노와의 연계를 위해 새롭게 핀 번호를 지정
- Wiring-pi의 기능을 사용하는 경우는 Wiring-pi의 이름(핀번호)을 사용해야 함
15
16
1
4
5
6
10
11
26
27
28
29
8
9
7
0
2
3
12
13
14
21
22
23
24
25
26. LED ON
//circulus 모듈 추가
var us = require(‘circulus’);
//GPIO 초기화
us.initLED(23);
//LED 설정 (true = ON, false = OFF)
us.setLED(true);
LED를 켜보자!
GROUND
GPIO23
27. LED ON/OFF
//circulus 모듈 추가
var us = require(‘circulus’);
//LED 초기화
us.initLED(23);
//LED 설정 (ture = ON, false = OFF)
var isOn = 1;
setInterval(function(){
us.setLED(isOn);
isOn = +!isOn;
}, 1000);
1초에 한 번씩 LED가 ON/OFF되도록 해보자!
GROUND
GPIO23
31. 초음파 센서 거리 측정하기
// circulus 모듈 추가
var us = require(‘circulus');
// 초음파 센서 초기화
// initDistance (TRIG, ECHO);
us.initDistance(15, 14);
// 1초에 한 번씩 거리 측정
setInterval(function(){
var dist = us.getDistance();
console.log(‘distance: ’+dist+’cm’);
}, 1000);
5V
GROUND
GPIO14
GPIO15
1초에 한 번씩 장애물과의 거리를 측정해보자!
33. 응용!
// circulus 모듈 추가
var us = require('circulus');
us.initDistance(15, 14);
us.initLED(23);
setInterval(function(){
var dist = us.getDistance();
console.log(‘distance: ’+dist+’cm’);
if(dist < 5)
us.setLED(true);
else
us.setLED(false);
}, 1000);
5cm 안에 장애물이 있으면 LED에 불을 켜자!
37. 초음파 센서 거리 측정하기
//circulus 모듈 추가
var us = require(‘circulus’);
// Segment 초기화
us.initText();
//글자 출력
us.setText('piau');
//1초에 한 번씩 다른 숫자 출력
// 정수.toString() = 정수를 문자열로 변경함 ex) 1 ‘1’
var i = 0;
setInterval(function(){
us.setText(i.toString() + i.toString() + i.toString() + i.toString());
i++;
if(i === 10)
i = 0;
}, 1000);
글자와 숫자를 출력해보자!
40. 온습도 센서
//circulus 모듈 추가
Var us = require(‘circulus);
// GPIO 값 초기화
// 가운데 data핀의 BCM 핀 번호 사용
us.initTemp(21);
//1초에 한번씩 온도, 습도 값 출력
setInterval(function(){
console.log(us.getTemp());
},1000);
1초에 한 번씩 온도와 습도를 측정해보자!
5V
GROUND
GPIO21
46. Socket 통신
var data = ‘hello’;
us.send (‘KEY’, data);
JavaScript JavaScript
Send/Receive
us.receive(‘KEY,’ function(data){
/* 수행하고 싶은 내용 */
console.log(data);
});
## hello
us.receive(‘KEY,’ function(data){
/* 수행하고 싶은 내용 */
});
us.send(‘KEY’, data);
리모컨
HTML
[Internet]
[라즈베리파이]
47. CASE 1 (LED ON/OFF)
//HTML파일에서의 각 버튼을 클릭하면 호출
$('#ledon').click(function(){
us.send('ledon');
});
$('#ledoff').click(function(){
us.send('ledoff');
});
var us = require('circulus');
us.receive('ledon', function(data){
console.log(‘ledon receive’);
us.initLED(23);
us.setLED(true);
});
us.receive('ledoff', function(data){
console.log(‘ledoff receive’);
us.initLED(23);
us.setLED(false);
});
Remote Controller (index.js) Raspberry Pi (index.js)
리모컨에서 라즈베리파이로 명령 전달
48. CASE 2(초음파 센서 거리 출력)
$('#ultra').click(function(){
us.send('ultra');
});
// HTML 파일에서 span id = ‘distance’에 출력함
us.receive('distance', function(data){
$('#distance').text(data);
});
us.receive('ultra', function(data){
console.log(‘ultra receive’);
us.initDistance(15, 14);
var dist = Math.floor(us.getDistance());
us.send('distance', dist);
console.log(dist + ‘ cm’);
});
Remote Controller (index.js) Raspberry Pi (index.js)
리모컨에서 라즈베리파이로 명령 전달 + 응답 수신
49. us.receive('temp', function(data){
console.log(‘temp receive’);
us.initTemp(21);
var tempinfo = us.getTemp();
console.log(tempinfo.temperature);
us.send('tempinfo', tempinfo.temperature);
});
us.receive('humi', function(data){
console.log(‘humi receive);
us.initTemp(21);
var humi = us.getTemp();
console.log(humi.humidity);
us.send('humiinfo', humi.humidity);
CASE 2(온/습도 출력)
$('#temp').click(function(){
us.send('temp');
});
us.receive('tempinfo', function(data){
$('#tempinfo').text(data);
});
$('#humi').click(function(){
us.send('humi');
});
us.receive('humiinfo', function(data){
$('#humiinfo').text(data);
});
Remote Controller (index.js) Raspberry Pi (index.js)
리모컨에서 라즈베리파이로 명령 전달 + 응답 수신
50. 리모컨에서 명령 없이, 라즈베리파이의 응답만 수신
us.initText();
var i = 0;
setInterval(function(){
us.setText(i.toString() + i.toString() + i.toString() +
i.toString(), true, false, false, true);
var text = i.toString() + i.toString() + i.toString() +
i.toString();
i++;
if(i == 10)
i = 0;
console.log(text);
us.send('segment', text);
}, 1000);
세그먼트 출력
us.receive('segment', function(data){
$('#segment').text(data);
});
Remote Controller (index.js) Raspberry Pi (index.js)
54. 메이킹 과정
아이디어
서비스 기획
프로토 타이핑
하드웨어 구성
소프트웨어 구성
3D 프린팅
결과 공유
만들고자 하는 아이디어를 떠올리는 단계이다.
아이디어를 서비스로 구체화 한다. 이 단계에서는 보여질 모습 뿐만 아니라,
보이지는 않지만 사용자에게 어떤 가치를 제공할지도 염두 해 둔다.
블록 등으로 만들어질 하드웨어 모습을 구성해 보고, 이를 사용할 모바일 어
플리케이션이 있다면 종이에 그 이미지를 구성해 본다.
오픈소스 하드웨어로 만들고자 한 내용을 구성해 본다. 프로토 타이핑및 최
종적으로 보여질 외관을 고려하여 센서 및 각종 하드웨어의 배치도 고려한다.
하드웨어를 제어할 소프트웨어와 리모콘 용도로 사용될 소프트웨어, 그리고
서비스 제공을 위한 소프트웨어를 구성한다.
Making 한 제품의 외관과 인쇄 가능 한 부속들을 3D 모델링하고, 결과물을
3D 프린팅하여 하드웨어를 최종 완성한다.
제품을 완성하여 외부에 공개한다. 만일 판매를 목적으로 한 제품이라면 소
셜 펀딩을 이용하여 판매 가능성을 확인해 본다.
59. LED
// wiring-pi 함수를 사용할 수 있도록 초기화
var wpi = require('wiring-pi');
wpi.setup('gpio');
wpi.wiringPiSetup();
// wiringpi맵 핀 번호 사용
var pin = 4;
// 출력 모드로 설정 (전류) pin(4) --> LED --> GND
wpi.pinMode(pin, wpi.OUTPUT);
// LED ON
var isOn = 1;
wpi.digitalWrite(pin, isOn);
LED ON
var wpi = require('wiring-pi');
wpi.setup('gpio');
wpi.wiringPiSetup();
var pin = 4;
wpi.pinMode(pin, wpi.OUTPUT);
var isOn = 1;
// 1초 주기로 LED ON/OFF
setInterval(function(){
wpi.digitalWrite(pin, isOn);
isOn = +!isOn;
}, 1000);
1초에 한 번씩 LED ON/OFF
60. LED
// wiring-pi 함수를 사용할 수 있도록 초기화
var wpi = require('wiring-pi');
wpi.setup('gpio');
wpi.wiringPiSetup();
// wiringpi맵 핀 번호 사용
var pin = 4;
// 출력 모드로 설정 (전류) pin(4) --> LED --> GND
wpi.pinMode(pin, wpi.OUTPUT);
// LED ON
var isOn = 1;
wpi.digitalWrite(pin, isOn);
LED ON
var wpi = require('wiring-pi');
wpi.setup('gpio');
wpi.wiringPiSetup();
var pin = 4;
wpi.pinMode(pin, wpi.OUTPUT);
var isOn = 1;
// 1초 주기로 LED ON/OFF
setInterval(function(){
wpi.digitalWrite(pin, isOn);
isOn = +!isOn;
}, 1000);
1초에 한 번씩 LED ON/OFF
61. 초음파 센서로 거리 측정하기
var wpi = require('wiring-pi');
var sleep = require('sleep');
var microtime = require('microtime');
var TRIG, ECHO;
TRIG = 16; // Wiring-pi MAP 기준, 핀 번호
ECHO = 15; // Wiring-pi MAP 기준, 핀 번호
wpi.setup('gpio');
wpi.wiringPiSetup();
// TRIG: 보내는 핀 (출력)
wpi.pinMode(TRIG, wpi.OUTPUT);
// ECHO: 받는 핀 (입력)
wpi.pinMode(ECHO, wpi.INPUT);
// 초음파 센서 거리 구하는 공식
setInterval(function(){
var cnt1 = 0;
var cnt2 = 0;
wpi.digitalWrite(TRIG, wpi.LOW);
sleep.usleep(2);
wpi.digitalWrite(TRIG, wpi.HIGH);
sleep.usleep(20);
wpi.digitalWrite(TRIG, wpi.LOW);
while(wpi.digitalRead(ECHO) == wpi.LOW)
{
if(cnt1++ > 1000)
break;
}
var startTime = microtime.now();
while(wpi.digitalRead(ECHO) == wpi.HIGH)
{
if(cnt2++ > 10000)
break;
}
var endTime = microtime.now();
// Cm로 변환
var distance = (endTime - startTime) / 58;
console.log('distance ' + distance);
}, 1000);
62. 7-Segment 연결하기
startup 동작 모드 시작
setDecodeNone Bit 단위의 데이터로 보여줌
setDedcodeAll 인코딩하여 보여줌 (“0”~”9”, “E”, “H”, “L”, “P”, “-”, “ ”만)
setDigitSegments Bit단위로 계산하여 정보를 표시(setDecodeNone)
setDigitSymbol 인코딩 가능한 값만 정보를 표시(setDecodeAll)
setScanLimit 화면에 출력할 글자 개수 제한 (MAX: 8)
setDisplayIntensity 화면 밝기 제한(MAX : 15)
63. 7-Segment 출력하기
// max7219 패키지 초기화
var MAX7219 = require('max7219');
/*
* spidev 사용 초기화 - 라즈베리파이에서 SPI활성화 필
요
* 세그먼트의 Chip Select를 CE0에 연결하면,
* /dev/spidev0.0, CE1에 연결하면 /dev/spidev0.1
* console창에 ls /dev/*spi*로 확인 가능
*/
var disp = new MAX7219("/dev/spidev0.0");
// 세그먼트 초기화
// 해독하지 않는 모드 - 7 segment 각각의 led를 선택함
disp.setDecodeNone();
// 사용하는 세그먼트 수 (8개까지 지원)
disp.setScanLimit(8);
disp.startup();
// 밝기 0-15 (0으로 입력해도 꺼지지는 않음)
disp.setDisplayIntensity(15
// 출력
// setDigitSegments (세그먼트 번호, [7개의 led, 아래
점 1(ON), 0(OFF)]);
disp.setDigitSegments(0, [0, 0, 0, 0, 1, 1, 0, 1]);
disp.setDigitSegments(1, [1, 0, 1, 1, 0, 1, 1, 1]);
disp.setDigitSegments(2, [1, 0, 0, 1, 1, 1, 1, 1]);
disp.setDigitSegments(3, [0, 1, 0, 0, 1, 1, 0, 1]);
DigitSegments 방식 출력하기
64. 7-Segment에 출력하기
//max7219 패키지 초기화
var MAX7219 = require('max7219');
var disp = new MAX7219("/dev/spidev0.0");
//세그먼트 초기화
// 해독하는 모드 세그먼트의 led를 각각 제어하지 않고, 숫자 혹은 출력 가능한 문자를 입력한다.
disp.setDecodeAll();
disp.setScanLimit(8);
disp.startup();
disp.setDisplayIntensity(15);
// 출력
// 사용할 수 있는 값은 0 - 9, ‘H’, ‘E’, ‘L’, ‘P’, ‘-’, ‘ ‘이다
disp.setDigitSymbol(0, "H", true);
disp.setDigitSymbol(1, 2);
disp.setDigitSymbol(2, "L");
disp.setDigitSymbol(3, "-", true);
DigitSymbol 방식 출력하기
65. 온습도 센서
//DHT11 패키지 초기화
Var dht = require('node-dht-sensor');
//핀 번호 초기화
dht.initialize(11, 21); // dht.initialize (온도센서 버전-11번 (DHT11), 핀 번호);
//1초에 한 번씩 온도와 습도 값 읽기
setInterval(function(){
var dt = dht.read(); // 읽어오기
console.log ('Temp: '+ dht.temp....);
console.log ('Humd: '+ dht.humd....);
}, 1000);
1초에 한 번씩 온도, 습도 출력하기
74. W www.circul.us G group.circul.us
S social.circul.us C cafe.circul.us
CONTACT.US circulus@circul.us
EXPAND YOUR DIMENSION
생각에 머무는 THINKER 에서
직접 만드는 MAKER 시대
CIRCULUS 가 함께 합니다
SINCE 2013