Python
Bash
Node.js
twilio
AmazonDashButton

”iphoneを探す”ボタンを作った

スクリーンショット 2017-11-23 19.44.22.png

作ったもの:

自分のiphoneに電話をかけられるボタン

動機:

iPhoneを家の中で無くしすぎる
ラズパイに触りたい
Amazon Dash Buttonをポチポチしたい

実際の挙動:

your browser is unsupported to show video

費やしたリソース

・twillio課金2000円 (20ヶ月電話サービスを使える)
・dash button本体 500円
・休日の 7時間 (バカ)

この記事のポジション:

似たような記事がいくつかありますが、ITリテラシーの低い自分としては、複数の記事を調べることになったので、各工程に対して最も参考になる記事を紹介できればと思います。

作業手順

①Amazon Dash ButtonをハックしてARPリクエストからMACアドレスを特定する
https://qiita.com/tokio-takeda/items/02bae474f8f20f35a02c
- 細かい説明は飛ばして、セットアップ用のコマンドが羅列されているので、コレに従っておけばいいです。

②ARPリクエストをラズパイで受け取ってPOSTする
https://qiita.com/yosi-q/items/d84f422b3be1dfb198aa
- この記事が一番詳しいです。dasherの設定ファイル(config.json)の各要素について説明があるのがナイス。

③twilioで電話をかける
http://tech.sanwasystem.com/entry/2016/01/28/211457
- この記事を参考にすればなんとかなります。逆にわからなかったらコメントください。


個人的に詰まったところ

config.json

{"buttons":[
{
"name": "callIFTTT",
"address": "xxxxxxx",
"protocol":"udp",
"url": "https://maker.ifttt.com/trigger/testButton/with/key/-xxxxxxxxxxxx",
"method": "GET"
},
{
"name": "Command Exec Button",
"address": "68:54:fd:6e:f6:x3",
"cmd": "/home/pi/dasher/dash_button.sh",
"protocol":"udp"
}
]}

上記で
/home/pi/dasher/dash_button.sh を相対pathにしてたら動かなかった
"protocol":"udp" を省略している記事もあるが、省略すると動かなかった
cmd で実行される対象を.pyにしたら動かなかった(.shの中で.pyを読んでます)

基本的にコード書くのはconfig.jsonだけなのに、これだけミスっててすごい。


最後に予告

今度Amazon Echo DotとRM MINI3が家に届くので、それについても何か書くと思います。