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

SIerIoTLT Vol.11 @ opt

SIerIoTLT Vol.11 @ opt

Java で LINE Bot & LINE Beacon をやってみる
(※申込駆動開発)

8c6c1f0c4c41d0640ade76bd71e9e475?s=128

Hiroto YAMAKAWA

August 27, 2018
Tweet

Transcript

  1. Java で LINE Bot & LINE Beacon をやってみる
 (※申込駆動開発) 千歳科学技術大学

    情報システム工学科 講師 山川広人 IoT縛りの勉強会/SIer主催 SIerIoTLT vol11@opt 札幌版IoT縛りの勉強会 IoTLT札幌#04  
  2. 北海道からきました   戻ったら 札幌版IoTLT Vol.4を開催します!
 (拍手)

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

     山川広人
  4. Student の Instractor   やってます ※これだとよく考えたら SIor だった

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

    遅れ !? ×
  6. 近年、大まかなスケジュール(出張・授業・会議)は学内・学生にWeb共有されている
 ※月によって海外出張&国内出張で数日しか大学にいないとかはある スケジュールが入っていない(ように見える日)が意外と学生にとってつらい 学生が研究の相談をしたいときに限って教授がいない 問題   • 教員が学内の用事・調整をここぞとばかりに集中消化しており学内各所を移動 •

    すでに学生や来客の行列が出来ており、出直したら行列も教授も消えていた • 「すぐに戻るよ」→「先生ちょうど良かった」の割り込みで未帰還 • 色々あって身を隠している • etc...
  7. 用事のある学生(ゼミ生・研究室生)だけでなく、
 外部からの来客・納入業者等にも留守の状況を
 周知する必要がある 現状も、リアルタイムな行き先を示すボードはあるが、
 アナログ...(変更を忘れるし、遠隔で変更できない) 現状の運用(行き先ボード)  

  8. 作りたいもの:LINE Bot / Beaconを使ったIoT行き先ボード   LINE
 Messaging
 API LINE


    Beacon ◦◦教授室 まだn分ぐらいかかる ① ② ※うまくいったらオープンキャンパスで施設紹介システムとかにもできそう
 ※学生からは学内にBeaconをばらまいて、ボスの入退室や場所をリアルタイム把握したいとの声もあるが
   行動トラッキングはいろいろアレすぎるのでこのぐらいから ① 教員による期間予定の送信 (RichMenu/LIFFなど)
   ⇒個人的にはスマートスピーカーで入力もしたい(IoT感増したい)
 ② 学生が教員室の前でLINEアプリを開くとBeaconEvent受信
 ③ BeaconEventのCallbackとして帰室予定を定時 ◦◦教授Bot ◦◦教授はxx:xx頃戻ります ③ ここをやったことなかったので やってみたのが今日の話
  9. • 2016年前後のBeacon発表当時の動かしてみた記事がいくつか(実機&node.js) • アプリックス社がMyBeacon® をLINE Beaconとして展示会で使ってる記事発見
  ⇒ 別件でMyBeaconを持っているが LINE Beacon化の知識・ノウハウがない

    • 実機買おうかな... LINE Beaconをどう用意するか   https://beacon.theshop.jp/items/6617930
  10. https://github.com/pizayanz/pxt-linebeacon BBC micro:bit を LINE Beacon 化できるパッケージがリリースされてた   micro:bit

    なら互換機
 含めて大学にたくさんある
  11. LINE Beacon のBot用の HWID を払い出す   ★Click https://admin-of cial.line.me/beacon/register

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

    (ここで数晩ハマる)
  13. 犯人は uBlock Origin プラグインの広告フィルタだった   ※広告フィルタは適切に整備しましょう

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

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

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

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

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

     ★Click ★Click ★入力
  19. micro:bit を LINE Beacon 化 する   ★増えてる ★増えてる

  20. 増えたブロックで左の様に
 プログラミングして、 
 .hex ファイルをUSB接続した micro:bitにコピペする micro:bit を LINE Beacon

    化 する   ほぼクリックとD&DでLINE Beacon完成 ★HWIDはLINEのサイトで
   払い出したもの A B B BLE送信 BLE停止
  21. 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って載せたけど
   使ったのここだけだった
  22. できた!...が、挙動があやしい   Aボタンを押したmicro:bitにLINEアプリを起動したスマホを近づける だが... • スマホを遠ざける(leaveイベント発生)と、アプリのイベント受信まで約1分かかり、アプリもこける
 (iPad版 LINEアプリ v8.12.1。 leaveが将来廃止予定だから?

    iPhone版は問題なし) • でもleaveイベントが発生しないと、再度スマホが近づく(再enterイベント)ができない • このままでは 教授室の前で不在を教えてくれるけどアプリはこけるホラーっぽい動きに.... 実機で見たい方は懇親会タイムでお声がけください ※SIerIoTLT懇親会で検証にご協力いただいた @ryoichi_obara さん、ありがとうございます!
  23. ボスロケーションシステムにむけて、とりあえずLINE Beaconを試した • LINE Beacon の HWID の払い出しは広告フィルタをOFFっておく • LINE

    Beacon は micro:bit を使うと(ほぼ)クリックとD&Dで作れる • Javaでも数行で BeaconEvent を Callback できる • iPad版アプリが Leave イベントを受け取る際の挙動があやしい まとめ  
  24. また東京来ます   つ づ く