Upgrade to Pro — share decks privately, control downloads, hide ads and more …

VisualProgramming_GoogleHome_LINE

 VisualProgramming_GoogleHome_LINE

NearMugi

June 15, 2022
Tweet

More Decks by NearMugi

Other Decks in Programming

Transcript

  1. LINEとGoogleHomeをつなげて
    子どもと会話する
    2022.06.15
    ビジュアルプログラミングIoTLT vol.11

    View Slide

  2. 自己紹介
    NearMugi(ニアムギ)
    普段はねこIoTLTで活動しています。
    ねこ2匹飼っています。

    View Slide

  3. イントロ
    「LINEとGoogleHomeをつなげて
    子どもと会話する」とは?

    View Slide

  4. イントロ
    スマホで文字を入力しなくても
    また文字が読めなくても
    家族同士コミュニケーションを取れる
    システムです
    (ちょっと誇大表現です)

    View Slide

  5. イントロ
    例えば、こんな場面。
    仕事が遅くなって子どもが帰ってくる時間に
    間に合わなそう
    既に家にいるのか分からない・・・
    子どもは携帯持っているけど何も連絡ない・・・
    何か連絡したい or 連絡してほしい

    View Slide

  6. イントロ
    そんなとき、
    GoogleHomeがひと言
    「もうすぐ帰るよ」と喋ってくれたら
    子どもも安心しますよね?

    View Slide

  7. イントロ
    また子どもが
    GoogleHomeに向かって
    「ただいま」と言うとLINEに通知が来たら
    安心しますよね?

    View Slide

  8. イントロ
    他にもこんな場面。
    在宅勤務でオンラインミーティング中
    子どもが帰ってきた
    「おかえり、おやつあるよ」と伝えたい
    GoogleHomeが喋ってくれたら・・・

    View Slide

  9. イントロ
    というわけで、作ってみました

    View Slide

  10. イントロ
    ちなみに作ったのは1年ほど前なので
    技術的に古いかもしれません。
    ご了承ください…

    View Slide

  11. システムの概略
    GoogleHome → LINE
    ①~④ GoogleHomeからIFTTT経由でGCFの関
    数を呼び出してFireStoreへデータを保存
    ①GoogleHome ②IFTTT ③GoogleCloudFunctions(GCF) ④FireStore
    ⑤Node-RED ⑥LINE
    ⑤~⑥ FireStoreにデータがあるか定期的に
    チェック、あればLINEへ通知

    View Slide

  12. システムの概略
    ⑦GoogleHome
    ②GCF ③FireStore
    ④Node-RED
    ①LINE
    LINE → GoogleHome
    ⑤Shiftr ⑥M5Stack
    ①~③ LINEからGCF経由でFireStoreへデー
    タを保存
    ④~⑦ FireStoreを定期的にチェックしてデー
    タがあればMQTTでM5Stackへデータを送
    信、そこからGoogleHomeへ音声データを渡

    View Slide

  13. システムの概略
    実際は赤枠の部分は共通にしています
    LINEから・GoogleHomeからのデー
    タをFireStoreで一括管理
    Node-REDで振り分け

    View Slide

  14. システムの詳細
    GoogleHome →IFTTT→GoogleCloudFunctions
    IF : GoogleHome
    THEN : Webhook ※GCFのトリガーURLを指定

    View Slide

  15. システムの詳細
    [引用]Firebase Documentation(https://firebase.google.com/docs/functions/get-started?hl=ja)
    GoogleCloudFunctions→FireStore
    GCFからFireStoreにデータを追加する方法は公式サイトに詳しく載っています。

    View Slide

  16. システムの詳細
    GoogleCloudFunctions→FireStore
    無事FireStoreにデータが追加されました。

    View Slide

  17. システムの詳細
    FireStore→Node-RED→LINE
    Node-RED側でFireStoreにデータが入っているかチェックします

    View Slide

  18. システムの詳細
    FireStore→Node-RED→LINE
    送信はPython使っちゃっています。
    20行程度なので・・・まあ
    (ノードがあるらしいです)
    GoogleHomeからのデータがあればLINEへ送信します。

    View Slide

  19. システムの詳細
    つぎにLINEからGoogleHomeの流れです

    View Slide

  20. システムの詳細
    LINE→FireStore
    MessageAPIを使って、特定のグループに書き込みがあるとGCFが呼び
    出されるようにします

    View Slide

  21. システムの詳細
    Node-RED→M5Stack→GoogleHome
    Node-RED側でFireStoreにデータが入っているかチェックします

    View Slide

  22. システムの詳細
    Node-RED→M5Stack→GoogleHome
    LINEからのデータがあった場合、MQTTを使ってM5Stackに送信します
    あとはM5Stack側でいい感じに音声データを作ってGoogleHomeに渡します
    https://github.com/horihiro/esp8266-google-home-notifier
    ほりひろさんのライブラリを利用しています。ありがとうございます!

    View Slide

  23. デモ
    LINE→GoogleHome

    View Slide

  24. デモ
    GoogleHome→LINE

    View Slide

  25. まとめ
    ・実は何度もリビルドしています。かなり愛着のあるシステムです。
    ・家族も認識して使っています。これが嬉しいところ。
    ・そのうちFireStoreにあるメッセージを表示するのもやってみたい。
    以上となります。
    ご清聴ありがとうございました。

    View Slide