- 필요한 재료
- Raspberry Pi에 Node.js 설치
- Node.js를 사용하여 LED 깜박임
- Node.js LED 깜박임 스크립트 및 설명
- Node.js를 사용하여 LED를 깜박이는 회로도
- 라즈베리 파이
이전 Raspberry Pi 자습서에서 우리는 Python, 임베디드 C, Flask 등을 포함하여 Raspberry Pi를 제어하기 위해 다양한 프로그래밍 언어와 소프트웨어를 사용했습니다. 강력한 Raspberry Pi 보드의 지평을 넓히기 위해 오늘은 매우 인기있는 JavaScript 기반 환경 (노드.js)를 사용하여 Raspberry Pi GPIO를 웹 서버로 설정하여 로컬 및 전역으로 제어합니다. 처음에는 Node.js가 Google Chrome 용으로 개발되었지만 나중에 Google에서 오픈 소스로 제공했습니다.
이 튜토리얼에서는 두 가지 방법을 사용하여 Raspberry Pi에 연결된 LED를 제어합니다.
- 먼저 Node.js를 사용하여 LED를 깜박이는 JavaScript 코드를 작성합니다.
- 두 번째 방법에서는 LED를 켜고 끄는 두 개의 버튼이 있는 HTML 페이지를 만듭니다. 이 HTML 웹 페이지는 라즈베리 파이에서 호스팅되며 모든 웹 브라우저에서 열 수 있습니다. 따라서 여기에서 Raspberry Pi는 웹 서버 역할을합니다.
필요한 재료
- Raspbian이 설치된 Raspberry Pi 보드
- LED
이 튜토리얼에서는 HDMI 케이블을 사용하여 외부 모니터를 사용하여 Raspberry Pi에 연결합니다. 모니터가없는 경우 SSH 클라이언트 (Putty) 또는 VNC 서버를 사용하여 랩톱 또는 컴퓨터를 사용하여 Raspberry pi에 연결할 수 있습니다. 어려움이있는 경우 Raspberry Pi 가이드 시작하기를 따르십시오.
Raspberry Pi에 Node.js 설치
다음 명령을 사용하여 보드에 Node.js를 설치합니다.
1 단계: 먼저이 명령을 사용하여 라즈베리 파이 보드의 암 버전을 확인합니다.
uname -m
제 경우 버전은 7입니다.
2 단계: 이 링크를 터미널에 복사하여 설치 프로그램을 다운로드합니다. 아래 링크에서 버전을 변경하는 것을 잊지 마십시오.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
단계 3:- 아래 명령을 사용하여 파일 압축을 풉니 다.
tar -xvf node-v4.6.1-linux-armvl.tar.gz
4 단계: 마지막으로이 명령을 실행하여 중요한 파일을 로컬 디렉토리에도 추가합니다.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
이제 Node.js가 Raspberry Pi에 설치되었습니다. 이 명령을 사용하여 확인을 위해 노드 버전을 확인하십시오.
노드 – 버전
Node.js 서버를 만들기 전에 먼저 node.js (npm onoff 패키지)를 사용하여 LED를 깜박이는 스크립트를 작성하는 방법을 살펴 보겠습니다.
Node.js를 사용하여 LED 깜박임
Node.js를 사용하여 Raspberry Pi에서 GPIO를 제어하기 위해 onoff 모듈 을 사용 합니다.
우리가 사용하는 NPM 패키지 관리자를 명령 아래 사용하여 모듈 ONOFF 설치
npm 설치 onoff
이제 LED가 깜박이는 스크립트를 작성합니다. nano 편집기를 열고 명령을 사용하여 파일에 이름을 지정하십시오.
나노 blink_led.js
Node.js의 초보자이고 패키지 인 경우 스크립트를 더 잘 이해하기 위해 npm 문서를 참조 할 수 있습니다.
Node.js LED 깜박임 스크립트 및 설명
먼저 led, delay 및 GPIO에 대한 변수를 선언하십시오. Raspberry Pi GPIO 4를 사용하여 LED를 연결하고 있습니다.
var Gpio = require ('onoff'). Gpio; var LED = new Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
이제 우리는 깜박임을 시작 하는 기능을 만들 것 입니다.
function blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // 출력을 1로 설정 ie 켜짐} else {LED.writeSync (0); // 출력을 0으로 설정, 즉 LED 끄기 }}
마찬가지로 깜박임을 멈추는 기능을 만드십시오.
function endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // 리소스를 해제하기 위해 GPIO 내보내기 해제} setTimeout (endBlink, 10000);
LED 깜박임에 대한 전체 Node.js 코드 는이 튜토리얼 의 끝에 제공됩니다. 따라서 이전에 nano 명령을 사용하여 만든 led_blink.js 파일에 코드를 복사하여 붙여넣고 Ctrl + x를 사용하여 파일을 저장 한 다음 Y 를 누르고 Enter 키 를 누릅니다.
스크립트를 실행하려면 터미널을 열고 아래 명령을 입력하십시오.
노드 blink_led.js
LED가 10 초 동안 깜박이고 그 후에는 깜박임을 멈 춥니 다. 이 튜토리얼의 끝에 주어진 비디오에서 전체 작업을 확인하십시오.
Node.js를 사용하여 LED를 깜박이는 회로도
라즈베리 파이
이제 흥미로운 부분으로 오십시오. 여기 에서는 웹 페이지를 사용하여 Raspberry pi의 GPIO를 제어 할 수있는 자체 웹 서버 를 만들 것 입니다.
이를 위해 먼저 HTML 페이지를 만들고 RPi GPIO를 제어하는 백엔드 작업을 수행하는 스크립트를 작성해야합니다.
1 단계: 모든 파일을 한 곳에 저장할 디렉토리를 만듭니다.
mkdir nodejs_server
2 단계: -nodejs_server 폴더 안에 HTML 파일을 저장할 폴더를 하나 더 만듭니다.
cd nodejs_server mkdir보기
3 단계: -html 페이지에 이미지를 추가 하려면 주 디렉토리, 즉 nodejs_server 폴더 에 public 이라는 다른 폴더 를 만들어야 합니다. 공용 폴더에서 이미지 폴더를 만들고이 폴더에 모든 이미지를 저장합니다.
4 단계: 이제 HTML 페이지를 만들겠습니다. 이를 위해 view 디렉토리 로 이동하여 파일 이름 index.ejs로 nano 텍스트 편집기를 엽니 다.
스크립트에는 멋진 것이 없습니다. 단지이다 켜기 및 끄기 버튼을 만들기 위해 HTML 파일.
나노 텍스트 편집기 에 아래 HTML 코드를 복사하여 붙여넣고 저장합니다.
Nodejs 서버에 오신 것을 환영합니다
LED 상태: <% = status %>5 단계: 이제 JavaScript 코드를 작성해야합니다. 사용자가 수행 한 http 요청에 응답하기 위해 노드 익스프레스 프레임 워크를 사용하고 있습니다.
링크를 따라 가면 Node Express에 대해 자세히 알아볼 수 있습니다.
터미널을 열고 nodejs_server 폴더에 index.js 파일명이있는 nano 텍스트 편집기를 연 다음 아래 자바 스크립트 코드와이 파일을 복사하여 붙여 넣습니다.
var express = require ('express'); var app = express (); var path = require ('path'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('view engine', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index',{status: "Led is On"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('Server Started on Port: 3000!') })
6 단계: nodejs_server 디렉토리 내에서 node.js의 라이브러리 를 설치 하려면 다음 명령을 실행해야합니다.
npm 설치
7 단계: 이제 서버가 작동 할 준비가되었습니다. 로컬 서버를 시작하려면 nodejs_server 디렉토리 에서 다음 명령을 실행하십시오.
노드 index.js
정의 된 포트에서 서버가 시작되었다는 메시지가 터미널에 표시됩니다.
8 단계:- 이제 브라우저를 열고 포트 번호 (예: raspberrypi: 3000)로 Raspberry Pi URL을 엽니 다 .
브라우저를 여는 라즈베리 파이와 노트북이 동일한 네트워크에 연결되어 있는지 확인하십시오.
브라우저에 다음 페이지가 표시됩니다.
이제 LED On 버튼을 누르면 LED 가 켜지고 LED Off 버튼을 누르면 LED 가 꺼집니다.