LoginSignup
9
19

More than 5 years have passed since last update.

Raspberry Pi Zero W で Amazon Dash Button をただのIoTボタンとして使う流れ

Last updated at Posted at 2017-09-17

ここでは、Amazon Dash Button -> Raspberry Pi Zero W-> IFTTT -> Trello にカード追加をします
この記事は、主に、以下の2つの記事をまとめた内容です。

必要なもの

  • Raspberry Pi Zero W スタートキット
  • Amazon Dash Button
  • 作業環境(ここではMac)
  • IFTTTのアカウント
  • Trello のアカウント(IFTTTに連携しておきます)

Raspberry Pi Zero W のスタートキットは、どれでも良いと思いますが、私はリアル店舗で以下のものを買いました。

SD カードにはOSが書き込み済みの前提です。
作業環境はMacです。

同根のSDカードをPC等で見て、WiFi情報とSSHの有効かを設定

こちらを参考に設定します

Raspberry Piの無線LANをmicroSDで設定する
http://qiita.com/mascii/items/0d1a280ac58ed8f6f999

$ cd /Volumes/NO\ DATA # お手元の環境に合わせて下さい
$ touch ssh
$ vi wpa_supplicant.conf
wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="test"
    psk="abcd1234"
}

SDカードをRaspberry Pi Zero W に挿入し、ディスプレイ・キーボードに繋いで、電源を入れる

先の設定で、WiFi設定ができているのですが、スタートキットに入っているSDカードは最初に設定が必要です。
起動するとOSを選ぶ画面が出るので、いちばん上のRasbianが選択されている事を確認し、スペースキーを押します。
次に、"i" を押して、エンターでインストールを開始します。

インストールには、1時間ほどかかります。(SDカードの書き込み速度が遅いので。)
インストールが終わると、自動的に再起動して、Raspbianが起動します。
先ほど、WiFiの設定をしておいたので、既にネットワークにはつながっていると思います。
これ以降、ディスプレイとキーボードは不要です。

SSH で繋いで初期設定

$ ssh pi@raspberrypi.local
$ passwd # パスワード変更
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nodejs npm libpcap0.8-dev # 後で npm install するのに必要となる
$ sudo apt-get clean
$ sudo apt-get autoremove

dasher を cloneして、npm install

$ git clone https://github.com/maddox/dasher.git
$ cd dasher
$ npm install

Amazon Dash Button をセットアップ

以下の通りセットアップ。
http://qiita.com/jsoizo/items/3b8bba4160f41aef20f4#%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97

  1. Amazonショッピングアプリを開く
  2. アカウントサービスを開く
  3. 新しい端末をセットアップを選択
  4. Dash Buttonを選ぶ
  5. Dash ButtonのWi-Fi設定を行う
  6. 注文する商品を選択する画面でキャンセル(右上の×ボタンを押す)

IFTTT のセットアップ

事前に https://ifttt.com/trellohttps://ifttt.com/maker_webhooks の設定を行って下さい。

  1. IFTTT の My Appletsを開く https://ifttt.com/my_applets
  2. New Applet
  3. this に Webhooks を選択。Recieve a web request を選択
  4. Event Name を "add_trello" と入力
  5. that に trello を選択。 "Create a card"を選択
  6. "Which board?"、List name、Position、Title、Descriptionを好きに選択
  7. Create Action をクリック
  8. Finish をクリック

ボタンの情報を取得

./script/find_button を動かし、Dashボタンを押す。ここで表示されたMacアドレスをメモっておく。

 $ ./script/find_button
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: aa:bb:cc:dd:ee:ff Manufacturer: unknown Protocol: udp

設定ファイルを記載

url と address は適切に書き換えて下さい。
urlは、 https://ifttt.com/services/maker_webhooks/settings のページに書かれているURLをブラウザで開くと分かります。
protocol は、udp にする必要が有ります。ちゃんと理由を調べていませんが、arp はRaspberry Pi Zero W では受信できませんでした。

$ vi config/config.json
config.json
{"buttons":[
  {
    "name" : "水がない",
    "address": "b4:7c:9c:25:99:17",
    "url": "https://maker.ifttt.com/trigger/add_trello/with/key/XXXXXXXXXX",
    "method": "POST",
    "json": true,
    "protocol": "udp",
    "body": {"value1":"水がない"}
  }
]}

Dasher を起動

$ sudo npm start

自動起動するように設定

以下を参考に設定します。
https://github.com/maddox/dasher/wiki/Running-Dasher-on-a-Raspberry-Pi-at-startup

$ curl https://raw.githubusercontent.com/fhd/init-script-template/master/template > /tmp/dasher
$ sudo cp /tmp/dasher /etc/init.d/dasher
$ rm /tmp/dasher
$ sudo vi /etc/init.d/dasher 

先頭を以下のように書き換え。
dir は適切に変更してください

/etc/init.d/dasher
#!/bin/sh
### BEGIN INIT INFO
# Provides: dasher
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

dir="/home/pi/dasher"
cmd="npm run start"
user="root"
$ sudo chmod 755 /etc/init.d/dasher
$ sudo update-rc.d dasher defaults

以下で実行できるか確認してください。

$ sudo /etc/init.d/dasher start

ログは以下のようにして確認できます。

$ tail -f /var/log/dasher.log

エラーは以下です。

$ tail -f /var/log/dasher.err
9
19
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
9
19