ESP32 単独で センサー値 を Google Home に喋らせる実験( Dialogflow , Firebase , Actions on Google 設定編 )

記事公開日:2017年11月15日

スポンサーリンク

こんばんは。

前回の記事に引き続き、ESP32 ( ESP-WROOM-32 ) に接続したセンサー値を Google Home に喋らせる実験、第2弾です。
今回は、私的にはかなりの超大作記事です。

でも、ちょっと泣き言を言わせてください。
この記事作成は、自分で作成し始めておいて何なんですが、気が狂いそうになるほど大変でした。
とんでもなく割に合わない作業です。
こういう方式の記事作成はそろそろ撤退しないと、自分の身を亡ぼす気がしてきました。
ホントに、これからは方向性を変えないとなぁ・・・。
あまりにも、大変だったので、途中で誤字脱字が多くなっているかもしれませんのでご容赦を・・・。

というわけで、泣き言はこれくらいにして、話を戻します。

前回はクラウド上の統合開発環境、Google Cloud Platform の登録や初期設定方法でしたが、今回はそれを使って、 Action on Google や Dialogflow ( 旧 api.ai )、および Firebaseの設定方法を説明したいと思います。
アマチュア電子工作家の方にとっては、とんでもなく面倒なので覚悟しておいてください。

前回の記事で紹介した動画より、今回はさらに発展させた受け答えをやってみましたので、以下の動画をご覧ください。
自分の声が大きかったので、そこだけかなり音量下げてます。そして、深夜なので、わざとかすれ声にしてます。

いかがでしょうか。
I2C接続した BME280 のセンサー値を ESP32 で読み取り、こちらから気圧、気温、湿度を個別に Google Home に読み上げさせることができました。
しかも、最後の方では、「全部」と注文すると、全部のセンサー値を読み上げさせることができました。
テストバージョンでもここまで出来れば私的には満足です。

いやぁ・・・、ここまでできるようになるまでにホントに大変でした・・・。
ということで、今回でこの Now How 記事を完結したいと思います。

前回の記事で掲載し忘れていたのですが、事前に Google Cloud Storage 設定と、gcloudコマンド初期化設定を済ませておいてください。
その後に、再度、gcloud auth 認証をしておいてください。
前回の記事は修正しました

    【目次】

    ●Google Cloud Platform 初期設定(前回記事)

  1. Actions on Google について
  2. Dialogflow ( 旧 api.ai )について
  3. Firebaseとは
  4. Actions on Google の設定
  5. Dialogflow ( 旧 api.ai ) の初期設定
  6. Dialogflow Entity の作成
  7. Dialogflow Intent 作成
  8. Dialogflow Integrations で、Google Assistant 設定をする
  9. Dialogflow Fulfillment の設定
  10. Dialogflow Intent の再設定
  11. Google Cloud Functions API の有効化
  12. Google Cloud Shell の Node.js と NPM のバージョン確認
  13. Google Cloud に Firebase Tools をインストール
  14. Firebase ログイン
  15. Firebase 初期化
  16. Firebase package.json の編集
  17. Firebase index.js の編集
  18. Actions on Google を再設定する
  19. Firebase を Deploy する
  20. Firebase Realtime Database の設定
  21. ESP32 ( ESP-WROOM-32 )開発ボード周りの準備
  22. ESP32ボードとBME280モジュール接続
  23. Arduino core for ESP32 の設定
  24. 自作ライブラリ、ESP32_BME280_I2C のダウンロード
  25. Google Home の設定や WiFiルーター設定
  26. Arduino IDE スケッチ入力
  27. Arduino IDE コンパイル書き込み実行
  28. 最終動作確認。Google Home に ESP32 のセンサー値を読み上げてもらう
  29. まとめ

1.Actions on Google について

Actions on Google については、できたばかりのサービスで、私も詳しくは知りません。
ネットで調べた情報で説明させていただきます。
間違えていたらコメント投稿などで指摘していただけると助かります。

Google Home を実際に動作させるのは、Google Assistant ですが、それだけでは様々なサービスに対応できないようです。
例えば、日本の「食べログ」などのサードパーティー(第三者団体)サービスとは、それだけでは接続できません。

そこで、それらの Google Assistant 対応アプリサービスと繋げる役割をするのが、Actions on Google というものです。
これは、日本では、つい最近、2017/10/24 から使えるようになったとのことです。
ITpro さんの以下のリンクを参照してください。

グーグルが「Actions on Google」説明会、インストール不要で機能を拡張

この説明会も昨日11/9 に開催されたようですね。
かなり HOT な話題のようです。

Actions on Google で連携可能な Google Assistant 対応アプリは、日本では、食べログや SUUMO、Ameba、楽天レシピ・・・などが対応するとのこと。

これは楽しみですね。

Actions on Google についてのオフィシャルの概要開設は Google Developer の以下のリンクを参照してください。

Google アシスタント対応アプリを日本語で開発してみよう

これによると、Actions on Google で開発したアプリは、公開前はテストバージョンで動作して、公開して誰でも使用できるようにするためには、Google の審査が通る必要があるとのこと。

つまり、今から私が説明しようとしている、ESP32 のセンサー値を Google Home に喋らせる実験は、Actions on Google を使う限り、テストバージョンの運用ということになります。
前回の記事で紹介した動画のように、「・・・のテストバージョンです」という音声が出ますが、それを気にしなければ特に問題無いと個人的に思っています。
前回の記事で紹介した動画では、男性の音声ですが、女性音声にも替えられます。

以前の記事で紹介した、IFTTT というサービスは、テストバージョン音声ではなく、本番音声でしたが、これは恐らく Google の審査を通過した、Google Assistant対応アプリと思われます。

2.Dialogflow ( 旧 api.ai )について

Dialogflow についても使い始めたばかりで、あまり詳しくありませんのでご了承ください。

これは自然言語対話プラットフォームというもので、人間が喋った言語にどう反応するかを設定して、トリガーを発信できるアプリサービスです。
これも、元々は Google Home 開発に使われていたサードパーティー(第三者団体)サービスで、最近 Google に買収されたとのことです。
以前は API.AI という名称だったのですが、買収後は Dialogflow という名称に変わったとのことです。

ネット上では、Dialogflow よりはまだ、api.ai で検索した方がヒットが多いですので、それで調べると使い方が良く分かると思います。

これは、実際に使って見ると、IFTTT よりは細かく自由に Google Home の言語設定ができるので、私個人としてお勧めのサービスです。

そして、Actions on Google が Dialogflow と Google Assistant を繋げて連携させていきます。

ということで、前置きが長くなりましたが、まず、Actions on Google の設定を説明し、その後で Dialogflow の設定方法を説明します。
※ブラウザは Google Chrome で説明します。

3.Firebaseとは

これも、最近使い始めたばかりで良く分からないのですが、Firebase は、最近 Google に買収されたサービスで、要するに Cloud系データベースサービスです。
ただ、単なるデータベースサービスではなく、サーバーレスでデータベースを運用でき、面倒なサーバーメンテナンスをする必要がありません。
データベースを Web上のクラウドサービスに置いておき、簡単な HTTP 通信 GET リクエストを使ってデータベースを書き込み、更新、削除、変更ができる、Realtime Database という便利なものもあります。

この Realtime Databaseとうものが優れもので、例えば、複数の Webページで、このデータベースにアクセスして表示させているとします。
データベースを更新すると、リンクしているすべてのページ表示も更新されるのです。

そして、このデータベースの良いところは、JSON形式というもので、アマチュアの私のような電子工作家にはとても分かりやすく、比較的簡単です。
とても有難いサービスですね。
正に、電子工作家にとって、神アプリです。

これと、先ほど紹介した Dialogflow とリンクすると、とても強力な自然言語会話設定が可能になります。
Google Cloud Platform やら、Actions on Googleやら、Dialogflow の設定をしてきましたが、Google Home を操ろうとすると、Firebase は必須だなぁと思いました。
さすが、Google !!

因みに、Firebase を使うにあたって、Node.js というものを使います。
ある程度、Node.js のプログラムを組む必要があります。
ただ、これは Javascript と殆ど同じプログラムになるので、それほど難しくないと思いました。
私も、最初はサッパリ分かりませんでしたが、使っているうちにだんだん勝手が分かって来ました。
これは電子工作的にはかなり重宝しますよ!

4.Actions on Google の設定

まず、自然言語対話アプリの Dialogflow と Google Assistant を連携させるための、Actions on Google の設定をしていきます。
以下のリンクを開いて下さい。

Actions on Google
※Google Cloud Platform にログインした状態で開いて下さい

これは、なぜか、Google Cloud Platform とは異なるページになりますが、Google Cloud Platform をログインした状態で開くとプロジェクトも引き継がれています。
開くと、下図の様なページになります。
前回の記事で作成した Google Cloud Platform のプロジェクトがこの画面に無ければ、下図の様に、「Add/import project」をクリックします。

ActionsOnGoogle01

すると、下図の様なウィンドウが出るので、国を「Japan」にして、「Project name」のところをクリックすると、Google Cloud Platform で作成したプロジェクトが表示されるので、それを選択します。

ActionsOnGoogle02

すると、下図の様に青い「IMPORT PROJECT」ボタンに変わるので、それをクリックします。

ActionsOnGoogle03

すると、下図の様に、Google Cloud Platform のプロジェクトがインポートされるので、今度は、Dialogflow の欄の「BUILD」をクリックします。

ActionsOnGoogle04

すると、下図のウィンドウが出てくるので、「CREATE ACTIONS ON DIALOGFLOW」をクリックします。

ActionsOnGoogle05

この次は Dialogflow 画面に遷移しますので、その初期設定方法を説明します。

スポンサーリンク


mgo-tec電子工作 関連コンテンツ ( 広告含む )

投稿者:

mgo-tec

Arduino , ESP32 ( ESP-WROOM-32 ) , ESP8266 ( ESP-WROOM-02 )等を使って、主にスマホと連携した電子工作やプログラミング記事を書いてます。ライブラリも作ったりしてます。趣味、独学でやってますので、動作保証はしません。
電子回路やプログラミングの専門家ではありません。
畑違いの仕事をしてます。
でも、少しだけ電気の知識が必要な仕事なので、電気工事士や工事担任者等の資格は持ってます。

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)