呪文(スペル)が光を灯す。- Google Home で学習リモコンを制御

freee Developers Advent Calendar の 12 日目

会計フリーのエンジニアをしている id:him0 です。2017 年新卒で入社、会計フリーの機能開発を行っています。

社内やインターネッツでは、ビットコイン、仮想通貨、ブロックチェーンに詳しい人と認識されている自分ですが、今回は IoT、スマートホームと言った文脈の話を書こうと思います*1

Google Home が、Amazon Echo が発売された

2017年10月に Google Home が、11月に Amazon Echo が発売し、ついにスマートスピーカーが一般家庭でも手に入る時代がやってきました。

自分はこれを待ちわびていました。どのくらい待ちわびていたかというと、同じような動作を実現するプログラムを自作するほど待ちわびていました。

大学時代研究室では、研究とは別に学祭に来る一般のお客さん向けのスマートハウスでの生活を体験してもらうという展示を作成しました*2。仕組みとしては Julius という、音声認識ソフトを用いて Raspberry Pi の IO を制御するというものでした。

Smart House

Control the Smarthouse with Voice

また、自宅向けにエンジニアなら誰もが数台余らせている Android 端末を利用してスマートスピーカーも作成していました。こちらの仕組みは、Android のアプリで Web サーバをホスティング、Web サーバに対するリクエストに含まれるテキストを Text to Voice の Web API にリクエストし、音声を取得を再生するというものでした。

Android を REST サーバにするという提案 | ひものぶろぐ

Android Voice Server

Google Home、Amazon Echo は、音声で家電の制御できるし返答もしてくれる、ああ、まさに自分が欲しかったものだー*3

Google Home を購入したらスマートホーム完成となるわけもなく。最初にして最大の問題が待ち構えています。それは、お家で使っている家電はインターネットに接続することはできないという問題です。Google Home からの直接制御できる家電は、インターネットか、Bluetooth に接続できる家電製品に限られます。

f:id:him0:20171211224138p:plain

Google Assistant 対応のシーリングライトも発売されていので買い換えることも検討し、ビットコインのウォレットとも相談しましたが、やはりもったいない*4。代わりの手段を求め調べていると赤外線の学習リモコン eRemote 系のデバイスの SDK を発見しました。

Web API で学習リモコンを制御!

この SDK を使えば、好きなタイミングで赤外線を飛ばして家電を操作でます。ここまで来たら Web API 化させたくなるのがエンジニアの性です。プログラムをひょいひょい書いて、Web サーバへのリクエストでシーリングライトを制御できるところまで作ってみました。

GitHub - him0/ir-blaster-web-server: ir-blaster-web-server with using sqlite3 and Japanization

このプログラムをエンジニアなら誰もが余らせている Raspeberry Pi でホスティングすればお家のシーリングライトをプログラムで制御する環境の完成です。

お家のシーリングライトを制御

次に Google Assiatant とこの Web API を繋ぎこんでいきます。Google Assistan に対する命令の登録は IFTTT を利用しました。特定のワードをトリガーにして、HTTP リクエストを発行するように設定しました。

f:id:him0:20171211034237p:plain

次に Web サーバを立ち上げている Raspberry Pi をグローバルネットワークに公開する必要がありますが、こちらは ngrok を利用しました。このサービスはローカルのポートにグローバルからアクセスできる URL を発行してくれるサービスです。インストールして、ポートを指定して立ち上げるだけで、あっという間に URL を発行して、トンネリングしてくれます。

f:id:him0:20171212125025p:plain

これでめでたくお家のシーリングライトは Web API 化です。完成した全体像はこちら

f:id:him0:20171211043509p:plain

夢のスマートハウス化を実現しました。やったぜ!

お家の電気を制御2

まだまだ終わらない、今度はオフィスも便利にしよう

Google Home の便利さに味をしめ可能性を感じてきたので、オフィスにも Google Home を導入することにしました。

f:id:him0:20171211213916j:plain

まだ具体的な活用方法は、未定なのですが Google Home が実現する Voice to Text は、 ChatOPS と相性が良さそうですし。逆に Text to Voice は、アラートなどと相性が良さそうだなと思っています。

より効率的により楽しくを追求して開発できる現場は凄く楽しいです。

音声操作も「あたりまえ」になってゆくのか?

音声を使ってシーリングライトを点ける様は、数十年前の人が見たらこれが魔法か?と勘違いするのでしょうか。一方で数十年後の人が見たら「あたりまえ」と感じるのかもしれません。

デジタルの世界とアナログの世界を繋ぐデバイスやサービスは、仕組みを詳しく知らなくても充分に恩恵が受けられる状態「あたりまえ」を作ってゆくのではないかと自分は思っています。

freee のサービスも 銀行口座・クレジットカード等の同期や、確定申告書類の電子申告レシート類の取り込みと、アナログでしかできなかったことをデジタルの世界に取り込んでいくものです。

デジタルの世界とアナログの世界を繋ぐことで、様々なものがより効率的に便利になり、それはやがて「あたりまえ」になっていく。そんな「あたりまえ」を一エンジニアとして作っていきたいと思っています。

さいごに

freee では、19新卒エンジニア/UXデザイナーを募集しております。 jobs.freee.co.jp

興味がある方はぜひ、応募して下さい。硬いフォームが苦手な人はツイッターとかで話しかけてもらってもええんやで。

明日は、弊社 CEO の Sasaki Daisuke さんです。きっと心に響き話をしてくれるんだろうなー(チラッ

お楽しみにー

*1:仮想通貨の話は、また今度書いてみようかと思います

*2:展示ギリギリまでプログラム書いてた思い出

*3:結局両方買っちゃうよねー

*4:いろいろな意味で