100番煎じですが、ラズパイ上での「Dashボタン押し下げ検出」に成功したので備忘録として環境をメモします
・Raspberry Pi Model3B+
・Ubuntu Mate(当時の安定版)
・YARN(バージョン管理等)
・Node.js
・node-dash-buttonモジュール
これらを導入後、適当な位置に(私はnode-dash-button直下
usr/node_modules/node-dash-button/app.js
に置きました)
app.jsを作成します。
内容は以下の「node-dash-button」公式ReadMeをパクりました。
https://github.com/hortinstein/node-dash-button/blob/master/README.md
//warning this may trigger multiple times for one press
//...usually triggers twice based on testing for each press
var dash_button = require('node-dash-button');
var dash = dash_button("xx:xx:xx:xx:xx:xx(ここにDashButtonのMACアドレス※を入れます)", null, null, 'all'); //address from step above
dash.on("detected", function (){
console.log("omg found");
});
※MACアドレス取得は↓を使いました
https://qiita.com/1060ki/items/aaa0bc388eeb261ac682
そして実行します。
https://qiita.com/Sugima/items/39caa4f08ca022514a46
$ sudo node app.js
これで検出できました。
Linuxのディストリビューション等、環境により動いたり動かなかったりするのでうまくいくものを使いましょう。
私の場合は当初、 Node.jsの実行にあたって「あのコンパイラが足りない、あのモジュールが動かない」等々エラーが多発していたのですが、
npm+Node.js+Dasher→YARN+Node.js+node-dash-buttonに変えたら嘘のように動きました。うそやろ。
あと、今回使った各ソフト・モジュールはそれぞれのVer同士の競合・相性がきびしいです。特に(今回使わなかった)Dasherは(開発が停止していることもあって)Node.jsが最新版だと動かなかったりと、苦労しました。
基本的にはYARNとnode-dash-buttonは最新版、Node.jsは安定版を使えば問題ないとは思うのですが。
##参考にしたページ
Raspberry PiにUbuntu MATEをインストール + リモート接続
コマンドラインでmicro SDにUbuntu Mateをインストールする方法です。
ただ、結局はSD Card Formatter と Etcher を使いました。便利だった。
Amazon Dash Buttonを(正しくない方向で)使ってみた
勉強になります。
node-dash-buttonの公式ドキュメント
結局これが一番わかりやすかった。
2017-12-14
Raspberry PiでAmazon Dash Buttonの入力を受け取る
YARNではなくnpmの場合はこちら。