Gulp with Raspberry Pi
17124 단어 RaspberryPi자바스크립트gulpNode.js
Gulp with Raspberry Pi
Gulp 알림에 Raspberry Pi L 치카를 사용하십시오
소개
Gulp로 통지를 내고 싶을 때는 gulp-notify등이 사용된다고 생각합니다만,
Raspberry Pi로 프런트 엔드 개발을 할 때 L치카로 대용할 수 없는가 하고 생각해 보기로 했습니다.
환경
Raspberry Pi 3
L 치카 키트 (LED, 저항, 듀폰 케이블, 브레드 보드)
다음은 Raspberry Pi에서 OS와 같은 설정이 끝났다고 가정합니다.
노드 설치
Gulp와 연계하기 위해, 우선은 node를 인스톨.
여기서는 LXTerminal에서 nvm을 사용합니다.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
nvm install node
gulp 설치
다음 gulp를 설치.
npm install --global gulp-cli
npm install --save-dev gulp
gulp-babel, gulp-plumber 설치
babel의 빌드 에러를 검지하는 가정으로 gulp-babel과 gulp-plumber를 인스톨.
npm install --save-dev gulp-babel babel-preset-env
npm install --save-dev gulp-plumber
여기까지는 다른 환경에서 하는 경우와 다르지 않다고 생각합니다.
gulpfile 준비
gulpfile.jsconst gulp = require("gulp");
const babel = require("gulp-babel");
const plumber = require("gulp-plumber");
gulp.task("build", () => {
let is_success = true;
gulp.src("./scripts/*.js")
.pipe(plumber({
errorHandler: (err) => {
console.log("err");
is_success = false;
}
}))
.on('end', () => {
if (is_success) {
console.log("success");
}
})
.pipe(babel());
});
빌드의 성공 여부로 나눌 수 있도록 해 둡니다.
L치카 by node.js
L 치카하기 위해 node.js에서 GPIO에 액세스합니다.
여기서는
・빌드 에러시에는 GPIO#4에 접속한 적색의 LED
· 빌드 성공시 GPIO # 26에 연결된 청색 LED
을 각각 5초 동안 켭니다.
gulpfile.jsconst gulp = require("gulp");
const babel = require("gulp-babel");
const plumber = require("gulp-plumber");
const fs = require("fs");
const path = require("path");
const dir = "/sys/class/gpio/";
const pin_error = 4;
const pin_success = 26;
const gpio_error = path.join(dir, `gpio${pin_error}`);
const gpio_success = path.join(dir, `gpio${pin_success}`);
fs.writeFileSync(path.join(dir, "export"), pin_error);
fs.writeFileSync(path.join(dir, "export"), pin_success);
gulp.task("build", () => {
let is_success = true;
gulp.src("./scripts/*.js")
.pipe(plumber({
errorHandler: (err) => {
console.log("err");
is_success = false;
//console.log(err);
fs.writeFileSync(path.join(gpio_error, "direction"), "out");
fs.writeFileSync(path.join(gpio_error, "value"), 1);
setTimeout(() => {
fs.writeFileSync(path.join(gpio_error, "value"), 0);
fs.writeFileSync(path.join(dir, "unexport"), pin_error);
fs.writeFileSync(path.join(dir, "unexport"), pin_success);
}, 5000);
}
}))
.on('end', () => {
if (is_success) {
console.log("success");
fs.writeFileSync(path.join(gpio_success, "direction"), "out");
fs.writeFileSync(path.join(gpio_success, "value"), 1);
setTimeout(() => {
fs.writeFileSync(path.join(gpio_success, "value"), 0);
fs.writeFileSync(path.join(dir, "unexport"), pin_error);
fs.writeFileSync(path.join(dir, "unexport"), pin_success);
}, 5000);
}
})
.pipe(babel());
});
장황한 곳이 있을지도 모르지만, 알기 쉬움 우선으로 기술하고 있습니다.
회로
준비가 되었으므로 실제로 시도해 보겠습니다.
오류시
구문 오류가 있는 적절한 JS 파일을 준비합니다.
./scripts/sample.jsconsole.log("test";
gulp build
정지영상으로 죄송합니다만, 적색 LED가 빛나고 있습니다.
빌드 성공시
계속해서 에러를 해소해 실행해 보겠습니다.
./scripts/sample.jsconsole.log("test");
gulp build
무사히 빌드가 성공해 청색의 LED가 빛났습니다!
요약
L치카를 다른 것에 대용하는 것으로 여러가지 할 수 있을 것 같습니다.
삶은 때의 기분 전환에 사용할 수 있으면 좋을 것 같다고 생각했습니다.
Reference
이 문제에 관하여(Gulp with Raspberry Pi), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yuuinaka/items/ad7f52a9c2d3a62cfbe1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
nvm install node
npm install --global gulp-cli
npm install --save-dev gulp
npm install --save-dev gulp-babel babel-preset-env
npm install --save-dev gulp-plumber
const gulp = require("gulp");
const babel = require("gulp-babel");
const plumber = require("gulp-plumber");
gulp.task("build", () => {
let is_success = true;
gulp.src("./scripts/*.js")
.pipe(plumber({
errorHandler: (err) => {
console.log("err");
is_success = false;
}
}))
.on('end', () => {
if (is_success) {
console.log("success");
}
})
.pipe(babel());
});
const gulp = require("gulp");
const babel = require("gulp-babel");
const plumber = require("gulp-plumber");
const fs = require("fs");
const path = require("path");
const dir = "/sys/class/gpio/";
const pin_error = 4;
const pin_success = 26;
const gpio_error = path.join(dir, `gpio${pin_error}`);
const gpio_success = path.join(dir, `gpio${pin_success}`);
fs.writeFileSync(path.join(dir, "export"), pin_error);
fs.writeFileSync(path.join(dir, "export"), pin_success);
gulp.task("build", () => {
let is_success = true;
gulp.src("./scripts/*.js")
.pipe(plumber({
errorHandler: (err) => {
console.log("err");
is_success = false;
//console.log(err);
fs.writeFileSync(path.join(gpio_error, "direction"), "out");
fs.writeFileSync(path.join(gpio_error, "value"), 1);
setTimeout(() => {
fs.writeFileSync(path.join(gpio_error, "value"), 0);
fs.writeFileSync(path.join(dir, "unexport"), pin_error);
fs.writeFileSync(path.join(dir, "unexport"), pin_success);
}, 5000);
}
}))
.on('end', () => {
if (is_success) {
console.log("success");
fs.writeFileSync(path.join(gpio_success, "direction"), "out");
fs.writeFileSync(path.join(gpio_success, "value"), 1);
setTimeout(() => {
fs.writeFileSync(path.join(gpio_success, "value"), 0);
fs.writeFileSync(path.join(dir, "unexport"), pin_error);
fs.writeFileSync(path.join(dir, "unexport"), pin_success);
}, 5000);
}
})
.pipe(babel());
});
console.log("test";
gulp build
console.log("test");
gulp build
Reference
이 문제에 관하여(Gulp with Raspberry Pi), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuuinaka/items/ad7f52a9c2d3a62cfbe1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)