BPI-M2 ZERO - node.js

OS/Banana Pi /BPI-Bit 2017.12.23 10:11 Posted by 파란크리스마스

출처 : orange-pi-gpio - npm
GitHub - BorisKotlyarov/orange-pi-gpio
Arduino Slovakia - Orange Pi Zero and Node.js

node.js 6.X 설치

$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install -y nodejs

node.js 8.X 설치

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

node.js 설치 확인

$ node -v
v8.9.3
$ npm -v
5.5.1

node-gyp 패키지 설치

$ sudo npm install -g node-gyp

orange-pi-gpio 라이브러리 설치

출처 : GitHub - BorisKotlyarov/orange-pi-gpio

BananaPI node.js용 GPIO 제어 라이브러리(andyhu/node-wiring-bpi)를 컴파일 해보았지만 컴파일 오류로 OrangePI용으로 받아서 실행 했으며, OrangePI 용도 단순하게 콘솔 커멘드를 실행해서 GPIO제어 하는 방법으로 BananaPI에서도 정상적으로 동작함

$ sudo npm i orange-pi-gpio
npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json'
npm WARN pi No description
npm WARN pi No repository field.
npm WARN pi No README data
npm WARN pi No license field.
 
+ orange-pi-gpio@1.0.2
added 1 package in 4.444s

LED 제어

소스

const Gpio = require('orange-pi-gpio');

let gpio25 = new Gpio({pin:25, mode: 'out', ready: ()=>{
    let value = 1;

    setInterval(function() {
        process.stdout.write('\x1B[2J\x1B[0f\u001b[0;0H');

        if(value){
            console.log('\x1b[32m%s\x1b[0m', `ON`);
        } else {
            console.log('\x1b[31m%s\x1b[0m', `OFF`);
        }
        
        gpio25.write(value);
        value = +!value;
    }, 50);

}});

실행

$ node LEDDemo.js 



 

티스토리 툴바