ESP32 単独で センサー値 を Google Home に喋らせる実験( Google Cloud Platform 設定編 )

ESP32 ( ESP-WROOM-32 )

こんばんは。

前回記事では、Google Home を IFTTT と Blynk サーバーを使って、LED の明るさをコントロールしましたが、Twitter で @robo8080 さんから、ESP32 のセンサー値を喋らせることができないかという質問がありました。
でも、前回記事の方法ではそれはできませんでした。
いろいろ試行錯誤していたら、@robo8080 さんはラズベリーパイを使って実現されていました。
ネット上では既にラズベリーパイで使う情報が出ていますね。

私は、ラズパイを持ち合わせていないので、ESP32 単独で実現してみました。
以下の動画をご覧ください。

前半はクラウド上のリアルタイムデータベースを ESP32 から送信して更新している様子です。
後半は Google Home の応答の様子です。
最後の方で、湿度が変化したので、リアルタイムデータベースが更新されている様子も見ることができます。

いかがでしょうか。
これはテストバージョンです。
本番バージョンでは出来ませんでした。
本番バージョンにしたい場合は、Google の審査が通って公開しなければならないようです。

また、自発的に喋らせることはできませんでした。

ここまで出来るようになるには、とーっても大変でした。
私が今知るところによると、ラズパイ無しで動作させるには、Google Cloud Platform (略して GCP )を使うしか方法がありませんでした。
ただ、これは基本的に従量課金制有料サービスです。
無料トライアルでは、12か月間、300ドル分は無料で使うことができます。

300ドルというのは少なそうに見えますが、1ドル分使うには、かなりの量のデータ処理をしないと1ドルまでにはなりません。
恐らく、電子工作程度では300ドル使い切ることは無いと思います。

これ、実は、トランジスタ技術11月号の AI & IoT 製作のところで使用されていましたが、ものすごい高度なことをやっておられて、驚きました。

トランジスタ技術 2017年 11 月号 [雑誌]
CQ出版
¥405(2024/03/19 10:45時点)

トランジスタ技術では、Google Cloud Platform 内の Cloud Speech API を使っておられました。
これ、簡単そうに見えるのですが、実際やろうとすると、とーっても難しいです。
まず、Google Cloud Platform を使えるようにするまでが敷居が高かったのです。
最初はサッパリ使い方が分かりませんでした。

そして、設定が複雑多岐に渡るので、と~っても面倒です。
私は何度も挫折しそうになりました。
覚悟しておいてください!!

でも、今後、電子工作レベルでビッグデータや、AI サービスを使うならば、Google Cloud Platform を使わない手はないと思います。

しかし、なぜ、こんなに面倒なのかというと、Google Home で ESP32 のセンサーデータを喋らせようとすると、Google Cloud Platform の中にある、以下の4つサービス設定が必要だからです。

●Google Assistant (Google Home を実際に動かすサービス)
●Actions on Google (Google Assistant を他のサービスと繋げてAction を起こすサービス)
●Dialogflow ( 旧API.ai ) (Google Home が認識する言葉を設定するサービス)
●Firebase (サーバー設置不要で外部からデータベースが使えるサービス)

Google Cloud Platform はその中のいろいろなサービスと使えるようにするための統合した開発環境のような感じです。
ただ、それぞれが独立したサービスのような感じが面倒な点でもあります。
これは基本的にメーカーの開発技術者向けと思って間違いないですね。
とても気軽にIoT 電子工作を楽しむレベルではありません。

Firebase というものは、最近Google が買収したサービスのようで、Google Cloud Platform とは異なるサイトに飛んだりします。
でも、内部で連携されているので、安心してください。

そして、厄介なのが、Linux コマンドラインの操作と、Node.js という言語、JSON とうデータベース形式をある程度理解しなければなりません。
Arduino IDE から入った方はかなり取っ付きにくいと思います。

いろいろネットの情報を見ましたが、ラズパイを使う方法ばかりで、ESP32 単独で動かす方法は見当たらなく、ホントに苦労しましたよ。

でも、一度設定してしまえば後は楽です。
勝手が分かってきて、IFTTT よりも自由に複雑な設定ができますので、おすすめですよ。
それより、何しろ、この複雑なGoogle システムを一般人の私が操ることが出来て、メーカー開発者気分になれるということが、モチベーションアップするかも知れませんね。

では、とても記事一つにまとめることはできないので、第1弾として、まず、Google Cloud Platform の設定方法を説明します。

その他のサービスは後日記事に段階的にアップします。

因みに、以下は Windows 10 , Google Chrome で説明します。
Google Cloud Platform を使う場合は、Google Chrome を使った方が無難です。

スポンサーリンク

1. Google Cloud Platform ( GCP ) の登録方法

まず、以下のリンクを開いてください。

Google Cloud Platform

すると、下図の様な画面になるので、「無料トライアル」をクリックしてください。
先ほど言ったように、12か月間、300ドル分が無料です。
後は従量課金制ですので、クレジットカード登録が必要になります。

すると下図の様な画面になるので、必要なところをチェックして、「同意して続行」をクリックしてください。

ここで、必要な情報を入力していきます。
無料トライアル後は従量課金制になるので、クレジットカードを登録する必要があります。

すると、プロジェクト作成されますので、しばらく時間がかかります。

作成されると、下図の様な画面になりますので、OKをクリックしてください。

画面上部の方にも無料トライアルのカウントが見られます。

2.プロジェクト名を変更する

登録が終わると、下図の様な統合コンソール画面になります。
既に新たなプロジェクト「My First Project」が作られています。
Google Home を動かすには、それ用のプロジェクトを作成しなければなりません。

プロジェクト名はこのままでも良いのですが、ここでは名前を変えてみたいと思います。
下図の様に、「IAM と管理」をクリックします。

プロジェクト名はここでは test とします。
もし、プロジェクト全体が不要になったら、シャットダウンをクリックすると、プロジェクト自体を削除できます。

ただ、Google Cloud Platform でプロジェクトを作るということは、メーカーが製品開発で作るようなプロジェクトと同じレベルになるので、簡単には消去できない設計になっています。

どういうことかというと、シャットダウンしても、数日間は「削除される予定です」というメッセージが出て、復元可能な状態になっています。
パソコンのごみ箱のような感じです。
これは有り難いですね。
不用意に消してしまう事がありませんから安心です。

では、次は Google Assistant を有効にして、認証情報を作成する方法を説明します。

コメント

  1. ほりひろ より:

    esp8266 向けに google-home-notifier を公開しています
    https://github.com/horihiro/esp8266-google-home-notifier

    esp32 については、手元にないので動作確認はしていませんが、よかったらお試しください。

    • mgo-tec mgo-tec より:

      ほりひろさん

      当ブログにお越しいただき、ありがとうございます。
      お返事おそくなりすみません。
      今、いろいろあって、検証する時間がありません。
      手が空いたら、使ってみたいと思います。
      とりあえす、Twitter でツイートしておきますね。

タイトルとURLをコピーしました