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

自然環境モニタリングのためのBluetooth Low Energyを用いた通知対象セグメンテーション

Kanta Demizu
February 16, 2021

自然環境モニタリングのためのBluetooth Low Energyを用いた通知対象セグメンテーション

Kanta Demizu

February 16, 2021
Tweet

More Decks by Kanta Demizu

Other Decks in Research

Transcript

  1. 自然環境モニタリングのための
    Bluetooth Low Energy を用いた
    通知対象セグメンテーション
    5E22 出水幹大
    2021/02/16
    舞鶴工業高等専門学校 電気情報工学科 内海研究室

    View full-size slide

  2. 報告内容
    1. 研究背景
    2. 研究目標
    3. 研究目的
    4. 位置情報検出方法の検討
    5. システム構成
    6. エッジデバイスの構成
    7. データベースの構成
    8. 通知フロー
    9. システムの検証
    10. 結論 1

    View full-size slide

  3. 研究背景
    • IoT はモニタリング領域での活用が
    期待されている
    • 舞鶴市では害獣による被害が
    多く発生している
    まいづるメール配信サービス
    • 情報過多になり、緊急時の対応が困難
    • 市全域の情報を配信
    • 情報配信に職員の対応が必要
    • 情報源が電話情報
    → 適切な情報配信が必要である
    2019 年度の舞鶴市における主な事故
    参考: 令和元年版舞鶴市統計書 (2021/02/11 参照)
    舞鶴市のメール配信サービスの一文
    参考: まいづるメール配信サービス (2021/02/11 参照)
    2

    View full-size slide

  4. 研究目標
    適切な情報配信には以下の項目が必要:
    • 害獣への対応が可能な
    ユーザーへ通知を行う
    • エリア毎の通知に対応する
    害獣情報配信の自動化と
    通知手法の改善を行う
    システム利用イメージ 3

    View full-size slide

  5. 研究目的
    • 既存の害獣通知サービスを改善
    • ユーザー位置情報に応じた通知対象セグメンテーションを実現
    位置情報の取得
    • エリア毎にエッジデバイスを設置して通知対象の位置情報*1を取得
    • 設置コストを最小限にするため低消費電力な手法を利用
    • スマートフォンの Bluetooth Low Energy (BLE) を利用
    *1300[m] – 1000[m] の精度
    4

    View full-size slide

  6. 位置情報検出方法の検討
    システム要求:
    • 低消費電力である
    • ユーザーのプライバシーに
    配慮して位置情報の精度を
    コントロールできる
    → BLE を用いる手法が
    最適である
    GPS を用いる手法
    • 通常時より 50[mAh] 多くの消費電力を要する
    • 屋内などでの測位は難しい
    Wireless LAN を用いる手法
    • 未知のデバイスへコネクション確立させるのは難しい
    • 最大通信距離: 30[m] – 50[m]
    BLE を用いる手法
    • 通常時より 10[mAh] 多くの消費電力を要する
    • アドバタイズによって未知のデバイスへ
    コネクション確立が可能である
    • 最大通信距離: 160[m] – 260[m]
    5

    View full-size slide

  7. システム構成
    • クライアントは
    iBeacon のフレーム形式で
    アドバタイズ
    • エッジデバイスは
    設置エリアの ID を設定
    • DB にユーザー情報・
    コネクション履歴を格納
    • 通知時に DB から
    通知ターゲットを抽出
    Cloud Server
    BLE Connection
    Client
    Notify
    Connection
    History
    Edge Devices
    Database
    API Server
    Device 1
    balenaOS
    Raspberry Pi
    Device 2
    balenaOS
    Raspberry Pi
    Cosmos DB
    Cloud
    Firestore
    App Service Docker
    システム構成
    6

    View full-size slide

  8. エッジデバイスの構成
    エッジデバイスは以下の役割をもつ:
    • BLE によってクライアントとの間で
    コネクションを確立する
    • アドバタイズパケットの
    Proximity UUID から
    コネクション確立した端末を識別する
    • データベースに
    コネクション履歴を格納する
    エッジデバイスのデバイス検出フロー 7

    View full-size slide

  9. データベースの構成
    Cosmos DB
    各コネクション毎にドキュメントを生成
    • エッジデバイスの ID
    • アドバタイズパケットの Proximity UUID
    • ドキュメントの作成日時
    Cloud Firestore
    ユーザーアカウント毎にドキュメントを生成
    • 通知用トークン
    • ユーザーの UUID
    データベースのドキュメント操作は
    API サーバーで提供している
    Cloud Server
    BLE Connection
    Client
    Notify
    Connection
    History
    Edge Devices
    Database
    API Server
    Device 1
    balenaOS
    Raspberry Pi
    Device 2
    balenaOS
    Raspberry Pi
    Cosmos DB
    Cloud
    Firestore
    App Service Docker
    システム構成
    8

    View full-size slide

  10. 通知フロー
    Client
    Android
    Device
    Notification
    Provider
    FCM
    Subscribe
    to Topic
    Area 1
    Clients
    Notification
    クライアントへの通知フロー
    Firebase Cloud Messaging (FCM)
    Topic Messaging で通知ターゲットの管理と通知の配信を担う
    9

    View full-size slide

  11. 通知フロー
    • 右のフローで
    通知ターゲットを抽出する
    • 抽出したドキュメントの
    Proximity UUID を用いて
    Cloud Firestore の
    通知用トークンを取得する
    • 取得した通知用トークンを用いて
    FCM のトピックを作成する
    上記の動作をする、エリアを指定した
    通知用 API を API サーバーで提供している
    Start
    エッジデバイスID(edgeId)‧
    UUIDを受け取る
    ドキュメント作成時間を
    降順ソートしたドキュメントを取得
    for _, u := range
    HistByDevID
    edgeId のコネクション履歴
    (HistByDevID) を取得
    True
    c.EdgeID == edgeId
    UUID==u の
    ドキュメントを抽出(c)
    result = append(result, c.UUID)
    return result
    End
    通知ターゲットの抽出フロー
    10

    View full-size slide

  12. システムの検証: BLE のコネクション検出
    コネクション確立時の情報がデータベースに格納されている
    格納されたドキュメント
    1 {
    2 "_id": "60258e3a1541275c84175d61",
    3 "created_at": "2021-02-03T02:30:22Z",
    4 "deleted_at": "",
    5 "edge_id": 2,
    6 "uuid": "9d26ecfa-3455-47c6-a144-cb4b6092592b"
    7 }
    BLE コネクションの検出
    11

    View full-size slide

  13. システムの検証: ターゲットへの通知
    パラメータへ指定したターゲットに通知が行われている
    リクエストパラメータ
    1 {
    2 "edge_id": 2,
    3 "title": "タ イ ト ル",
    4 "body": "通 知 内 容"
    5 }
    通知内容
    レスポンス
    1 {
    2 "result": {
    3 "SuccessCount": 1, "FailureCount": 0,
    4 "Responses": [
    5 {
    6 "Success": true, "Error": null,
    7 "MessageID": "projects/micasa-296105/
    messages/0:1613078863872929%
    ccf33e56ccf33e56"
    8 }
    9 ]
    10 }
    11 }
    12

    View full-size slide

  14. システムの検証: ターゲットへの通知
    通知ターゲットのないエッジデバイス ID を指定すると、通知はされない
    リクエストパラメータ
    1 {
    2 "edge_id": 1,
    3 "title": "タ イ ト ル",
    4 "body": "通 知 内 容"
    5 }
    レスポンス
    1 {
    2 "result": "Target not found"
    3 }
    13

    View full-size slide

  15. 結論
    結論
    • 本研究では害獣被害への対策として、エリア毎の通知に着目
    • BLE を用いた通知対象のセグメンテーションと
    対象への通知を実現
    今後の課題
    • ユーザーへの通知情報の拡充
    • 実地でのテスト
    • 多数のデバイスを用いた場合の負荷テスト
    14

    View full-size slide

  16. 付録: システムの利用想定
    • カメラによる画像認識で
    害獣を識別
    • ターゲットへ自動で通知
    • 住民が対策を取ると共に
    自治体へ通知を行う
    害獣を検出
    出没したエリアにいる
    近隣住民へ自動通知
    害獣への対策 自治体への通報

    View full-size slide

  17. 付録: クライアントの構成
    Firebase Authentication
    ユーザーアカウントの作成と
    ユーザー認証を担う
    Firebase Cloud Messaging (FCM)
    Topic Messaging で通知ターゲットの
    管理と通知の配信を担う
    Flutter
    クライアントアプリケーションを
    構成するフレームワークである
    Client
    User Management
    Authentication Cloud Firestore
    Android Device Flutter(Dart)
    Notification
    Provider
    FCM
    User
    Authentication
    Topic
    Messaging
    クライアントへの通知の流れ

    View full-size slide

  18. 付録: BLE の通信距離測定実験
    2 地点間の距離導出方法
    地点 A =



    x1 : 経度
    y1 : 緯度
    (1)
    地点 B =



    x2 : 経度
    y2 : 緯度
    (2)
    d = r cos−1(sin y1 sin y2+
    cos y1 cos y2 cos(x2 − x1)) (3) コネクション確立を確認した最大距離

    View full-size slide

  19. 付録: システムの詳細構成

    View full-size slide

  20. 付録: Cosmos DB のドキュメント例
    Cosmos DB のドキュメント例
    1 {
    2 "_id" : ObjectId("5ffe88d5b74827f59b1d394b"),
    3 "uuid" : "9d26ecfa-3455-47c6-a144-cb4b6092592b",
    4 "edge_id" : 2,
    5 "created_at" : "2021-01-13T05:44:53Z",
    6 "deleted_at" : ""
    7 }

    View full-size slide

  21. 付録: Cloud Firestore のドキュメント例
    Cloud Firestore のドキュメント例
    1 {
    2 "users": {
    3 "VxLiREK2SqaG3fVWQle2rgyTIpq1": {
    4 "token": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    5 "uuid": "9d26ecfa-3455-47c6-a144-cb4b6092592b"
    6 }
    7 }
    8 }

    View full-size slide

  22. 付録: アプリケーションのスクリーンショット
    アドバタイズ時の画面 ユーザーログイン時の画面 ユーザー登録時の画面

    View full-size slide