Amazon Dash Buttonでインターホンを作る
この前AmazonでセールをやっているときにDash Buttonを購入しました。このDash Buttonを使って簡易的なインターホンを作ります。
ちなみにDash Buttonは通常は500円ですが、セール中は100円で購入することができます(一部対象外)。
また、大学の研究室に設置することを想定しているため、防水性とかは全く考えていません。
条件など
金欠なので出来る限り手持ちの機材で済ませます。Dash Buttonを含めて以下のものがありました。
- Dash Button
- Raspberry Pi zero
- Raspberry Pi 3 Model B+
- スマホ(BLU GRAND X LTE)
最初はラズパイを使う予定だったのですが、音を出す段階で問題が生じたため、実際に使ったのはDash Buttonとスマホだけです。
また、大学の回線はあまり使いたくないため、オフラインで実装します。
実装方法
実際にインターホンを作りながら試行錯誤したのですが、ネット上にある方法でやってみると中々うまくいきませんでした。
Dash Buttonで何かやろうとなるとまずはDash ButtonのMACアドレスを特定し、そのMACアドレスからのarp要求を監視するサーバを設置します。そのサーバにarp要求を確認したら何かしらのコマンドを実行できるようにしておくことで色々できるようになります。
こちらのサイトが参考になりました。
当初はこの方法でやっていたのですが、先ほども述べたように音を出す段階で問題が生じました。というか、スピーカーがありませんでした。
ハードオフとかで買おうかとも考えたのですが、そもそもラズパイのAV端子はノイズが酷いためあまり使い物になりません。USBスピーカーという手もありますが、高いので今回は却下。
そこでスマホから音を出す方法を考えます。方法はいくつか考えられますが、オフラインで実装する必要があるためメールやSNSなどの通知で音を鳴らすことはできません。色々考えて最終的にたどり着いた方法はMacroDroidというアプリに頼ることでした。
MacroDroidはマクロを実行することができるアプリです。何かトリガーを設定し、それに応じてアクションを設定することで一連の流れを自動化することができます。
よくある使い方としては、家から出たらスマホの音量を下げてマナーモードにする。でしょうか。
今回はこのMacroDroidを用いてインターホンを作ります。
流れは以下の通りです。
実装
Dash Buttonの設定
まずはDash Buttonを使えるようにしなければいけません。先ほどのサイトを参考にしてDash Buttonを登録します。
今回のやり方で実装する場合、Dash Buttonを登録する際に1つ注意しなければならない点があります。
Dash Buttonが接続するWi-Fiはスマホのものでなければなりません。また、設定を行う際にスマホがインターネットに接続できていない場合途中で中断されてしまいます。
Wi-Fiテザリングを実行していると、スマホは他のWi-Fiに接続できないため携帯回線でインターネットに接続する必要があります。SIMカードを差しておきましょう。Bluetoothテザリングという手でもいけるかもしれません(未検証)。
Dash Buttonの登録が済んだらSIMカードは抜いておきます。
登録が済んだら動作確認します。
Androidのバージョンによって細かな違いはあると思いますが、大体「無線とネットワーク」のところにあります。
Wi-Fiテザリングのところに接続機器の一覧がありますので、この画面を開いたままDash Buttonを押してみてください。ちゃんと登録できていれば一瞬だけMACアドレスとIPアドレスが表示されるはずです。通知欄には接続中の台数が表示されます。
また、勝手にテザリングがOFFにならないように設定しておきます。これは結構Androidのバージョンによって場所が違うようなので探してください。
MacroDroidの設定
PlayストアからMacroDroidをダウンロードします。
マクロを組んでいきます。まずはトリガーの設定。
「Device Events」のところに「通知」があるのでこれを選択。
その後「通知が表示された時」→「任意のアプリケーション」と押していくと細かい設定を入力する画面になります。
テキストコンテンツを「一致」か「含む」にしてテキスト欄には「1」と入力しておきます。この「1」はスマホのアクセスポイントに接続中の機器数のことを想定しています。Dash Buttonのほかに接続する機器がある場合はその数に応じて適宜変更してください。
「実行中通知を無視」のチェックも外しておきます。
次にアクションの設定です。通知が来たら音を鳴らすように設定します。
「通知」から「通知音を設定する」を選択。
好きな通知音を選択します。ファイルマネージャがない場合はスマホにもとから入っている通知音しか設定できません。ESファイルエクスプローラなどを入れると音楽なども設定できるようになります。
通知を表示するようにします。「通知」から「通知を表示」を選択。
細かい設定を入力する画面になるので、適宜入力します。タイトルとテキストは分かりやすいものにしておきます。
設定できたら右下のチェックマークを押して保存。
これでインターホンは完成です。
Dash Buttonを押すとスマホから通知音が鳴ります。
— あおかけす (@fulutori_aonos) 2018年8月17日
ゆかりさんにしゃべってもらいました。相変わらず良い声です。
Dash Buttonそのまんまだとインターホンだと分かってもらえないので、インターホンっぽくします。
こちらをありがたく使わせていただきます。
誰も作ってなかったのでDash buttonのテンプレート作っておきました。PDFです。こんな具合で使えます。https://t.co/CyIBYtteZO pic.twitter.com/gaXbxAwkhE
— Harada Yayane "Moses" Kiyohide (@takustaqu) 2017年1月8日
pdfをダウンロードしてwordで開きます。てきとうに文字を埋め込んで印刷し、ラミネートして貼り付ければ立派なインターホンの完成です。
感想
最終的には一切プログラミングせずにできてしまいました。なんだかちょっと拍子抜けです。スマホをアクセスポイントとして運用するのはバッテリーを無駄に消耗しますし、正直かなり頭が悪いやり方ですが今のところ一番手軽そうです。
オフラインという条件を無くせばもっとマシな方法があるかもしれません。
今回使用したMacroDroidはトリガーやアクションに結構色々なことを設定できます。ボタンが押されたときに写真を撮るなどといったことも可能です。スマホに搭載されている各種センサーなども使うことができるため、組み合わせれば防犯カメラ的なものも作れそうです。