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

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

816c0d4415c93649db6c29198bf8c1a4?s=47 Kanta Demizu
February 16, 2021

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

816c0d4415c93649db6c29198bf8c1a4?s=128

Kanta Demizu

February 16, 2021
Tweet

Transcript

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

    電気情報工学科 内海研究室
  2. 報告内容 1. 研究背景 2. 研究目標 3. 研究目的 4. 位置情報検出方法の検討 5.

    システム構成 6. エッジデバイスの構成 7. データベースの構成 8. 通知フロー 9. システムの検証 10. 結論 1
  3. 研究背景 • IoT はモニタリング領域での活用が 期待されている • 舞鶴市では害獣による被害が 多く発生している まいづるメール配信サービス •

    情報過多になり、緊急時の対応が困難 • 市全域の情報を配信 • 情報配信に職員の対応が必要 • 情報源が電話情報 → 適切な情報配信が必要である 2019 年度の舞鶴市における主な事故 参考: 令和元年版舞鶴市統計書 (2021/02/11 参照) 舞鶴市のメール配信サービスの一文 参考: まいづるメール配信サービス (2021/02/11 参照) 2
  4. 研究目標 適切な情報配信には以下の項目が必要: • 害獣への対応が可能な ユーザーへ通知を行う • エリア毎の通知に対応する 害獣情報配信の自動化と 通知手法の改善を行う システム利用イメージ

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

    • スマートフォンの Bluetooth Low Energy (BLE) を利用 *1300[m] – 1000[m] の精度 4
  6. 位置情報検出方法の検討 システム要求: • 低消費電力である • ユーザーのプライバシーに 配慮して位置情報の精度を コントロールできる → BLE

    を用いる手法が 最適である GPS を用いる手法 • 通常時より 50[mAh] 多くの消費電力を要する • 屋内などでの測位は難しい Wireless LAN を用いる手法 • 未知のデバイスへコネクション確立させるのは難しい • 最大通信距離: 30[m] – 50[m] BLE を用いる手法 • 通常時より 10[mAh] 多くの消費電力を要する • アドバタイズによって未知のデバイスへ コネクション確立が可能である • 最大通信距離: 160[m] – 260[m] 5
  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
  8. エッジデバイスの構成 エッジデバイスは以下の役割をもつ: • BLE によってクライアントとの間で コネクションを確立する • アドバタイズパケットの Proximity UUID

    から コネクション確立した端末を識別する • データベースに コネクション履歴を格納する エッジデバイスのデバイス検出フロー 7
  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
  10. 通知フロー Client Android Device Notification Provider FCM Subscribe to Topic

    Area 1 Clients Notification クライアントへの通知フロー Firebase Cloud Messaging (FCM) Topic Messaging で通知ターゲットの管理と通知の配信を担う 9
  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
  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
  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
  14. システムの検証: ターゲットへの通知 通知ターゲットのないエッジデバイス ID を指定すると、通知はされない リクエストパラメータ 1 { 2 "edge_id":

    1, 3 "title": "タ イ ト ル", 4 "body": "通 知 内 容" 5 } レスポンス 1 { 2 "result": "Target not found" 3 } 13
  15. 結論 結論 • 本研究では害獣被害への対策として、エリア毎の通知に着目 • BLE を用いた通知対象のセグメンテーションと 対象への通知を実現 今後の課題 •

    ユーザーへの通知情報の拡充 • 実地でのテスト • 多数のデバイスを用いた場合の負荷テスト 14
  16. 付録

  17. 付録: システムの利用想定 • カメラによる画像認識で 害獣を識別 • ターゲットへ自動で通知 • 住民が対策を取ると共に 自治体へ通知を行う

    害獣を検出 出没したエリアにいる 近隣住民へ自動通知 害獣への対策 自治体への通報
  18. 付録: クライアントの構成 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 クライアントへの通知の流れ
  19. 付録: 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) コネクション確立を確認した最大距離
  20. 付録: システムの詳細構成

  21. 付録: 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 }
  22. 付録: Cloud Firestore のドキュメント例 Cloud Firestore のドキュメント例 1 { 2

    "users": { 3 "VxLiREK2SqaG3fVWQle2rgyTIpq1": { 4 "token": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", 5 "uuid": "9d26ecfa-3455-47c6-a144-cb4b6092592b" 6 } 7 } 8 }
  23. 付録: アプリケーションのスクリーンショット アドバタイズ時の画面 ユーザーログイン時の画面 ユーザー登録時の画面