이번엔 버튼의 값을 웹브라우져로 보내 보도록 하겠습니다.
결국 어떤 값들을 스트림 개념으로 이해하고 파이프로 연결해서 내보낼 수 있음으로 그게 웹이든 센서든 개념적으로 같습니다.
새로운 파일을 하나 만들고
nano stream_browser.js 라고 합니다.
var GpioStream = require(‘gpio-stream’),
http = require(‘http’),
button = GpioStream.readable(18),
led = GpioStream.writable(17);
var stream = button.pipe(led);
http.createServer(function (req, res) {
res.setHeader(‘Content-Type’, ‘text/html’);
res.write(‘<pre>logging button presses:\n’);
stream.pipe(res);
}).listen(8080);
console.log(‘starting HTTP server on http://localhost:8080’);
소스는 위에있고 이렇게 입력해줍니다.
결국 http 모듈을 사용하여 웹 서버를 하나 만들고 포트는 8080을 사용합니다.
버튼을 읽어 led로 보내고 다시 웹서버의 respose로 보내줍니다.
결국 브라우져에서 스트림이 출력됩니다.
크롬브라우져에서 라즈베리파이 ip로 접속합니다. 이때 포트는 소스에서 처럼 8080을 입력해줍니다.
이제 버튼을 누르면 그 결과값이 브라우져로 스트림됩니다.
원문 참조 :
https://learn.adafruit.com/node-embedded-development/streams