エムスリー エンジニアリングGの岩本です。
会社ではWeb開発をインフラ・サーバサイド・フロント・運用全てを担っています。 一方家ではDIY・IoT・スマホアプリなどを作る子育てエンジニアやっています。 今回は子育てのために作ったFireTV stickのコインタイマー化を紹介します。 まず作ったものはこちら。
なぜ作ったのか
最近5歳になる娘がアニメを見すぎているなぁと感じていたのですが、土曜日の夜にふと思いつきました。 「昔、旅館でお金を入れてテレビを見る仕組みがあったけど、それを活用できないかな!?」ということで調べてみました。 Amazonで調べてみると今でも売っているようです。こういう製品です。懐かしいですね。
この製品を買えばかんたんに実現はできるのですが、実際に使ってもらえるかわからないのに3万弱も出せません。 ということで家にあるもので作れないかを考えてみました。
家にあるものを漁ってみると過去に色々集めていた下記のパーツがありました。
- コインアクセプタ
- M5Stack
- NatureRemo mini
- リモコンコンセントOCR-05W
- FireTV stick
これらを組み合わせて突貫でシステムを作ることにしました。
システム構成図
やりたいことに対しては機器が複雑になっていえる感は否めませんが
- サクッと作りたかったので部品調達したくなかった
- 100Vの電源を使うので自分自身で電子工作したくなかった
のでこのような構成になっています。
それぞれを説明します。
コインアクセプタ
この記事を書いたときに作ったコインアクセプタはBluetoothでつないで使えるように作っておいたのでそのまま利用します。コインを入れるとイベント通知してくれます。また、別アプリから操作すればコインを払い出すこともできます。手を突っ込んでは取れないので不正防止にぴったりです。
M5Stack
M5StackはESP32にモニタ・ボタン・スピーカー・バッテリーなどをセットにっている製品です。Arduinoと同じように使うことができます。BluetoothやWIFIにつなぐことができます。
Nature Remo mini
赤外線を送受信するための機器です。REST APIで受信した赤外線をシリアライズしたり、シリアライズしたデータを赤外線として再現できます。いわゆる万能リモコンがプログラマブルに使える製品です。
使い方はかんたんでSwagger UIがここで公開されています。
https://local-swagger.nature.global/
OCR-05
赤外線で制御できるリモコンコンセントです。赤外線で制御できるのでNature Remo miniを使って電源のon offを制御可能です。
FireTV stick
テレビのHDMIポートに刺すのですが別途電源をUSBで取得します。したがって、この給電元をOCR-05にすればFireTV stickの電源を制御可能です。
動作シーケンス
システム構成図を再掲します。
電源on, offは次のように動作します。
- 電源onのシーケンス
- コインをコインアクセプタに投入
- コイン投入イベントがBluetoothでM5Stackに通知される
- M5Stackが管理している制限時間を伸ばし、REST APIでNatureRemo Minに電源onのリクエストを送信
- NatureRemo MIniが赤外線信号を送信
- OCR-05が赤外線を受信し、電源をonにする
- FireTV stickの電源が入る
- 電源offのシーケンス
- M5Stackが管理している制限時間が残り0になったら、REST APIでNatureRemo Minに電源offのリクエストを送信
- NatureRemo MIniが赤外線信号を送信
- OCR-05が赤外線を受信し、電源をoffにする
- FireTV stickの電源が切れる
作っての感想
日曜日の昼過ぎにシステムが出来上がったのでシステムが出来上がるまで6時間程度でした。 改めてハードウェアに踏み込まないで作るシステムって効率が良いですね。 はんだ付けする方向に走らなくてよかった。
なおこのシステムが出来上がった当日にどうぶつの森を買いました。 さすがどうぶつの森ですね。数日経っていますが娘はゲームにはまっており、このシステムはまだ一度も稼働しておりません。
We're hiring!
エムスリーでは技術を一緒に楽しめるエンジニアを募集しています。 社員とカジュアルにお話することもできますので、興味を持たれた方は下記よりお問い合わせください。