ガチャつくブログ

IT系のお勉強のために、やってみたことをアウトプットしていきます。

Amazon Dash Button で遊ぶ - う○こでたボタン -

f:id:tmt-tty:20181220232029p:plain

はじめに

Amazon Dash Button を通常の使い方をせずにIoTボタンとして使ってみます。

Google Home Mini と連携させて、Amazon Dash Button を押したら、Google Home Mini をしゃべらせる 様にします。

上の子が用を足した後にトイレから『お尻ふいて~』と大声で呼ぶのですが、Amazon Dash Button を押せばわかる様にしたいと思いますw

 

こんな感じになります。

youtu.be

 

必要なもの

  1. Amazon Dash Button
    公式では1つ500円で初回注文500円引きなので実質0円です。
    自分は公式な使い方をしないので、メルカリで8個セットを1000円で購入しました。

    www.amazon.co.jp

  2. Raspberry Pi
    Amazon Dash Button のボタンに反応して処理するための「dasher」というプログラムが必要です。
    また、Google Home Mini にしゃべらせるためには、「google-home-notifier」 というプログラムが必要です。
    dasher/google-home-notifierが動く環境あれば、ラズパイ以外でも構いません。
    私は、Rapberry Pi Zero Wを使用しています。

    www.switch-science.com

  3. Google Home MIni

    store.google.com

 

手順

<前提>

  • Google Home Miniは使用できる状態になっていること。
  • Raspberry Pigoogle-home-notifierが起動してPOSTできる状態になっていること。
    この辺はたくさんの方が記事にされているので、ここでは割愛します。
    下記の様な記事を参考にしてください。

    qiita.com

  • Raspberry Pi に dasherがインストールされていること。

    github.com

 

早速セットアップしていきましょう。まずは、Amazon Dash Button を有効化します。

Amazon Shopping アプリを使用します。

 

ハンバーガーメニュー > 設定

f:id:tmt-tty:20181220222616j:plain

 

新しい端末をセットアップ

f:id:tmt-tty:20181220222729j:plain

 

同意して開始

f:id:tmt-tty:20181220222823j:plain

 

画面の支持に従いDash Button を操作し、接続

f:id:tmt-tty:20181220222904j:plain

 

接続するまで待つ

f:id:tmt-tty:20181220221315j:plain

 

接続可能なSSIDが表示されるので、問題なければ接続

f:id:tmt-tty:20181220223216j:plain

 

Wi-Fiに接続するまで待つ

f:id:tmt-tty:20181220221323j:plain

 

商品撰択画面に進が、ここでXで閉じる。

f:id:tmt-tty:20181220221328j:plain

 

セットアップを終了

f:id:tmt-tty:20181220223528j:plain

 

続いて、dasherを使ってAmazon Dash Button の設定をします。

dasherのインストールフォルダに移動します。

 

cd dasher/

 

次に、Amazon Dash ButtonMACアドレスを取得するコマンドを実行します。

./script/find_button

 

実行している間に、Amazon Dash Buttonを押します。

以下の出力結果となるので、MACアドレス部分(xx:xx:xx:xx:xx:xx)をコピーしておきます。

Watching for arp & udp requests on your local network, please try to press your dash now
Dash buttons should appear as manufactured by 'Amazon Technologies Inc.'
Possible dash hardware address detected: xx:xx:xx:xx:xx:xx Manufacturer: unknown Protocol: udp

 

続いて、Amazon Dash Button が押された時の処理を記述します。

Dasherインストールフォルダのconfig/config.jsonを編集します。

vi config.json

 

自分の場合は、Amazon Dash Buttonが押された時にShellスクリプトを実行する様に記述しています。後から編集が楽なので。

以下のコードです。

{"buttons":[
  {
    "name": "test",
    "address": "xx:xx:xx:xx:xx:xx",
    "protocol": "udp",
    "cmd": "/home/pi/test.sh"
  }

name:任意

address:先ほど確認したMACアドレス

protocol:udp

cmd:スクリプトファイル

 

用意したスクリプトファイルの中身は以下の様になっています。

google home notifier を使用して、音声をgoogle home mini で流します。

xxxの部分は環境に合わせて変更してください。

curl -X POST -d "text=http://xxx.xxx.xxx.xxx/xxxxx.mp3" http://localhost:8091/google-home-notifier

 

動作確認をします。

dasherのインストールフォルダで下記のコマンドを実行します。

node app.js

 dasher が起動状態になるので、Amazon Dash Button を押して想定している動作が行われていることを確認します。

バックグラウンドで永続起動したい場合はforeverコマンドなどを使用してください。

 

その他

Amazon Dash Button にラベルを付けると、わかりやすくなります。

下記の様に無料テンプレートも公開されています。

paperm.jp

 

自分のは、こんな感じになっていますw

f:id:tmt-tty:20181220231051j:plain

 

Amazon Dash Button をIoTボタンとして使ってみました。Amazon Dash Buttonがまだまだ余っているので、色々な所に設置して、使い方も考えていきたいです。