概要
Nodejs のライブラリ「onoff」を使って RaspberryPi に接続したスイッチの状態を監視してみました
いつも Python を使っているのでたまには Nodejs を使ってみました
環境
- RaspberryPi 7.8 (Jessie)
- Nodejs 0.12.6
- npm 2.11.2
- onoff 1.1.
配線
配線は以下の通りです
今回はスイッチの信号を読むのに GPIO 4 ピンを使っています
抵抗は 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 件のコメント:
コメントを投稿