2017年2月21日火曜日

RaspberryPi で Nodejs を使ってスイッチの状態を監視してみた

概要

Nodejs のライブラリ「onoff」を使って RaspberryPi に接続したスイッチの状態を監視してみました
いつも Python を使っているのでたまには Nodejs を使ってみました

環境

  • RaspberryPi 7.8 (Jessie)
  • Nodejs 0.12.6
  • npm 2.11.2
  • onoff 1.1.

配線

配線は以下の通りです
今回はスイッチの信号を読むのに GPIO 4 ピンを使っています
rpi_with_switch_circuit.png

抵抗は 1kΩ を使っています

ライブラリインストール

  • sudo npm install onoff

スクリプト作成

  • vi rpi_with_switch.js
var gpio = require('onoff').Gpio;
var s = new gpio(4, 'in', 'both');

s.watch(function(err, value) {
  if (err) {
    throw err;
  }
  if (value == 1) {
    console.log(value);
  }
});

process.on('SIGINT', function () {
  console.log('Finished process');
  s.unexport();
});

一点だけポイントですが、watch 関数を使って値を監視する場合は new するときに new gpio(4, 'in', 'both'); として in と both 両方指定する必要がありました
in だけでいけるかなと思ったんですがダメでした

動作確認

  • node rpi_with_switch.js

で実行しスイッチを押したときにコンソールに「1」が表示されれば OK です

最後に

Python に比べて Nodejs で書くとイベント処理が簡単に書けそうです
ライブラリや用途に合わせて使い分けれるといいかな

0 件のコメント:

コメントを投稿