こんにちは!
開発部の武内です。
弊社のランチ前の時間帯にはお弁当屋さんが販売にいらっしゃるんですが、
入居しているフロアが1F、2F、3Fとあるため
お弁当屋さんに各階を回っていただくという大変申し訳ない状態になっています。。。
(開発部は2Fです。)
お弁当屋さんが来たら1Fから内線で教えてもらう等、
人間に頼る手もありますが我々は開発部。
「お弁当屋さん専用のチャイムみたいなの作れないかな」
「開発部はSlackを使っているから、チャイムはSlackに通知できないかな」
と考えた結果、
Amazon Dash Button と Raspberry Pi を使って
お弁当屋さん通知ボタンを作ってみました。
構成
構成はシンプルです。
- Amazon Dash Button
- Raspberry Pi (RASPBIAN STRETCH LITE Version:April 2018)
図の通り、Dash ButtonとRaspberry Piは同一ネットワーク上にいる必要があります。
商品を買うわけではないのでどのDash Buttonでも良いんですが、
私は猫好きなのでCIAOちゅ〜るにしました。
構築
Raspberry Pi
Raspberry Pi(RASPBIAN)のインストール→ネットワーク設定→SSH設定→までの手順は省略します。
SSHログインします。
1 2 3 4 5 6 7 8 9 10 11 12 |
pi@raspberrypi:~ $ sudo apt-get update pi@raspberrypi:~ $ sudo apt-get upgrade # npmインストール pi@raspberrypi:~ $ sudo apt-get install nodejs npm libpcap-dev git pi@raspberrypi:~ $ sudo ln -s /usr/bin/nodejs /usr/bin/node # dasherインストール pi@raspberrypi:~ $git clone https://github.com/maddox/dasher.git pi@raspberrypi:~/dasher $ cd dasher pi@raspberrypi:~/dasher $ npm install |
dasher は同一ネットワーク上のDash Buttonの押下を検知し、
イベントを実行できるアプリケーションです。
Dash Button
- スマートフォンのWi-FiをONにし、Raspberry Piと同じネットワークに接続します。
- スマートフォンのBluetoothをONにします。
- スマートフォンにAmazonショッピングアプリをインストールし、ログインします。
- アカウントサービス→Dash端末→新しい端末 からセットアップに進みます。
- Dash Buttonを長押しし、初期設定を開始してWi-Fiパスワード等を入力します。
- 最後に注文する商品を選択する画面が出ますが、設定せず×で終了します。
これで実際に商品は注文されず、
押下のイベントだけが発生する状態になります。
Slack
- Configure Apps→Manage→Custom Integrations→Incoming WebHooks→Add Configuration に進みます。
- Post to Channelで通知先のチャンネルを選択します。
- Add Incoming WebHooks Integration しWebhook URLを得ます。
dasher
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# Dash ButtonのMACアドレスを見つける # 以下のスクリプトを実行中にDash Buttonを押す pi@raspberrypi:~/dasher $ ./script/find_button Dash buttons should appear as manufactured by 'Amazon Technologies Inc.' Possible dash hardware address detected: 12:34:56:ab:cd:ef Manufacturer: unknown Protocol: udp # 押下時のイベントを設定 pi@raspberrypi:~/dasher vi config/config.json { "buttons":[ { "name" : "お弁当屋さんボタン", "address": "12:34:56:ab:cd:ef", ← MACアドレス "url": "https://hooks.slack.com/services/XXXXXXXX/YYYYYYYY/ZZZZZZZZ", ← Webhook URL "method": "POST", "json": true, "body": {"text":"お弁当の時間だよ~"} } ] } # npm起動 pi@raspberrypi:~/dasher $ sudo npm start |
これでDash Buttonの押下を検知できるようになりました!
ポチっと
数秒の後に…。
通知されました!
おわりに
いかがでしたでしょうか?
Dash Buttonは500円ですので、
気軽に試せるのが良いですね。
皆さまの快適な開発生活の一助になれば幸いです。