Slide 1

Slide 1 text

20221202_enebular meetup 年末恒例:自由研究発表会 LINE BOT のオウム返しと M5Stack からの受信を両対応し たクラウド実行環境の仕組みを作ってみた話 ワンフットシーバス 田中正吾

Slide 2

Slide 2 text

私の話はスライドを後ほど共有します。 話す内容に注力いただいて大丈夫です!

Slide 3

Slide 3 text

田中正吾(たなかせいご) 屋号:ワンフットシーバス 2004年よりフリーランス。以後、FLASH制作を 中心にインタラクティブコンテンツを主に行い現 在に至る。 最近ではWEBフロントエンドをベースにしなが らも、情報とインターフェースが合わさるアプ ローチという視点でIoTやMixed Realityといった 技術も取り入れながら活動しています。

Slide 4

Slide 4 text

LINE BOT と M5Stack からの受信を 両対応したクラウド実行環境の仕組みを作ってみた

Slide 5

Slide 5 text

こんな仕組み enebular クラウド実行環境でつくった LINE BOT でシンプルオウム返しや M5Stack からボタン操作や起動をやりとりします M5Stack LINE BOT enebular クラウド実行環境 スマホ オウム返し ボタン操作

Slide 6

Slide 6 text

早速デモしてみます!

Slide 7

Slide 7 text

まず LINE BOT でオウム返し

Slide 8

Slide 8 text

M5Stack でボタンを押すと Push Message で割り込みメッセージ 起動時に Launched で、たとえば A ボタンを押すと Push A のメッセージが飛ぶ

Slide 9

Slide 9 text

実際の仕組み

Slide 10

Slide 10 text

LINE Developers で LINE BOT の仕組みが すでに設定できている状態

Slide 11

Slide 11 text

Discover Flow に すぐ動かせる仕組みをおきました https://enebular.com/discover/flow/528c15e2-abeb-4013-8068-65d5ae712fa5

Slide 12

Slide 12 text

こちらをプロジェクトにインポートして

Slide 13

Slide 13 text

プロジェクトに lcdp-toolkit ノードもインポート

Slide 14

Slide 14 text

フローを編集します

Slide 15

Slide 15 text

LINE BOT 設定 change ノードに設定 LINE Developers で、今回の LINE BOT のチャネルシークレット・ チャネルアクセストークン・ユーザーIDを反映

Slide 16

Slide 16 text

部分を チャネルシークレットに置き換え チャネル基本設定 > チャネルシークレット からコピーアンドペースト

Slide 17

Slide 17 text

部分を チャネルアクセストークンに置き換え Messaging API設定 > チャネルアクセストークン からコピーアンドペースト

Slide 18

Slide 18 text

部分を ユーザーIDに置き換え チャネル基本設 > ユーザーID からコピーアンドペースト

Slide 19

Slide 19 text

保存してフローは設定完了

Slide 20

Slide 20 text

クラウド実行環境を一つ作って

Slide 21

Slide 21 text

今回の仕組みをデプロイ

Slide 22

Slide 22 text

デプロイできたら設定に移動

Slide 23

Slide 23 text

HTTP トリガーの URL 重複しないようにランダム値をつけつつ設定

Slide 24

Slide 24 text

HTTP トリガーをメモ M5Stack で使います

Slide 25

Slide 25 text

LINE Developers の今回の LINE BOT で さきほどの HTTP トリガー URL を反映

Slide 26

Slide 26 text

LINE BOT でオウム返しを一度検証 長く起動してないと最初の起動が時間がかかり最初のメッセージの返答は 10 秒くらい待ちます

Slide 27

Slide 27 text

M5Stack のソースコードは こちらのリポジトリに公開してます https://github.com/1ft-seabass/enebular-m5stack-simple-post

Slide 28

Slide 28 text

プログラムをコピー enebular-m5stack-simple-post.ino

Slide 29

Slide 29 text

プログラム内に Wi-Fi 設定を反映

Slide 30

Slide 30 text

今回送る enebular クラウド実行環境の URLを反映 今回送る enebular クラウド実行環境の URL に /from/m5stack をつけたものを反映します

Slide 31

Slide 31 text

M5Stack に書き込みます

Slide 32

Slide 32 text

起動すると早速 Launched! メッセージ

Slide 33

Slide 33 text

ボタンを押すとメッセージされます

Slide 34

Slide 34 text

時間があればフローの流れの紹介

Slide 35

Slide 35 text

アクセスする分岐が大事なところ

Slide 36

Slide 36 text

req.url は /トリガーURL/ 以下追加パスで 来るので / で split してトリガー名を動的取得 トリガー名が変わっても値がちゃんと取得できる

Slide 37

Slide 37 text

トリガー名が分かるので、これを元に 追加パスに応じた分岐をしてます これで、M5Stack の特定アクセス以外はオウム返しができます

Slide 38

Slide 38 text

エクストラ 時間に余裕があれば ➔ なぜつくったか。LINE BOT のような通知がないと IoT つ ながったの分かりにくい問題。ログあるけど手順が多い。 ➔ M5Stack からの値はどのように受けているか ➔ タイムアウトを15秒に長めにしてコールドスタート時に エラーにならないようにした話 ➔ 重複しない トリガー名のランダム名の TIPS。Google に 乱数ツールがある。 ➔ シンプルな LINE BOT も公開予定です!

Slide 39

Slide 39 text

まとめ ➔ パスによる分岐などだいぶ elebular クラウド開発環境と 仲良くなれたのでよかった ➔ ナレッジをある程度まとめれたよかった ➔ このナレッジも出来ればブログにまとめる予定です! ➔ IoT 連携についてもクラウド開発環境で連携例を作れて今 後も伝えやすそう ➔ LINE BOT と IoT の仕組みが融合して楽しい!