メインコンテンツまでスキップ

LoRaWAN を用いた Bluetooth 屋内測位システム

はじめに

概要

屋内測位は多くの業界で共通の課題です。UWB のような高精度システムも存在しますが、高コストかつ複雑になりがちです。本ソリューションは、2 つの強力な無線技術、すなわち位置検知用の Bluetooth Low Energy (BLE) と長距離・低消費電力のデータ伝送を行う LoRaWAN を組み合わせることで、柔軟かつコスト効率の高い代替手段を提供します。

このシステムは SenseCAP T1000 Tracker を中心に構築されており、2 つの異なる測位モードをサポートします。これにより、ニーズに応じて精度とバッテリー寿命のバランスを取ることができます。

  1. 高精度トラッキング(三辺測量): トラッカーが 3 つ以上 の BLE ビーコンからの信号を検出すると、マップ上で自らの正確な (x, y) 座標を算出できます。このモードは、アセットや人員の移動を追跡し、定期的または移動時に正確な位置情報を提供する用途に最適です。

  2. ゾーンベース測位(近接): トラッカーが 1 つまたは 2 つのビーコンの範囲内にある場合、最も近いビーコンへの近接情報に基づいて位置を特定します。このモードは、自動チェックイン、アセットが指定された部屋にあることの確認、あるいは位置報告頻度を下げてバッテリー寿命を延ばしたいといった、よりシンプルなユースケースに最適です。

両方の方式をサポートすることで、本ソリューションは、単純な在席検知から、より詳細な座標ベースのモニタリングまで、幅広い屋内トラッキング用途に対応できる柔軟で導入しやすいシステムを提供します。

SenseCraft Solution で数分でデプロイ

このシステムを最速で稼働させる方法は、SenseCraft Solution プラットフォーム上の Campus-level BLE Beacon Positioning System を利用することです。

Deploy をクリックし、キットサイズ(Starter / Standard / Enterprise)を選択すると、SenseCraft Solution が、位置測位アプリケーションのインストール(手動で Docker コマンドを実行する必要はありません)からビーコン、ゲートウェイ、トラッカーのセットアップまで、すべての手順を順番に案内します。

👉 このソリューションをデプロイ →

バンドルページへ移動

本ソリューションの実装に必要な製品がすべて揃った Indoor & Outdoor Integrated Positioning バンドルページもぜひご覧ください。

主な特長とメリット

  • 低コストかつスケーラブル: 手頃な BLE ビーコンを活用し、すべての部屋に高価なゲートウェイを設置する必要をなくします。
  • 長距離データ伝送: 1 台の LoRaWAN ゲートウェイで建物全体やキャンパス全体をカバーでき、インフラコストを大幅に削減します。
  • 即時 SOS アラート: トラッカーにはパニックボタンが搭載されており、押すとすぐに LoRaWAN 経由で SOS アラートを送信し、迅速な緊急対応を可能にします。
  • インテリジェントな電源管理: 内蔵加速度センサーを使用することで、トラッカーは動きが検知されたときのみ報告し、それ以外は定期的な「ハートビート」信号を送信するようにできます。これにより、多くのアセットトラッキング用途で、最適な設定時には最大 6 か月までバッテリー寿命を大幅に延長できます。
  • シンプルな導入: BLE ビーコンと LoRaWAN ゲートウェイのセットアップは簡単で、測位システムをすばやくオンラインにできます。
  • すぐに導入可能: SenseCraft Solution プラットフォームを使えばワンクリックで、セルフホストする場合でも単一の Docker コマンドで、システム全体を数分で稼働させられます。アプリケーションは完全なオープンソースであり、必要に応じてカスタマイズすることもできます。

ユースケース

ユースケース

このソリューションは、幅広いゾーンベースのトラッキングおよび安全管理アプリケーションに最適です。

  • キャンパス・学校の安全対策

    学生や教職員にウェアラブルトラッカーを配布します。内蔵の SOS ボタンにより、キャンパス内のどこからでも、最後に確認された位置情報付きの緊急アラートを即座に送信でき、安心感を提供するとともに、より迅速な対応を可能にします。

  • アセット管理

    屋内外(例:駐車場内の車両)を問わず、貴重なアセットの位置を追跡します。トラッカーを移動時のみ報告するように設定することで、バッテリーを節約しつつ、不正な移動があった場合には確実に通知を受け取ることができます。

  • 自動チェックインと人員管理

    BLE ビーコンの信号強度を調整することで、オフィスや介護施設向けの「チェックイン」ゾーンを作成できます。トラッカーを身に着けた人がゾーンに入ると、その在席情報が自動的に記録されます。

システムアーキテクチャ

このシステムは、シンプルでありながら強力な原理で動作します。モバイルトラッカーが固定ビーコンからの信号を受信し、その内容を中央サーバーへ報告します。

システムアーキテクチャ図

前提条件

主な構成要素は次のとおりです。

  1. BLE ビーコン: これらは既知の場所(例:部屋の入口、重要なゾーン)に設置された小型の固定送信機です。常に一意の ID をブロードキャストします。
  2. SenseCAP T1000 Tracker: 追跡したいアセットや人物に取り付けるモバイルデバイスです。周囲の BLE ビーコンをスキャンし、最も信号の強いビーコンを特定します。
  3. LoRaWAN ゲートウェイ: トラッカーは、最も近い BLE ビーコンの ID を含むデータパケットを LoRaWAN 経由でゲートウェイに送信します。
  4. ネットワーク & アプリケーションサーバー: ゲートウェイはデータを LoRaWAN ネットワークサーバー(SenseCraft Data)に転送し、その後アプリケーションサーバーへルーティングします。アプリケーションサーバーはビーコン ID とその実世界での位置のマップを保持しており、それに基づいてトラッカーの位置を特定できます(例:「トラッカー #58 はビーコン #12 の近くにあり、それは会議室 3 にある」)。

開始する前に、以下を用意してください。

  • SenseCAP T1000 Tracker 1 台
  • 1 個以上の BLE ビーコン
  • インターネットに接続された LoRaWAN ゲートウェイ
  • Docker がインストールされたサーバーまたはコンピュータ

SenseCAP T1000 Tracker

BLE スキャン機能を備えた LoRaWAN® モバイルトラッカー

  • BLE ビーコン検出: 高精度な屋内外測位のために BLE 5.1 をサポート。

  • 広域ネットワーク: 長距離・低消費電力通信のための LoRaWAN® Class A(v1.0.4) 接続。

  • モーション検知: 内蔵加速度センサーにより、リアルタイムの動作および静止状態を検知。

  • 緊急ボタン:ワンプレスで緊急アラートを発報できる独立したSOSボタン。

BLE Beacons

通常のBluetoothブロードキャスト

  • プロトコル互換:Bluetooth® LE 5.0 | iBeaconおよびEddystoneフォーマットを完全サポート。

  • 柔軟な展開:送信電力を設定可能で、カバレッジ半径を調整可能。

  • 長寿命:標準設定で最大2年間のバッテリー寿命。

  • 簡単な設置:壁やその他の表面に簡単に取り付けられる粘着テープ付き。

  • ブロードキャスト範囲:屋外で最大75メートル、屋内の開放エリアで最大120メートル。

SenseCAP M2 Multi-Platform Gateway

LoRaWAN® ネットワークインフラストラクチャ

  • 広いカバレッジ:屋内で最大2 kmのカバレッジ半径を実現し、安定した信号を確保。

  • 大規模接続:優れたパフォーマンスで200台以上のデバイスを同時接続可能。

  • 複数のバックホール:Ethernet、Wi-Fi、4Gなど複数のネットワークバックホールオプションを提供。

  • 統合ソリューション:ローカルLoRaWANサーバー機能を内蔵し、ネットワークの展開と管理を簡素化。

はじめにガイド

Indoor positioning 2d map

このシステムを展開する方法は2通りあります — ステップ2ではどちらか一方を選択してください:

  • 推奨 — SenseCraft Solution(ガイド付き): ソリューションページを開き、Deploy をクリックしてキットサイズを選択します。SenseCraft Solutionが位置測位アプリケーションを自動でインストールし、ハードウェアセットアップを最初から最後まで案内します。
  • 手動 — Dockerでセルフホスト: 自分で運用したい場合は、ステップ2で説明している手動Docker手順を使用します。

どちらの方法でも、すべてのデプロイは同じ5つのステージに従います:

  1. ビーコンを配置:施設全体の戦略的な場所にBLEビーコンを設置します。各ビーコンのユニークIDと物理的な設置場所(例:Beacon_ID_01: "Main Entrance"Beacon_ID_02: "Warehouse Zone A")を記録したマップまたはリストを作成します。
  2. ゲートウェイをセットアップする: LoRaWAN ゲートウェイをインターネットに接続し、選択した LoRaWAN ネットワークサーバーにパケットを転送するように設定します。
  3. アプリケーションをデプロイする: すぐに使える SenseCraft Indoor Positioning アプリケーションをインストールします — SenseCraft Solution からワンクリック、または Docker を使ったセルフホスト(Step 2 を参照)。カスタムバックエンドのコーディングは不要です。
  4. トラッカーを設定する: SenseCAP T1000 を有効化し、LoRaWAN ネットワークサーバーにオンボードします。BLE スキャンモードに設定されていることを確認します。
  5. 可視化: トラッカーが施設内を移動すると、最も近いビーコンを報告し、アプリケーションはその位置をダッシュボードや地図上に表示できます。

Step 1: ハードウェアをセットアップする

まず、施設内に物理デバイスを設置する必要があります。

1a. ビーコンを配置する

備考

完全な技術仕様については、BC01 Indoor Bluetooth Beacon ドキュメント を参照してください。

まず、施設内の戦略的な場所 — 例えば 正面入口、倉庫、オフィスエリア などに BLE(Bluetooth Low Energy)ビーコン を設置します。

Indoor positioning 2d map

以下のビデオを参照して、ビーコン情報をシステムに追加する手順を確認してください。 追加のヘルプについては、Tips セクション も確認できます。

BC01 ビーコンのパラメータのクイックビュー
パラメータデフォルト値
UUIDFDA50693-A4E2-4FB1-AFCF-C6EB07647825
Major10001
Minor19641
Measured power-59dBm
Tx Power-30 - +4dBm, デフォルト 0dBm
Adv Interval100ms~10s, デフォルト 500ms
Passwordseeed123 (英字と数字)
Device NameBC01 (1-7 文字)
Soft Rebootseeed123 (パスワードと同じ)

1b. ゲートウェイをセットアップする

LoRaWAN ゲートウェイ の電源を入れ、インターネットに接続します。
次に、使用している ネットワークサーバー に応じて、以下の手順に従います。

デフォルトでは、LoRaWAN ゲートウェイは SenseCraft Data プラットフォーム(旧 SenseCAP Portal)にデータを転送します。

  1. ゲートウェイが オンライン であり、アカウントにリンクされている ことを確認するために、公式ユーザーマニュアル に従ってください。
  2. 接続が確認できたら、次のステップ(Step 2)に進む ことができます。

Step 2: ポジショニングアプリケーションをインストールする

ポジショニングアプリケーションは軽量な Web サービス(単一の Docker コンテナ)で、MQTT 経由でトラッカーデータを取り込み、ライブマップを描画します。インストール方法は 2 通りあるので、自分に合った方法を選んでください。

まずインターフェースを試してみたい場合は、ライブデモ を確認できます。

Indoor positioning application preview

最も簡単な方法 — ターミナルも手動コマンドも不要です。

  1. Campus-level BLE Beacon Positioning System のソリューションページを開きます。
  2. Deploy をクリックし、キットのサイズ(Starter / Standard / Enterprise)を選択します。
  3. SenseCraft Solution が、ローカルマシン上または SSH 経由でリモートサーバー上にポジショニングアプリケーションをインストールし、サービスが正常になると自動的にダッシュボードを開きます。

ダッシュボードが開いたら、LoRaWAN データソースを接続するために Step 3 に進みます。


アプリケーションが起動したら、Web ブラウザを開いて次のアドレスにアクセスします:

👉 http://<your_server_ip>:5173

これで、サーバー上で SenseCraft Indoor Positioning ダッシュボードが動作しているのが確認できるはずです。

ログイン認証情報
  • Username: admin
  • Password: 83EtWJUbGrPnQjdCqyKq

Step 3: アプリケーションを設定する

app-configuration-management

3a. ランタイム設定(LoRaWAN への接続)

この設定を使用して、アプリケーションを LoRaWAN ネットワークサーバーに接続し、トラッカーデータを受信します。 アプリケーションは SenseCraft Dataローカル ChirpStack サーバー の両方に同時に接続できます。

app-server-runtime-configuration

ダッシュボードで、1 つまたは両方の MQTT ソースを有効にします:

SenseCraft Data に接続する
  1. SenseCAP OpenStream MQTT をオンにします。
  2. UsernameAPI Key を入力します - これらは Data OpenStream API クイックスタートガイド から取得します。
ChirpStack に接続する
  1. ChirpStack MQTT をオンにします。
  2. サーバーアドレスApplication ID を入力します - MQTT トピックは自動入力されます。Application ID は ChirpStack のアプリケーションページで確認できます。
chirpstack-application-id

注: {clientID} フィールドは自動生成されるため、編集しないでください。
重要: 変更を加えた後は、Docker コンテナを再起動して更新を反映させてください。

その他の設定

これらのオプションはいつでも変更できます(再起動は不要です):

  • Authentication – ダッシュボードのログイン認証情報を更新します。
  • Area Positioning – ビーコン信号が弱い、またはまばらな場合にトラッカーのおおよその位置を推定します。
  • Tracker Access Control – 位置特定を許可するデバイスを制限します(すべて許可またはホワイトリスト指定)。
  • Webhook – HTTP POST を介して位置データを自分のサービスにプッシュします。

3b. マップとビーコンの設定

Create をクリックして、最初のマップを作成します。

Application Configuration Management

このパネルで マップデータ をアップロードします。 現在、デモ版では ポリラインエンティティ を含む GeoJSON 風フォーマット のファイルのみインポートをサポートしています。 参考として、以下にサンプル JSON テンプレートを示します:

{
"map": {
"width": 29.53000000000094,
"height": 22.212853765822828,
"entities": [
{
"type": "polyline",
"points": [
[12.894968342021272, 17.07477114091087],
[12.894968342021272, 17.114771140910868]
],
"closed": false
},
{
"type": "polyline",
"points": [
[12.944968342021284, 17.114771140910868],
[12.894968342021272, 17.07477114091087]
],
"closed": false
}
]
},
"beacons": {}
}

この JSON は、座標ベースの ポリライン を使用して 2D フロアレイアウト を定義しており、壁や境界線などのマップ要素を表します。 他のジオメトリタイプは、現在のデモバージョンではサポートされていません。

import-map-geo-json
  1. ビーコンを追加する

Beacons セクションで、各ビーコンの MAC アドレス、ID、および設置場所を追加します。 Step 1a で作成したリストを使用して、アップロードしたマップ上に直接配置できます。

maps-add-beacons
  1. 環境係数の調整(オプション)

信号強度(RSSI)が距離に変換される方法を調整して、位置精度を微調整します。

  • デフォルト値(約 2.0)は、開けたエリアで良好に機能します。
  • 複雑な屋内環境では、1.8 ~ 4.0 の値を試してください。
  • まずはデフォルト設定から始め、必要に応じて後から調整してください。

Step 4: トラッカーを有効化して可視化する

最後のステップは、トラッカーの電源を入れ、マップ上に表示させることです。

tracker-visualize-on-map
  1. SenseCAP T1000 Tracker を有効化 し、LoRaWAN Network Server にオンボードします。ゲートウェイがオンラインであり、トラッカー デバイスが LNS サーバーに「登録」されていることを確認してください。詳細は Step 1b を確認してください。
  2. BLE スキャンモードに設定されていることを確認 し、ビーコンを検出できるようにします。ヘルプが必要な場合は、以下のビデオを確認してください。
  3. 可視化: トラッカーが施設内を移動すると、最も近いビーコンを検出して位置情報を報告します。ダッシュボード上のマップで、トラッカーのアイコンが移動する様子が確認できます。

ChirpStack を使用する場合は、Other Platform を選択してください。

SenseCraft Data を使用する場合は、デフォルトのプラットフォーム設定(The Things Network 用の SenseCAP)を維持してください。

アプリケーション機能の概要

機能 1: データプッシュ(Webhook & WebSocket)

システムからリアルタイムデータを取得する方法は 2 つあります:

  • Webhook: 設定で説明したように、指定した URL にデータをプッシュします。
  • WebSocket: リアルタイムアプリケーション向けに、Basic HTTP Authentication を使用して /ws エンドポイントに接続できます。sostracker_update(三辺測位)、tracker_location_approximate(近接)のデータ形式は、元のドキュメントで提供されている JSON 例に詳述されています。

データ形式

{
"type": "tracker_sos",
"data": {
"2CF7F1C0530004AD": {
"timestamp": 1756967508000,
"sos": 0
}
}
}

機能 2: 2 つの測位モード

本システムは、2 つの測位方式をサポートしています:

  1. 三辺測位: トラッカーが 3 個以上 のビーコンを検出した場合、正確な (x, y) 座標を計算します。これはデフォルトかつ最も高精度なモードです。
  2. 近接(エリア測位): これを有効にしていて、トラッカーが 1 個 のビーコンしか検出できない場合、そのビーコンの近くにいるものとして、計算された半径内の位置を報告します。これは、すべてのエリアでカバレッジを確保するのに役立ちます。

三辺測位

三辺測位三辺測位(SOS)
area-positioning-normal
area-positioning-sos

エリア測位

エリア測位エリア測位(SOS)
area-positioning-normal
area-positioning-sos

機能 3: アラート履歴の閲覧

マップ上でトラッカーのアイコンをクリックすると、そのトラッカーのアラート履歴(例:SOS ボタンの押下)を確認できます。システムは新しいアラートをすべて記録し、アラートが解決されるまで通知のプッシュを継続します。

alert-history-records

機能 4: Beacon UUID でフィルタリング

マップ上に表示されるトラッカーを、関連付けられた Beacon UUID によってフィルタリングできます。これにより、特定のエリアや資産をより集中的に監視できます。ハッキングされないようにするうえでも価値があります。

sensecraft-ble-filter

参考情報 & リソース

ヒント

ビーコンをより効率的に展開および設定するための、便利なヒントをいくつか紹介します:

1. Beacon 情報を記録する

各ビーコンの 一意の MAC アドレス とその 設置場所 を一緒に記録しておくことを強く推奨します。
これは ソフトウェア設定ステップ非常に重要 となり、マッピングやトラブルシューティングの際に、正しいビーコンを 簡単に特定して選択 するのに役立ちます。

MAC AddressLocationBeacon ID
c30000564b31Main Entrance01
c30000564b32Warehouse Zone A02
c30000564b33Corner Office03

2. すべての Beacon に一貫した UUID を使用する

管理を容易にするため、SenseCraft アプリ を使用して、すべてのビーコンに一貫した UUID を割り当てることができます。
これにより、トラッカーは 自分のデバイスのみ を受信し、近くの他のビーコンを無視 するようになります。
機能 4: Beacon UUID でフィルタリング を参照して、詳細を確認してください。

3. 安定した設置場所を選ぶ

ビーコンは、Bluetooth 信号が安定するように、固定されていて、開けており、遮蔽物のない場所に設置してください。
金属面配電盤Wi-Fi ルーターなど、干渉を引き起こす可能性のあるものの近くへの設置は避けてください。

4. 各ビーコンにラベルを付けて固定する

保守時の混乱を避けるため、記録表と対応する 見やすいラベル(例:Beacon-01、Beacon-02)を貼り付けてください。
誤って動かないように、デバイスがしっかりと固定されていることを確認してください。

5. 信号範囲を確認する

設置を確定する前に、BLE スキャナアプリや設定ツールを使って信号カバレッジをテストし、対象エリアで一貫して検出できることを確認してください。

6. ビーコンデータを素早く追加・調整する

GeoJSON 風の設定ファイルを使用している場合は、エクスポートしたマップファイルを直接編集してビーコンデータを素早く追加または調整し、その後アプリケーションに再インポートすることもできます。

{
"map": {
"width": 29.53000000000094,
"height": 22.212853765822828,
"entities": [
{
"type": "polyline",
"points": [
[12.894968342021272, 17.07477114091087],
[12.894968342021272, 17.114771140910868]
],
"closed": false
},
{
"type": "polyline",
"points": [
[12.944968342021284, 17.114771140910868],
[12.894968342021272, 17.07477114091087]
],
"closed": false
}
]
},
"beacons": {
"beacon-01": {
"uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
"major": 10001,
"minor": 19641,
"x": 26.38,
"y": 4.4,
"txPower": -59,
"displayName": "Corner",
"macAddress": "C3:00:00:58:4B:38",
}
}
}

ヒント:JSON を直接編集する方法は、一度に複数のビーコンを追加したり、ダッシュボードの外で座標を微調整したりする場合に便利です。

FAQ

トラッカーが位置情報を報告しないのはなぜですか?
  • 考えられる原因: LoRaWAN 接続に問題がある可能性があります。
  • 解決策: LoRaWAN ゲートウェイがオンラインで接続されているかどうか、そのステータスを確認してください。また、トラッカーの Device EUI がネットワークサーバーに正しく登録されていることを確認してください。
トラッカーの位置が不正確なのはなぜですか?
  • 考えられる原因: BLE ビーコンの設置場所が原因で、干渉や信号カバレッジの弱さが発生している可能性があります。
  • 解決策: ビーコンの送信電力を調整してみてください。また、壁や機械による信号の遮蔽を減らすために、ビーコンの設置場所を変更する必要がある場合もあります。
トラッカーのバッテリーがすぐに消耗してしまうのはなぜですか?
  • 考えられる原因: 報告頻度が高すぎるため、デバイスが必要以上に頻繁にデータを送信している可能性があります。
  • 解決策: トラッカーが動いているときにのみ報告するよう、モーション検知設定を最適化してください。また、電力を節約するために、報告間隔(位置情報の更新間の時間)を長くすることもできます。
位置データが欠落している、または表示されないのはなぜですか?
  • 考えられる原因: データペイロードの解釈方法に関連して、データベースまたは API に問題がある可能性があります。
  • 解決策: まず、アプリケーションサーバー上のペイロードデコーダーが正しく動作しているか確認してください。デコーダーに問題がない場合は、アプリケーションサーバーのログを確認し、エラーや接続性の問題がないかを確認してください。
SOS アラートがすぐに受信されないのはなぜですか?
  • 考えられる原因: LoRaWAN ネットワークが輻輳しているか、緊急メッセージに適したデバイスクラスが設定されていない可能性があります。
  • 解決策: SOS アラートのような時間に敏感なアプリケーションでは、トラッカーが Class C mode を使用するように設定されていることを確認してください。これによりデバイスの受信機が常時オンになり、サーバーからのメッセージを即座に受信できるようになります。
BC01 ビーコンのアドバタイジング間隔と送信電力はどのように調整しますか?

BC01 ビーコンの設定には SenseCraft アプリを使用できます。

  1. Google Play Store または Apple App Store から SenseCraft アプリをインストールします。
  2. アプリを開き、スマートフォンの Bluetooth を有効にします。
  3. 近くのビーコンをスキャンし、設定したいビーコンを選択します。
  4. デフォルトパスワード "seeed123" を入力して設定画面にアクセスします。
  5. ニーズに合わせて、アドバタイジング間隔(100ms ~ 10s)と送信電力(-30dBm ~ +4dBm)を調整します。
  6. 変更内容を保存します。

変更履歴

2026-05-29:

  • 手動の Docker 自己ホスティングを代替パスとして残しつつ、SenseCraft Solution のワンクリックガイド付きデプロイ(Starter / Standard / Enterprise キット)を先に紹介するように、デプロイガイドの構成を再設計しました。
  • デプロイ用のコールトゥアクションを追加し、Campus-level BLE Beacon Positioning System ソリューションページを指すように Reference & Resource リンクを更新し、GitHub ソースリンクを追加しました。

2025-11-10:

  • ビーコンの展開およびゲートウェイセットアップのガイダンスを作り直し、設置のベストプラクティス、参考資料、SenseCraft Data と ChirpStack 向けのネットワークサーバー固有の手順を明確にしました。
  • 実行時設定およびマップ/ビーコン設定セクションを拡充し、より分かりやすい UI ガイダンス、GeoJSON インポートサンプル、環境要因向けの任意のチューニングヒントを追加しました。
  • ビーコン記録管理、UUID 管理、取り付け、検証、一括編集を扱う専用の Tips セクションを追加し、展開のスケールとトラブルシューティングを容易にしました。
Loading Comments...