1. はじめに
記事作成時点(2018/07/21)で、すでにたくさんの方が挑戦済みの、Raspberry Pi で Amazon Dash Button の利用をしたところ、思いのほかつまづいたので、自分自身への備忘録をかねて、チャレンジした内容をお伝えしたいと思います。
今回は、ほんとに備忘録てきな簡単記事にしようとおもっていますので、間違いがあれば、ご指摘をコメント欄にご投稿、よろしくおねがいいたします。
1-1. この記事を読んでできること
- Raspberry Pi と Node.js で Amazon Dash Button を利用できるようになる。
1-2. 事前注意
- つまづきポイントの1つ目になりますが、Windows上の Windows Subsystem for Linux(Bash on Windows)では、うまく動かすことができませんでした。動作確認済みの環境としては、Raspberry Pi と Ubuntu Budgie 18.04 となります。ご自身の実行環境のご確認をおすすめいたします。
2. 必要なもの
2-1. 環境編
- 環境(Raspberry Pi3)
- OS(Ubuntu Budgie 18.04 でもOKでした。)
2-2. ソフトウェア編
- node
- npm
3. セットアップ手順
3-1. セットアップ
必要なライブラリ等をインストールします。
必要ライブラリのインストール
$ sudo apt-get install libpcap-dev
作業ディレクトリの作成
$ mkdir DashButton
作業ディレクトリへ移動
$ cd DashButton
package.jsonの作成(リターンキー連続押下でOKです。)
$ npm init
必要モジュールのインストール
$ npm install --save dash-button
$ npm install --save child_process
3-2. package.jsonの修正
スクリプトが実行できるようにするために、package.jsonを修正します。修正ポイントは、scriptsに"scan": "dash-button scan",を追記します。
{
"name": "dashbutton",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"scan": "dash-button scan",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"child_process": "^1.0.2",
"dash-button": "^3.2.0"
}
}
3-3. MACアドレスのスキャン
スクリプトを実行して、Amazon Dash Button のMACアドレスを調べます。スクリプト実行待機中に、Amazon Dash Button のボタンをクリックすることで、MACアドレスが確認できます。(ボタンの認識間隔は、1分程度あるので、連続クリックはしないようにしましょう。)
※00:00:00:00:00:00 のMACアドレス部分は、後で使いますのでメモしておきましょう。
$ sudo npm run scan
> dashbutton@1.0.0 scan /home/pi/Documents/Node/DashButton
> dash-button scan
Scanning for DHCP requests and ARP probes on eth0...
Detected a DHCP request or ARP probe from 00:00:00:00:00:00
3-4. サンプルプログラム
サンプルプログラム(app.js)を作成します。
"00:00:00:00:00:00" の部分は、各自のMACアドレスに書き替えてください。
const DashButton = require('dash-button');
const {exec} = require('child_process');
const button = new DashButton("00:00:00:00:00:00");
button.addListener(() => exec('echo "ボタンおしましたね。"', (err, stdout, stderr) => {
if (err) {
console.log(err);
}
console.log(stdout);
}));
3-5. 実行
プログラムを実行し、その後にAmazon Dash Button をクリックしましょう。コンソール上に文字列が出力されれば成功です。私の環境では、sudo をつけて実行する必要がありました。
実行!!
$ sudo node app.js
ボタンおしましたね。
うまくいけば、Amazon Dash Button をクリックすると、コンソールに文字列が出力されます。
4. 参考サイト
5. さいごに
みなさん、Raspberry Pi で Amazon Dash Button を利用する方法はいかがでしたか?みなさんの環境でも、うまくセットアップできていれば幸いです。(私はなんだかんだ1時間くらいはまりました。。。)うまくいけば、30分もあれば動くはずです。
2018/07/21 TAKAHIRO NISHIZONO