🛠️

ビジュアルプログラミングのみで作るLINE + IoT 双方向通信の仕組み。 #LINEDC

2022/06/01に公開

LINE Developer CommunityはLINE APIに関連する最新情報や開発Tipsを共有するコミュニティです。
2022年4月に行われたLINE DC Monthly LT #1 - LINE de IoT「ものづくりを語ろう!」では、IoTとLINEを連携させた各種アイデアが発表されました。この記事では豊田さんの登壇を紹介します。

https://www.youtube.com/watch?v=VI6T91cstog

自己紹介

今回、ビジュアルプログラミングのみで作るLINE + IoTの仕組みというタイトルで発表させていただきます。私、豊田といいまして、こちらの写真やIDでtwitterやってます。ビジュアルプログラミングIoTLTコミュニティを共同で主宰してたり、昨年10月からマイクロソフトMVPいただいたりとかしてます。

何を作ったのか

さっそく作ったものの動作概要と動画の話へ入っていければと思います。今回、LINEアプリから通信する物を反応させる方向と、デバイスを触って、LINE側に通知が来るというものを作ってます。

デモ動画

デモ動画になります。デバイスのボタンを押したらLINE Notifyに反応するように作ってます。左のボタンを押すとチャイムが鳴ります。真ん中のボタンを押すと、ピカピカLEDテープが光りつつ、その下にある電子ペーパーの表示も変わります。一番右のボタンを押すと、LEDが違う色で光りつつ、音が鳴る仕組みも同時に動きます。今度はデバイス側のボタンを押すと、LINENotifyで、スマホに通知が来ています。構成図のLINEアプリからものを反応させる方向の通信の部分です。

LINE → デバイス の通信解説

リッチメニューを操作すると、LINEbotがenebularの上で動いてまして、そのLINEbotサーバからHTTPのPOSTがbeebotteに飛びます。このbeebotteから、意図としてはスマホを持った誰かが、家の中の異なる部屋に置いてあるデバイスにそれぞれ異なる通知を送るっていう想定で。M5StackCoer2で音を流したりとか、右側の方に書いてあるM5StickCPlusの方で繋がったLEDテープ光らせたり。M5Paperっていう電子ペーパー搭載デバイスの表示を書き換えたりできました。

ポイントになるのはこちらLINEbot。こちらはLINEアプリからのPOSTを受けて動くので、通信方法をIoTでよく出てくるMQTTに変換して、一斉配信の通信に変えて、LINEアプリから物へのIoTを実現しています。

デバイス → LINEの通信解説

反対方向はシンプルです。デバイスを押すと、デバイスがHTTPのPOSTを送ります。enebularがLINEbotサーバーとしても動いてたんですけど、POSTを受けてLINENotifyに通知をする処理も実装しており、仲介役になってLINEに通知を送るというような構成になってます。

LINEの設定

全体の構成は「LINEとものの間でお互い双方向の通信ができる」というのが今回の仕組みです。まずはLINEのリッチメニューの操作をしたら、botサーバーがそれを受けて。
LINE関連の設定はLINE Messaging APIでbotを扱うところと、リッチメニューを作るというところとあと、LINENotifyを送るための設定をやってます。全部GUIベースで設定ができます。

サーバーはenebularのクラウド実行環境

今回、サーバーはenebularのクラウド実行環境を使ってます。enebularでは、Node-REDを使ったりできますので、フロー型のビジュアルプログラミングになります。

HTTPのPOSTをMQTTにするMQTTブローカーの役割にも使えるbeebotee。こちらは通信用の設定をGUI上でポチポチと設定していくというような形です。

テキストプログラミングは一切出てこず、GUIで設定したサービスとビジュアルプログラミングのみで、サーバー・デバイスの実装したLINEとIoTの仕組みが完成しました。今回、あんまりセンサーとか使ってなかったので、そういうところもやっていけたらいいなと思ってます。

IoT関連の話でいうと、Qiitaの方にLINEとAzure functions使えそうな話とか。先月共著で書いた本が出てます。この中ではさらにシンプルなビジュアルプログラミングとIoTの話を書いていたりします。

こちらの書籍やリンクもご覧いただければと思います。ご清聴ありがとうございました。

Discussion