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 をやってみる
(※申込駆動開発)

Hiroto YAMAKAWA

August 27, 2018
Tweet

More Decks by Hiroto YAMAKAWA

Other Decks in Technology

Transcript

  1. Java で LINE Bot & LINE Beacon をやってみる

    (※申込駆動開発)
    千歳科学技術大学 情報システム工学科 講師
    山川広人
    IoT縛りの勉強会/SIer主催 SIerIoTLT [email protected]
    札幌版IoT縛りの勉強会 IoTLT札幌#04


    View Slide

  2. 北海道からきました


    戻ったら 札幌版IoTLT Vol.4を開催します!

    (拍手)

    View Slide

  3. 千歳科学技術大学 理工学部 情報システム工学科 講師
    研究分野: バスロケーション等の地域データ活用システムの実用化,

    プログラミング教育,eラーニングシステム

    コミュニティ:


    山川広人

    View Slide

  4. Student の
    Instractor


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

    View Slide

  5. 少なくとも自分が在学中(※約20年前)から存在していたニーズ...それは
    学生が長らく待ち望んでいるもの


    バス ロケーションシステム ボス ロケーションシステム
    遅れ
    ○○教授室
    遅れ
    !?
    ×

    View Slide

  6. 近年、大まかなスケジュール(出張・授業・会議)は学内・学生にWeb共有されている

    ※月によって海外出張&国内出張で数日しか大学にいないとかはある
    スケジュールが入っていない(ように見える日)が意外と学生にとってつらい
    学生が研究の相談をしたいときに限って教授がいない 問題


    • 教員が学内の用事・調整をここぞとばかりに集中消化しており学内各所を移動
    • すでに学生や来客の行列が出来ており、出直したら行列も教授も消えていた
    • 「すぐに戻るよ」→「先生ちょうど良かった」の割り込みで未帰還
    • 色々あって身を隠している
    • etc...

    View Slide

  7. 用事のある学生(ゼミ生・研究室生)だけでなく、

    外部からの来客・納入業者等にも留守の状況を

    周知する必要がある
    現状も、リアルタイムな行き先を示すボードはあるが、

    アナログ...(変更を忘れるし、遠隔で変更できない)
    現状の運用(行き先ボード)


    View Slide

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


    LINE

    Messaging

    API
    LINE

    Beacon
    ○○教授室
    まだn分ぐらいかかる


    ※うまくいったらオープンキャンパスで施設紹介システムとかにもできそう

    ※学生からは学内にBeaconをばらまいて、ボスの入退室や場所をリアルタイム把握したいとの声もあるが

      行動トラッキングはいろいろアレすぎるのでこのぐらいから
    ① 教員による期間予定の送信 (RichMenu/LIFFなど)

      ⇒個人的にはスマートスピーカーで入力もしたい(IoT感増したい)

    ② 学生が教員室の前でLINEアプリを開くとBeaconEvent受信

    ③ BeaconEventのCallbackとして帰室予定を定時
    ○○教授Bot
    ○○教授はxx:xx頃戻ります

    ここをやったことなかったので
    やってみたのが今日の話

    View Slide

  9. • 2016年前後のBeacon発表当時の動かしてみた記事がいくつか(実機&node.js)
    • アプリックス社がMyBeacon® をLINE Beaconとして展示会で使ってる記事発見

     ⇒ 別件でMyBeaconを持っているが LINE Beacon化の知識・ノウハウがない
    • 実機買おうかな...
    LINE Beaconをどう用意するか


    https://beacon.theshop.jp/items/6617930

    View Slide

  10. https://github.com/pizayanz/pxt-linebeacon
    BBC micro:bit を LINE Beacon 化できるパッケージがリリースされてた


    micro:bit なら互換機

    含めて大学にたくさんある

    View Slide

  11. LINE Beacon のBot用の HWID を払い出す


    ★Click
    https://admin-of cial.line.me/beacon/register

    View Slide

  12. LINE Beacon のBot用の HWID を払い出す


    ビーコンと連携可能なアカウントがありません

    Developers サイトからすでにBotは作ってあるのに表示されない.... (ここで数晩ハマる)

    View Slide

  13. 犯人は uBlock Origin プラグインの広告フィルタだった


    ※広告フィルタは適切に整備しましょう

    View Slide

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


    ★Click

    View Slide

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


    ★Click

    View Slide

  16. LINE Beacon のBot用の HWID を払い出す


    ★IDをコピーしておく

    View Slide

  17. micro:bit を LINE Beacon 化 する


    https://makecode.microbit.org/
    ★Click

    View Slide

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


    ★Click
    ★Click
    ★入力

    View Slide

  19. micro:bit を LINE Beacon 化 する


    ★増えてる
    ★増えてる

    View Slide

  20. 増えたブロックで左の様に

    プログラミングして、 

    .hex ファイルをUSB接続した
    micro:bitにコピペする
    micro:bit を LINE Beacon 化 する


    ほぼクリックとD&DでLINE Beacon完成
    ★HWIDはLINEのサイトで

      払い出したもの
    A
    B
    B
    BLE送信
    BLE停止

    View Slide

  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って載せたけど

      使ったのここだけだった

    View Slide

  22. できた!...が、挙動があやしい


    Aボタンを押したmicro:bitにLINEアプリを起動したスマホを近づける
    だが...
    • スマホを遠ざける(leaveイベント発生)と、アプリのイベント受信まで約1分かかり、アプリもこける

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

    View Slide

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


    View Slide

  24. また東京来ます


    つ づ く

    View Slide