Slide 1

Slide 1 text

Java で LINE Bot & LINE Beacon をやってみる
 (※申込駆動開発) 千歳科学技術大学 情報システム工学科 講師 山川広人 IoT縛りの勉強会/SIer主催 SIerIoTLT vol11@opt 札幌版IoT縛りの勉強会 IoTLT札幌#04

Slide 2

Slide 2 text

北海道からきました 戻ったら 札幌版IoTLT Vol.4を開催します!
 (拍手)

Slide 3

Slide 3 text

千歳科学技術大学 理工学部 情報システム工学科 講師 研究分野: バスロケーション等の地域データ活用システムの実用化,
 プログラミング教育,eラーニングシステム 
 コミュニティ: 山川広人

Slide 4

Slide 4 text

Student の Instractor やってます ※これだとよく考えたら SIor だった

Slide 5

Slide 5 text

少なくとも自分が在学中(※約20年前)から存在していたニーズ...それは 学生が長らく待ち望んでいるもの バス ロケーションシステム ボス ロケーションシステム 遅れ ○○教授室 遅れ !? ×

Slide 6

Slide 6 text

近年、大まかなスケジュール(出張・授業・会議)は学内・学生にWeb共有されている
 ※月によって海外出張&国内出張で数日しか大学にいないとかはある スケジュールが入っていない(ように見える日)が意外と学生にとってつらい 学生が研究の相談をしたいときに限って教授がいない 問題 • 教員が学内の用事・調整をここぞとばかりに集中消化しており学内各所を移動 • すでに学生や来客の行列が出来ており、出直したら行列も教授も消えていた • 「すぐに戻るよ」→「先生ちょうど良かった」の割り込みで未帰還 • 色々あって身を隠している • etc...

Slide 7

Slide 7 text

用事のある学生(ゼミ生・研究室生)だけでなく、
 外部からの来客・納入業者等にも留守の状況を
 周知する必要がある 現状も、リアルタイムな行き先を示すボードはあるが、
 アナログ...(変更を忘れるし、遠隔で変更できない) 現状の運用(行き先ボード)

Slide 8

Slide 8 text

作りたいもの:LINE Bot / Beaconを使ったIoT行き先ボード LINE
 Messaging
 API LINE
 Beacon ○○教授室 まだn分ぐらいかかる ① ② ※うまくいったらオープンキャンパスで施設紹介システムとかにもできそう
 ※学生からは学内にBeaconをばらまいて、ボスの入退室や場所をリアルタイム把握したいとの声もあるが
   行動トラッキングはいろいろアレすぎるのでこのぐらいから ① 教員による期間予定の送信 (RichMenu/LIFFなど)
   ⇒個人的にはスマートスピーカーで入力もしたい(IoT感増したい)
 ② 学生が教員室の前でLINEアプリを開くとBeaconEvent受信
 ③ BeaconEventのCallbackとして帰室予定を定時 ○○教授Bot ○○教授はxx:xx頃戻ります ③ ここをやったことなかったので やってみたのが今日の話

Slide 9

Slide 9 text

• 2016年前後のBeacon発表当時の動かしてみた記事がいくつか(実機&node.js) • アプリックス社がMyBeacon® をLINE Beaconとして展示会で使ってる記事発見
  ⇒ 別件でMyBeaconを持っているが LINE Beacon化の知識・ノウハウがない • 実機買おうかな... LINE Beaconをどう用意するか https://beacon.theshop.jp/items/6617930

Slide 10

Slide 10 text

https://github.com/pizayanz/pxt-linebeacon BBC micro:bit を LINE Beacon 化できるパッケージがリリースされてた micro:bit なら互換機
 含めて大学にたくさんある

Slide 11

Slide 11 text

LINE Beacon のBot用の HWID を払い出す ★Click https://admin-of cial.line.me/beacon/register

Slide 12

Slide 12 text

LINE Beacon のBot用の HWID を払い出す ビーコンと連携可能なアカウントがありません Developers サイトからすでにBotは作ってあるのに表示されない.... (ここで数晩ハマる)

Slide 13

Slide 13 text

犯人は uBlock Origin プラグインの広告フィルタだった ※広告フィルタは適切に整備しましょう

Slide 14

Slide 14 text

LINE Beacon のBot用の HWID を払い出す ★Click

Slide 15

Slide 15 text

LINE Beacon のBot用の HWID を払い出す ★Click

Slide 16

Slide 16 text

LINE Beacon のBot用の HWID を払い出す ★IDをコピーしておく

Slide 17

Slide 17 text

micro:bit を LINE Beacon 化 する https://makecode.microbit.org/ ★Click

Slide 18

Slide 18 text

パッケージの追加で https://github.com/pizayanz/pxt-linebeacon を追加 micro:bit を LINE Beacon 化 する ★Click ★Click ★入力

Slide 19

Slide 19 text

micro:bit を LINE Beacon 化 する ★増えてる ★増えてる

Slide 20

Slide 20 text

増えたブロックで左の様に
 プログラミングして、 
 .hex ファイルをUSB接続した micro:bitにコピペする micro:bit を LINE Beacon 化 する ほぼクリックとD&DでLINE Beacon完成 ★HWIDはLINEのサイトで
   払い出したもの A B B BLE送信 BLE停止

Slide 21

Slide 21 text

LINE Beacon の Callback を受け取る(Java 8, Spring Boot) @LineMessageHandler public class Callback { @EventMapping public Message handleBeacon(BeaconEvent event) { String eventStr = event.getBeacon().toString(); return new TextMessage(text); } } ※ 元となるSpring Bootプロジェクトの作り方とかは 
   https://github.com/gishi-yama/linebot-java-handson/ にて公開 ※ このLTのもう少し詳細な手順も↑で順次公開します ※タイトルにJavaって載せたけど
   使ったのここだけだった

Slide 22

Slide 22 text

できた!...が、挙動があやしい Aボタンを押したmicro:bitにLINEアプリを起動したスマホを近づける だが... • スマホを遠ざける(leaveイベント発生)と、アプリのイベント受信まで約1分かかり、アプリもこける
 (iPad版 LINEアプリ v8.12.1。 leaveが将来廃止予定だから? iPhone版は問題なし) • でもleaveイベントが発生しないと、再度スマホが近づく(再enterイベント)ができない • このままでは 教授室の前で不在を教えてくれるけどアプリはこけるホラーっぽい動きに.... 実機で見たい方は懇親会タイムでお声がけください ※SIerIoTLT懇親会で検証にご協力いただいた @ryoichi_obara さん、ありがとうございます!

Slide 23

Slide 23 text

ボスロケーションシステムにむけて、とりあえずLINE Beaconを試した • LINE Beacon の HWID の払い出しは広告フィルタをOFFっておく • LINE Beacon は micro:bit を使うと(ほぼ)クリックとD&Dで作れる • Javaでも数行で BeaconEvent を Callback できる • iPad版アプリが Leave イベントを受け取る際の挙動があやしい まとめ

Slide 24

Slide 24 text

また東京来ます つ づ く