背景
数日前、茨城で震度6弱の地震がありました。
私の実家は茨城なので、今回の地震があったときも家族に安否確認をしました。
ふと、この年末年始の帰省時にAmazonDashButtonで何かやろうかなと考えていた時に、ポットを使った時に家族にメールが届く仕組みを思い出しました。
これと似たようなものをAmazonDashButtonで作ることで、いつでも家族の安否を確認できるのでは、ということで、大晦日の某歌番組を見ながら作ってみました。
概要
AmazonDashButtonで家族の安否を確認するシステムを作りました。
家具(今回は扉)にAmazonDashButtonをつけて、ボタンが押されるとLINEに通知がきます。
5分で作れます。
必要なもの
- AmazonDashButton
- サーバ(今回は実家で埃を被っていたMac mini)
- 通知を受け取るプラットフォーム(今回はLINE Notify)
- dasher
サーバはWiFiが使える小さなマイコンモジュールとかにしてもいいですね。
dasherを動かすNode.jsはv7.3.0を使用しました。
実装
LINE Notifyのアクセストークンを取得
LINE Notifyでログインし、画面右上のマイページから任意のトークルームを選択し、アクセストークンを発行します。
AmazonDashButtonの初期設定
AmazonDashの設定をセットアップ手順の5番まで行います。
注文する商品を選択する画面で画面右上の✕ボタンを押して、セットアップをキャンセルします。
AmazonDashButtonのMACアドレスを取得
今回はdasherを使います。
git clone https://github.com/maddox/dasher.git
cd dasher
npm install
次に、find_button
スクリプトを実行し、AmazonDashButtonを押すと、MACアドレスが取得できます。
(xx:xx:xx:xx:xx:xxと表記しています)
⇒ ./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: xx:xx:xx:xx:xx:xx Manufacturer: unknown Protocol: udp
.
.
dasherの設定ファイルを記述
config.example.jsonをconfig.jsonに名前変更します。
mv config/config.example.json config/config.json
config.json
を以下のように変更します。
{"buttons":[
{
"name" : "[任意の名前]",
"address": "xx:xx:xx:xx:xx:xx",
"url": "https://notify-api.line.me/api/notify",
"method": "POST",
"headers": {"Authorization": "Bearer [LINE Notify access token]"},
"formData": {"message": "[任意のメッセージ]"}
}
]}
sudo npm start
でAmazonDashButtonが押されるのを待ち受けたら、AmazonDashButtonを押すことでLINEに通知が行くはずです!
デモ
扉の開閉で通知を送ってみました。
※デモ用に目立ったところに置いていますが、実稼働するときは普段見ることがない扉の奥のところにつけます。
まとめ
今回の実装で一番苦労したのは、いかに普段の生活に溶け込み、かつ邪魔しない配置にAmazonDashButtonを置くか、というところでした。
家の見えない位置に置いて、普段の生活動作で勝手にボタンが押される状態が一番だと思い、今回は普段見えない位置の扉にしました。
AmazonDashButtonは約1000回使えるということで、1日2~3回程度の使用ならば1年くらいは使えそうです。
毎年帰省時にボタンを変えるだけで1年間見守ってくれるのは、そこそこリーズナブルだなと思いました。
LINEのトークルームに兄弟なども招待すれば、他の家族も安否確認を共有できていいですね。
みなさんもぜひ試してみてください。