6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry Pi と Node.js で Amazon Dash Button を利用する方法

Last updated at Posted at 2018-07-21

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",を追記します。

package.json
{
  "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アドレスに書き替えてください。

app.js
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

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?