Slide 1

Slide 1 text

LINE×IoT入門ハンズオン 田中みそ 2024/6/6

Slide 2

Slide 2 text

自己紹介 田中 みそ (田中 大樹) Qiita: miso_develop Twitter: miso_develop Facebook: 田中みそ  LINE API Expert  IoT界隈やスマートスピーカー界隈に よくいます

Slide 3

Slide 3 text

xxx • xxx • xxx • xxx • xxx • xxx

Slide 4

Slide 4 text

タイムスケジュール • IoT と親和性のある LINE API(20分) • 作例紹介(10分) • LINE Notify ハンズオン(10分) • LINE Bot ハンズオン(15分)

Slide 5

Slide 5 text

IoTと親和性のあるLINE API

Slide 6

Slide 6 text

IoTと親和性のあるLINE API • LINE Notify • Messaging API (LINE Bot) • LIFF (LINE Front-end Framework) • LINE Beacon

Slide 7

Slide 7 text

LINE Notify • LINEへPush通知を送れるAPI • アラートだったり定期通知 • 例)センサ値を定期的にチェックしてしきい値を超えたら通知 • 利用が手軽 • トークンを発行してURL(API)を叩くだけ

Slide 8

Slide 8 text

LINE Notify HTTP POST Push通知 グローバル ネットワーク ローカル ネットワーク

Slide 9

Slide 9 text

Messaging API (LINE Bot) • ReplayとPushが使える • Replay: Botに対してメッセージが送られると返信をする • ユーザートリガーで実行される • CLIのようにLINEに命令(メッセージ)を送って デバイスを制御できる • ChatGPT APIのFunction callingを組み合わせると 自然言語インターフェースとして使いやすい

Slide 10

Slide 10 text

Messaging API (LINE Bot) • リッチメニューという簡易GUI機能がある • 任意の画像をセットでき、タップ領域を自由に 割り当てられるので簡易コントローラーとして使える • LINEサーバーから通信を受け取るHTTPサーバーと Botプログラムが必要 • 一般的にAWS LambdaといったFaaS等のクラウドが利用される

Slide 11

Slide 11 text

Messaging API (LINE Bot) HTTP Cloud • 一般的なLINE Botの構成 • クラウドへBotプログラムをデプロイし、 LINEサーバーからアクセスされる

Slide 12

Slide 12 text

Messaging API (LINE Bot) HTTP • Bot SDKがないのでMessaging API のJSONこねこね処理が大変 • デバイスのIPをグローバルに公開しないと いけない →この構成はハードルが高い

Slide 13

Slide 13 text

Messaging API (LINE Bot) • あいだにPCやサーバーを挟むことで解決 • PC側でトンネリングサービスを使用する HTTP

Slide 14

Slide 14 text

Messaging API (LINE Bot) HTTP • あいだにPCやサーバーを挟むことで解決 • PC側でトンネリングサービスを使用する

Slide 15

Slide 15 text

Messaging API (LINE Bot) Cloud • obnizを使うとローカル環境を意識する必要がなくなる • obnizデバイスごとに固有のIDが割り振られているため、 一般ユーザー向けサービスの場合はobnizを使うといい • 利用例) • ユーザーにLINE Botからobniz IDを登録してもらい、 LINEアカウントのIDと紐づける • LINE Botに飛んできたリクエストからLINEアカウントIDを取得し、紐づいている obnizデバイスに対して処理を行う HTTP WebSocket WebSocket

Slide 16

Slide 16 text

LIFF (LINE Front-end Framework) • LINEアプリ上のWebViewでWebアプリを実行できる • Messaging APIと併用する形 • ユーザー認証にLINEアカウントを使える • LINEアプリだけでなくブラウザからも使える

Slide 17

Slide 17 text

LINE Beacon • デバイスをビーコン化してLINEと連携できる • ESP32系デバイス等をビーコンにできる • 「GreenBeacon」というArduinoライブラリで簡単にビーコン化 • デバイスメッセージとして任意のデータを送信できる • 例)郵便受けにビーコンをおいて、投函をうまいこと検知して、 郵便受けの近くを通ったときLINEに郵便有無を通知するとか

Slide 18

Slide 18 text

LINE Beacon • ビーコンから飛んできた信号はLINEアプリを通じて 自動的にLINEサーバーへ送信され、Botプログラムへ HTTPリクエストが送られる • Botに表示するメッセージはデバイス側ではなく、 Botプログラム上で定義する • ビーコンから送られる情報はあくまでハードウェアIDや デバイスメッセージのみ

Slide 19

Slide 19 text

LINE Beacon HTTP Cloud ハードウェアID デバイスメッセージ Bluetooth

Slide 20

Slide 20 text

LINE Beacon HTTP Bluetooth ハードウェアID デバイスメッセージ

Slide 21

Slide 21 text

IoTと親和性のあるLINE API • LINE Notify • Messaging API (LINE Bot) • LIFF (LINE Front-end Framework) • LINE Beacon

Slide 22

Slide 22 text

作例の紹介

Slide 23

Slide 23 text

作例の紹介 • Auto Game Controller(Messaging API) • 家電リモコンBot(LIFF) • FukuTrip(LINE Beacon)

Slide 24

Slide 24 text

Auto Game Controller(Messaging API)

Slide 25

Slide 25 text

Auto Game Controller(Messaging API) • ATOMS3をNintendo Switchコントローラー化し、 Messaging APIによりLINEからマクロ実行できるBot • BotプログラムはRaspberry Piで実行される • ngrokを使ってポートをグローバルネットワークに公開し、 LINEサーバーからアクセスできるようにしている • Botプログラムの中でATOMS3の制御も行っている

Slide 26

Slide 26 text

Auto Game Controller(Messaging API) HTTP opniz (WebSocket)

Slide 27

Slide 27 text

家電リモコンBot(LIFF) • 家電をLINEから操作するBot • Messaging APIによるメッセージ入力と、 LIFFによるGUI操作が行える • 家電はRaspberry Piから赤外線やHDMI等 で制御

Slide 28

Slide 28 text

家電リモコンBot(LIFF)

Slide 29

Slide 29 text

FukuTrip(LINE Beacon) • LINEハッカソンで開発した福山市の観光案内Bot • LINE Beaconを観光スポットに配置し、 立ち寄った観光客へ観光情報をPush配信 • BeaconのデバイスメッセージによりBotの リッチメニューや処理を動的に切り替える ことができる

Slide 30

Slide 30 text

ハンズオン

Slide 31

Slide 31 text

LINE Notify ハンズオン ハンズオン内容は以下のQiita記事に掲載しています。 https://qiita.com/miso_develop/items/ebb78d9cdc678c7664d3

Slide 32

Slide 32 text

LINE Bot ハンズオン ハンズオン内容は以下のQiita記事に掲載しています。 https://qiita.com/miso_develop/items/3bb4325c7871647a919a