LINEとGoogleHomeをつなげて子どもと会話する2022.06.15ビジュアルプログラミングIoTLT vol.11
View Slide
自己紹介NearMugi(ニアムギ)普段はねこIoTLTで活動しています。ねこ2匹飼っています。
イントロ「LINEとGoogleHomeをつなげて子どもと会話する」とは?
イントロスマホで文字を入力しなくてもまた文字が読めなくても家族同士コミュニケーションを取れるシステムです(ちょっと誇大表現です)
イントロ例えば、こんな場面。仕事が遅くなって子どもが帰ってくる時間に間に合わなそう既に家にいるのか分からない・・・子どもは携帯持っているけど何も連絡ない・・・何か連絡したい or 連絡してほしい
イントロそんなとき、GoogleHomeがひと言「もうすぐ帰るよ」と喋ってくれたら子どもも安心しますよね?
イントロまた子どもがGoogleHomeに向かって「ただいま」と言うとLINEに通知が来たら安心しますよね?
イントロ他にもこんな場面。在宅勤務でオンラインミーティング中子どもが帰ってきた「おかえり、おやつあるよ」と伝えたいGoogleHomeが喋ってくれたら・・・
イントロというわけで、作ってみました
イントロちなみに作ったのは1年ほど前なので技術的に古いかもしれません。ご了承ください…
システムの概略GoogleHome → LINE①~④ GoogleHomeからIFTTT経由でGCFの関数を呼び出してFireStoreへデータを保存①GoogleHome ②IFTTT ③GoogleCloudFunctions(GCF) ④FireStore⑤Node-RED ⑥LINE⑤~⑥ FireStoreにデータがあるか定期的にチェック、あればLINEへ通知
システムの概略⑦GoogleHome②GCF ③FireStore④Node-RED①LINELINE → GoogleHome⑤Shiftr ⑥M5Stack①~③ LINEからGCF経由でFireStoreへデータを保存④~⑦ FireStoreを定期的にチェックしてデータがあればMQTTでM5Stackへデータを送信、そこからGoogleHomeへ音声データを渡す
システムの概略実際は赤枠の部分は共通にしていますLINEから・GoogleHomeからのデータをFireStoreで一括管理Node-REDで振り分け
システムの詳細GoogleHome →IFTTT→GoogleCloudFunctionsIF : GoogleHomeTHEN : Webhook ※GCFのトリガーURLを指定
システムの詳細[引用]Firebase Documentation(https://firebase.google.com/docs/functions/get-started?hl=ja)GoogleCloudFunctions→FireStoreGCFからFireStoreにデータを追加する方法は公式サイトに詳しく載っています。
システムの詳細GoogleCloudFunctions→FireStore無事FireStoreにデータが追加されました。
システムの詳細FireStore→Node-RED→LINENode-RED側でFireStoreにデータが入っているかチェックします
システムの詳細FireStore→Node-RED→LINE送信はPython使っちゃっています。20行程度なので・・・まあ(ノードがあるらしいです)GoogleHomeからのデータがあればLINEへ送信します。
システムの詳細つぎにLINEからGoogleHomeの流れです
システムの詳細LINE→FireStoreMessageAPIを使って、特定のグループに書き込みがあるとGCFが呼び出されるようにします
システムの詳細Node-RED→M5Stack→GoogleHomeNode-RED側でFireStoreにデータが入っているかチェックします
システムの詳細Node-RED→M5Stack→GoogleHomeLINEからのデータがあった場合、MQTTを使ってM5Stackに送信しますあとはM5Stack側でいい感じに音声データを作ってGoogleHomeに渡しますhttps://github.com/horihiro/esp8266-google-home-notifierほりひろさんのライブラリを利用しています。ありがとうございます!
デモLINE→GoogleHome
デモGoogleHome→LINE
まとめ・実は何度もリビルドしています。かなり愛着のあるシステムです。・家族も認識して使っています。これが嬉しいところ。・そのうちFireStoreにあるメッセージを表示するのもやってみたい。以上となります。ご清聴ありがとうございました。