고급 예제

다양한 도구들을 가지고 마음껏 응용해보세요.

라즈베리 파이-Node.js 설치

2015-07-20 11:28:57

개요

이번글 에서는 라즈베리파이에 Node.js를 설치해보겠습니다.

최근에 뜨고있는 언어로 Node.js가 있는데

Node.js란 

Node.js는 확정성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼으로 자바스크립트 기반의 언어이며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있습니다.

대부분의 자바스크립트 언어가 웹 브라우저에서 실행되는 것과는 달리 Node.js는 서버 측에서 실행된다는 특징이 있습니다. 

 

이 같은 특징 때문에 호스트 컴퓨터의 하드웨어 입출력 핀(GPIO)에 신호를 입출력할 수 있는 기능도 갖추고 있습니다.

이 기능을 활용하여 라즈베리파이의 GPIO핀에 연결된 LED를 깜빡여 보겠습니다.

 

 

Node.js설치하기

 

라즈베리파이에 설치하는 방법은 언제나 그렇듯 명령어 몇 줄을 작성함으로 설치가 가능합니다.

Node.js역시 간단하게 4줄을 작성함으로써 설치가 가능합니다.

 

라즈베리파이에 설치하는 방법은 언제나 그렇듯 명령어 몇 줄을 작성함으로 설치가 가능합니다.

Node.js역시 간단하게 4줄을 작성함으로써 설치가 가능합니다.

 

$ cd ~
$ sudo apt-get update && upgrade

$ sudo dpkg -i node_latest_armhf.deb

 

 

위의 과정을 걸쳐서 설치가 끝나면 아래의 명령어로 설치가 제대로 되었는지 확인이 가능합니다.

아래 명령어를 쳤을 때 버전 정보가 나온다면 제대로 설치가 완료된 것입니다.

 

$node -v

 

 

 

여기까지 설치가 끝났다면 라즈베리파에서 Node.js로 GPIO핀을 제어하기 위한 Onoff패키지를 계속 진행합니다.

 

$git clone git://github.com/quick2wire/quick2wire-gpio-admin.git ~/gpio-admin && cd ~/gpio-admin
$make 
$sudo make install
$sudo adduser pi gpio
$exec su -l pi 
$npm install onoff

 

Onoff패키지까지 설치가 끝났다면 이제는 Node.js를 사용하여 LED를 제어할 수 있습니다.

 

 

하드웨어 making

 

 

 

소프트웨어 coding

 

var GPIO = require('onoff').Gpio,
    led = new GPIO(18, 'out'),
    button = new GPIO(17, 'in', 'both');

function light(err, state) {
  if (state == 1) {
    led.writeSync(1);
    console.log('on');
  }
  else {
    led.writeSync(0);
    console.log('off');
  }
}

console.log('start');
button.watch(light);

 

위 소스는 Node.js로 작성한 소스로 state 상태에 따라 LED가 켜고 꺼지게 됩니다.

 

17번 핀에 연결된 button의 상태에 따라 watch에서는 button의 상태의 변화에 따라 state값을 받게 됩니다. 

state가 1일 경우에는 on이라는 문구를 띄우면서 led가 HIGH상태(켜지는 상태)가 되고 state가 0일 경우에는 off라는 문구를 띄우면서 led는 LOW상태(꺼지는 상태)가 됩니다.

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

라즈베리파이, Node.js, 기타