作ったもの:
自分のiphoneに電話をかけられるボタン
動機:
iPhoneを家の中で無くしすぎる
ラズパイに触りたい
Amazon Dash Buttonをポチポチしたい
実際の挙動:
費やしたリソース
・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が家に届くので、それについても何か書くと思います。