Android Thingsでしゃべるスマートミラーを作成!


こんにちは、fujiです!忙しい事を理由にBlogの更新をすさまじくサボってしまいました。すみません・・・

今年の夏は暑かったですね、というか、むしろまだ、10月いっぱいまで半袖でもいけるんじゃないか!?と思えるくらいの気候ですね。天気がいいと仕事ほっぽり出して外に出て自転車乗りたくなる自分としては最高の気候です。クソ暑い中でガンガン体を動かしていたい。体から水分を放出していきたい・・・

さて、そうは言ってみてもやっぱり高温の日々が続くと天気が気になりますよね!?ついでに、ニュースも気になりますよね!??というわけで、ちょっと毛色の違う投稿になりますが、AndroidのIoT版OSのAndroid ThingsとRaspberry Piを使用して鏡に情報を表示させ、しゃべる「スマートミラー」を作ってみました。

とはいえ、ただ鏡に表示しても面白くないので、以下のような機能を持つ鏡を作ります。

  • 人を認識したら、画面が灯く
  • 現在の天気とニュースを画面に表示
  • 現在の天気とニュースを発話
  • 一定時間経過したら画面消灯

続いて、上記機能を持ったスマートミラーを実現するために必要な機材を揃えます。今回揃えた機材はこちら!

  • 赤外線モーションセンサー HC-SR501
  • Raspberry Pi 7インチ タッチ・スクリーン ディスプレイ
  • Raspberry Pi 3 Model B V1.2
  • マジックミラー
  • USBスピーカー

続いて、開発環境、ニュースや天気予報を取得するWeb APIはこちらです

  • Android Things
    • IoT向けAndroid
  • News API
    • NewsのAPIを提供するWebサービス
  • OpenWeatherMap
    • 気象データのAPIを提供するWebサービス

機材、開発環境、使用するWebAPIが揃ったので、製作を始めていきましょう!

まずはAndroid ThingsをRaspberry Pi 3にインストールします。が・・・
インストール方法はこちら(Android ThingsをRaspberry Piに導入する)が詳しいので、こちらをご参照ください。

続いて、用意した機材の組み立てです。今回、Raspberry Pi 3とモーションセンサー、ディスプレイは次のように接続しています。

機材接続の画像
RaspberryPi3とモーションセンサ、ディスプレイの接続

次に、ソフトウェア部分をAndroidで作成します。ソフトウェア部分は、大まかに説明すると以下のようになります。

  1. モーションセンサが人を検知する
  2. 人を検知したら画面を点灯し、現在の天気とニュースをWeb APIから取得
  3. Web APIから取得したデータを読み上げる
  4. 一定時間が経過したら画面を消灯する

上記のうち、「1.」以外は通常のAndroidアプリと特に違いはありません。
「1.」については、Android Thingsのみで使用できるライブラリにあるクラスを使用することで実現できます。詳しくは、こちら(Android Developers)をご確認ください。

Web APIからデータを取る事ができたら、取得したデータを画面に表示させます。画面はこんな感じに作成しました。

取得したデータの画面表示
取得したデータを表示

Web APIから取得取得したデータ(天気予報&ニュース)と、現在の日時を表示しています。

データを取得できたので発話もさせてみます。
発話はAndroidのText to Speechを使用します。日本語で喋って欲しいので、「TextToSpeech」の「setLanguage()」に「Locale.JAPAN」をセットし、取得した文字列データを「 TextToSpeech.speak()」に流してあげます。
すると、見事に日本語で取得したニュースや天気予報を喋ってくれます。

今回はAndroidのText to Speechを使用しましたが、もっと流暢に喋って欲しい場合はAmazon Pollyや、Azure Text to SpeechGoogleのCloud Text to Speechなんかを使ってもいいかと思います。(有料のケースもありますが)

最後に、マジックミラーをゴリゴリ工作してRaspberry Pi 3と組み合わせます。

スマートミラーが完成
スマートミラー完成系

鏡の後ろにうっすらと画面が表示されているのがわかるでしょうか?
実物は、もう少しくっきりと表示されます。

というわけで、スマートミラーを作ってみました。これで、鏡の前で身だしなみを整えたりする時に、ついでに天気やニュースがわかるようになりましたし、応用すれば映ってはいけない物が映るドッキリミラーみたいなのも作れるようになります。

さて、ここで問題が一つ。この鏡、どこにつけよう・・・?


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です