Skip to main content

基于 LoRaWAN 的蓝牙室内定位系统

介绍

概述

室内定位是许多行业的常见挑战。虽然像 UWB 这样的高精度系统已经存在,但它们往往成本高且部署复杂。本方案通过结合两种强大的无线技术,提供了一种灵活且具性价比的替代方案:使用 Bluetooth Low Energy (BLE) 进行位置感知,使用 LoRaWAN 实现远距离、低功耗数据传输。

该系统基于 SenseCAP T1000 Tracker 构建,支持两种不同的定位模式,可根据需求在精度和电池寿命之间进行平衡:

  1. 高精度跟踪(三角定位): 当追踪器检测到来自三个或更多 BLE Beacon 的信号时,它可以在地图上计算出自身精确的 (x, y) 坐标。此模式非常适合用于资产或人员移动轨迹跟踪,可定期或在发生移动时提供精确位置更新。

  2. 基于区域的定位(接近): 当追踪器仅在一个或两个 Beacon 的覆盖范围内时,它会根据距离最近的 Beacon 来判断自身位置。此模式非常适合更简单的场景,例如自动签到、确认资产是否在指定房间内,或通过降低上报频率来节省电量。

通过同时支持这两种方式,本方案为各种室内跟踪应用提供了一个多功能且易于部署的系统,从简单的在场检测到更精细的基于坐标的监控都能胜任。

使用 SenseCraft Solution 数分钟内完成部署

让该系统最快运行起来的方式,是在 SenseCraft Solution 平台上使用 校园级 BLE Beacon 定位系统

点击 Deploy,选择套件规模(Starter / Standard / Enterprise),SenseCraft Solution 会引导你完成每一步——为你安装定位应用(无需手动输入 Docker 命令),并指导完成 Beacon、网关和追踪器的配置。

👉 部署此解决方案 →

前往我们的套装页面

访问我们的 室内与室外一体化定位 套装页面,获取实现本方案所需的全部产品。

关键特性与优势

  • 高性价比且可扩展:利用价格亲民的 BLE Beacon,无需在每个房间都部署昂贵的网关。
  • 远距离数据传输:单个 LoRaWAN 网关即可覆盖整栋建筑或整个校园,大幅降低基础设施成本。
  • 即时 SOS 告警:追踪器内置一键求救按钮,按下后会立即通过 LoRaWAN 发送 SOS 告警,实现快速应急响应。
  • 智能电源管理:通过内置加速度计,追踪器可以仅在检测到移动时上报位置,其余时间只发送周期性的“心跳”信号。这样可显著延长电池寿命,在许多资产跟踪应用中,优化配置后电池续航可长达 6 个月。
  • 部署简单:部署 BLE Beacon 和 LoRaWAN 网关的过程十分简单,可快速让你的定位系统上线运行。
  • 开箱即用:几分钟内即可让整个系统运行起来——在 SenseCraft Solution 平台上一键部署,或在自建环境中通过一条 Docker 命令完成。该应用也完全开源,方便你进行自定义开发。

应用场景

应用场景

本方案非常适合各类基于区域的跟踪与安全应用:

  • 校园与学校安全

    为学生和教职员工配备可穿戴追踪器。内置的 SOS 按钮可让他们在校园任意位置一键发送紧急告警及其最后已知位置,带来安心保障并实现更快速的应急响应。

  • 资产管理

    跟踪贵重资产的位置,包括室内和室外(例如停车场中的车辆)。可以将追踪器配置为仅在发生移动时上报,从而节省电量,同时在出现未经授权的移动时及时告警。

  • 自动签到与人员管理

    通过调节 BLE Beacon 的信号强度,你可以为办公室或养老院创建一个“签到”区域。当佩戴追踪器的人进入该区域时,其在场信息会被自动记录。

系统架构

该系统基于一个简单而强大的原理运行:移动追踪器监听固定 Beacon 发出的信号,并将其“听到”的信息上报到中央服务器。

系统架构示意图

前置条件

主要组件包括:

  1. BLE Beacon:这些是安装在已知位置(例如房间入口、关键区域)的微型固定发射器,它们会持续广播一个唯一 ID。
  2. SenseCAP T1000 Tracker:这是安装在你希望跟踪的资产或人员上的移动设备。它会扫描附近的 BLE Beacon,并识别信号最强的那个。
  3. LoRaWAN 网关:追踪器通过 LoRaWAN 向网关发送包含最近 BLE Beacon ID 的数据包。
  4. 网络与应用服务器:网关将数据转发到 LoRaWAN 网络服务器(SenseCraft Data),然后再由其路由到应用服务器。应用服务器保存 Beacon ID 与其真实物理位置的映射,从而可以确定追踪器的位置(例如:“追踪器 #58 靠近 Beacon #12,位于 3 号会议室”)。

在开始之前,请确保你具备以下条件:

  • 一台 SenseCAP T1000 Tracker
  • 一个或多个 BLE Beacon
  • 一台已连接互联网的 LoRaWAN 网关
  • 一台已安装 Docker 的服务器或电脑

SenseCAP T1000 Tracker

具备 BLE 扫描能力的 LoRaWAN® 移动追踪器

  • BLE Beacon 检测:支持 BLE 5.1,实现精确的室内与室外定位。

  • 广域网络:支持 LoRaWAN® Class A(v1.0.4) 连接,实现远距离、低功耗通信。

  • 运动检测:内置加速度计,可实时感知运动与静止状态。

  • 紧急按钮:独立 SOS 按钮,一键触发紧急警报。

BLE Beacons

常规蓝牙广播

  • 协议兼容:Bluetooth® LE 5.0 | 完全支持 iBeacon 和 Eddystone 格式。

  • 灵活部署:可配置发射功率,以调整覆盖半径。

  • 持久续航:在标准设置下电池寿命最长可达 2 年

  • 安装便捷:自带背胶,可轻松安装在墙面或其他表面。

  • 广播范围:室外最远 75 米,室内开阔区域最远 120 米。

SenseCAP M2 Multi-Platform Gateway

LoRaWAN® 网络基础设施

  • 广覆盖:室内覆盖半径最长可达 2 km,确保信号稳定。

  • 海量连接:支持超过 200 台设备同时接入,性能优异。

  • 多种回传:提供包括以太网、Wi-Fi 和 4G 在内的多种网络回传选项。

  • 一体化方案:内置本地 LoRaWAN 服务器能力,简化网络部署与管理。

入门指南

Indoor positioning 2d map

部署该系统有两种方式 —— 为 步骤 2 选择其中一种:

  • 推荐 —— SenseCraft 方案(引导式): 打开解决方案页面,点击 Deploy,并选择套件规模。SenseCraft 方案会为你安装定位应用,并从头到尾引导硬件搭建。
  • 手动 —— 使用 Docker 自建部署: 更倾向于自行运行?请使用 步骤 2 中描述的 Docker 手动部署路径。

无论采用哪种方式,每次部署都遵循相同的五个阶段:

  1. 部署 Beacon:在整个设施的关键位置放置 BLE Beacon。创建一份地图或列表,记录每个 Beacon 的唯一 ID 及其物理位置(例如,Beacon_ID_01: "Main Entrance"Beacon_ID_02: "Warehouse Zone A")。
  2. 设置网关:将 LoRaWAN 网关连接到互联网,并将其配置为把数据包转发到你选择的 LoRaWAN 网络服务器。
  3. 部署应用程序:安装现成的 SenseCraft 室内定位应用程序——可以通过 SenseCraft Solution 一键部署,或使用 Docker 自建部署(参见 Step 2)。无需自定义后端代码。
  4. 配置追踪器:激活 SenseCAP T1000,并将其接入你的 LoRaWAN 网络服务器。确保其被配置为 BLE 扫描模式。
  5. 可视化:当追踪器在设施中移动时,它会上报最近的 Beacon,你的应用程序可以在仪表盘或地图上显示其位置。

步骤 1:设置你的硬件

首先,你需要在场地中部署物理设备。

1a. 部署 Beacon

info

如需完整技术规格,请参考 BC01 室内蓝牙 Beacon 文档

首先在场地内的关键位置放置 BLE(Bluetooth Low Energy,低功耗蓝牙)Beacon——例如主入口、仓库和办公区域

Indoor positioning 2d map

请参考下方视频,获取将 Beacon 信息添加到系统中的分步指南。 你也可以查看 Tips 部分以获得更多帮助。

BC01 Beacon 参数快速查看
参数默认值
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. 一旦连接验证通过,你就可以继续下一步(步骤 2)

步骤 2:安装定位应用程序

定位应用程序是一个轻量级 Web 服务(单个 Docker 容器),通过 MQTT 接收追踪器数据并渲染实时地图。它有两种安装方式——选择适合你的方式即可。

如果你想先体验界面,可以查看在线演示

Indoor positioning application preview

最简单的方式——无需终端,无需手动输入命令。

  1. 打开 园区级 BLE Beacon 定位系统 解决方案页面。
  2. 点击 Deploy 并选择你的套件规格(Starter / Standard / Enterprise)。
  3. SenseCraft Solution 会为你安装定位应用程序——可以安装在本地电脑,或通过 SSH 安装到远程服务器——并在服务就绪后自动打开仪表盘。

当仪表盘打开后,继续前往 Step 3 以连接你的 LoRaWAN 数据源。


当应用程序运行后,在浏览器中访问:

👉 http://<your_server_ip>:5173

此时你应该能看到运行在服务器上的 SenseCraft 室内定位仪表盘。

登录凭据
  • Username: admin
  • Password: 83EtWJUbGrPnQjdCqyKq

步骤 3:配置应用程序

app-configuration-management

3a. 运行时配置(连接到 LoRaWAN)

使用此设置将应用程序连接到你的 LoRaWAN 网络服务器并接收追踪器数据。 应用程序可以同时连接到 SenseCraft Data本地 ChirpStack 服务器

app-server-runtime-configuration

在仪表盘中启用一个或两个 MQTT 数据源:

连接到 SenseCraft Data
  1. 打开 SenseCAP OpenStream MQTT
  2. 输入你的 UsernameAPI Key——从 Data OpenStream API 快速入门指南中获取。
连接到 ChirpStack
  1. 打开 ChirpStack MQTT
  2. 输入服务器地址Application ID——MQTT 主题会自动填充。你可以在 ChirpStack 应用页面找到 Application ID。
chirpstack-application-id

注意: {clientID} 字段是自动生成的,请不要编辑。
重要: 每次修改后,请重启 Docker 容器以使更新生效。

其他设置

这些选项可以随时更改(无需重启):

  • Authentication – 更新仪表盘登录凭据。
  • Area Positioning – 当 Beacon 信号较弱或稀疏时,估算追踪器的大致位置。
  • Tracker Access Control – 限制哪些设备可以被定位(对所有设备开放或基于白名单)。
  • Webhook – 通过 HTTP POST 将位置信息推送到你的服务。

3b. 地图和 Beacon 配置

点击 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 使用基于坐标的折线(polyline)定义了一个二维楼层布局,用于表示墙体或边界等地图元素。 当前演示版本不支持其他几何类型。

import-map-geo-json
  1. 添加 Beacon

在 Beacons 部分,添加每个 Beacon 的 MAC 地址、ID 和位置。 你可以使用在步骤 1a中创建的列表,直接将它们放置在已上传的地图上。

maps-add-beacons
  1. 调整环境因子(可选)

通过调整信号强度(RSSI)转换为距离的方式,微调定位精度。

  • 默认值(约 2.0)在开阔区域表现良好。
  • 对于复杂的室内环境,可尝试 1.8 到 4.0 之间的数值。
  • 先使用默认设置,如有需要再进行调整。

步骤 4:激活并可视化你的 Tracker

最后一步是打开你的 Tracker,并在地图上查看它。

tracker-visualize-on-map
  1. 激活 SenseCAP T1000 Tracker 并将其接入你的 LoRaWAN 网络服务器。确保网关在线,并且 Tracker 设备已在 LNS 服务器上“注册”。详情请查看步骤 1b
  2. 确保其设置为 BLE 扫描模式,以便能够检测到 Beacon。可参考下方视频获取帮助。
  3. 可视化: 当 Tracker 在你的场地中移动时,它会检测最近的 Beacon 并上报其位置。你将在仪表盘的地图上看到其图标在移动。

在使用 ChirpStack 时,选择 Other Platform

在使用 SenseCraft Data 时,保留默认平台设置(The Things Network 使用 SenseCAP)。

应用功能概览

功能 1:数据推送(Webhook & WebSocket)

你可以通过两种方式从系统获取实时数据:

  • Webhook: 如配置中所述,它会将数据推送到你提供的 URL。
  • WebSocket: 对于实时应用,你可以使用 Basic HTTP Authentication 连接到 /ws 端点。sostracker_update(三角定位)和 tracker_location_approximate(区域定位)的数据格式在原始文档提供的 JSON 示例中有详细说明。

数据格式

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

功能 2:两种定位模式

系统支持两种定位方式:

  1. 三角定位: 当 Tracker 检测到三个或更多 Beacon 时,会计算出精确的 (x, y) 坐标。这是默认且最精确的模式。
  2. 邻近(区域定位): 如果你启用了该功能,而 Tracker 只能检测到一个 Beacon,它会将自身位置上报为在计算半径内“接近”该 Beacon。此模式有助于确保所有区域都有覆盖。

三角定位

三角定位三角定位(SOS)
area-positioning-normal
area-positioning-sos

区域定位

区域定位区域定位(SOS)
area-positioning-normal
area-positioning-sos

功能 3:查看告警历史

你可以通过点击地图上的 Tracker 图标,查看其告警历史(例如 SOS 按钮触发记录)。系统会记录每一次新的告警,并在告警未解除前持续推送通知。

alert-history-records

功能 4:按 Beacon UUID 过滤

你可以根据 Tracker 关联的 Beacon UUID,在地图上过滤显示的 Tracker。这可以更有针对性地监控特定区域或资产,并且其取值设计为不易被篡改。

sensecraft-ble-filter

参考与资源

提示

以下是一些有用的提示,可帮助你更高效地部署和配置 Beacon:

1. 记录 Beacon 信息

强烈建议将每个 Beacon 的唯一 MAC 地址与其安装位置一并记录下来。
这在软件配置步骤中将至关重要,并帮助你在映射或排障时轻松识别和选择正确的 Beacon。

MAC 地址位置Beacon ID
c30000564b31主入口01
c30000564b32仓库 A 区02
c30000564b33角落办公室03

2. 为所有 Beacon 使用统一的 UUID

为了便于管理,你可以使用 SenseCraft app 为所有 Beacon 分配统一的 UUID
这样可以确保你的 Tracker 只监听你自己的设备,并忽略附近的其他 Beacon
更多详情请查看功能 4:按 Beacon UUID 过滤

3. 选择稳定的安装位置

将 Beacon 安装在固定、开阔且无遮挡的区域,以确保稳定的蓝牙信号。
避免将其放置在可能造成干扰的金属表面配电箱Wi-Fi 路由器附近。

4. 标记并固定每个 Beacon

贴上与记录表一致的可见标签(例如,Beacon-01、Beacon-02),以避免在维护过程中产生混淆。
确保设备被牢固安装,以防止意外移位。

5. 验证信号覆盖范围

在最终确定安装位置之前,使用 BLE 扫描应用或配置工具测试信号覆盖范围,以确保在目标区域内能够被持续检测

6. 快速添加或调整 Beacon 数据

如果你使用的是 类 GeoJSON 的配置文件,你也可以直接编辑导出的地图文件,以快速添加或调整 Beacon 数据,然后重新导入到应用中。

{
"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",
}
}
}

提示:当你需要一次性添加多个 Beacon,或在控制台之外精细调整其坐标时,直接编辑 JSON 会非常有用。

常见问题

为什么我的追踪器没有上报位置信息?
  • 可能原因: LoRaWAN 连接可能存在问题。
  • 解决方案: 检查 LoRaWAN 网关的状态,确保其在线并已连接。同时,确认追踪器的 Device EUI 已在网络服务器上正确注册。
为什么追踪器的位置不准确?
  • 可能原因: 你的 BLE Beacon 的放置方式可能导致干扰或信号覆盖较弱。
  • 解决方案: 尝试调整 Beacon 的发射功率。你也可能需要重新安放它们,以减少来自墙体或机械设备的信号遮挡。
为什么追踪器的电池耗电这么快?
  • 可能原因: 上报频率设置过高,导致设备比实际需要更频繁地发送数据。
  • 解决方案: 优化运动检测设置,仅在追踪器移动时上报。你也可以增加上报间隔(位置更新之间的时间)以节省电量。
为什么位置信息缺失或没有显示?
  • 可能原因: 数据库或 API 可能存在问题,通常与数据载荷的解析方式有关。
  • 解决方案: 首先确认应用服务器上的载荷解码器是否正确且工作正常。如果解码器无误,请检查应用服务器日志中是否存在错误或连接问题。
为什么 SOS 警报没有被及时接收?
  • 可能原因: LoRaWAN 网络可能拥塞,或者设备类别不适合用于紧急消息。
  • 解决方案: 对于 SOS 警报这类对时间敏感的应用,请确保你的追踪器被配置为使用 Class C 模式。这会让设备的接收机持续开启,从而可以立即接收来自服务器的消息。
如何调整 BC01 Beacon 的广播间隔和发射功率?

你可以使用 SenseCraft 应用来配置 BC01 Beacon。

  1. Google Play StoreApple App Store 安装 SenseCraft 应用。
  2. 打开应用,并在手机上启用蓝牙。
  3. 扫描附近的 Beacon,并选择你希望配置的那一个。
  4. 输入默认密码“seeed123”以访问设置。
  5. 根据需要调整广播间隔(100ms 到 10s)和发射功率(-30dBm 到 +4dBm)。
  6. 保存更改。

更新日志

2026-05-29:

  • 重构部署指南,使其以 SenseCraft Solution 一键引导式部署(入门版 / 标准版 / 企业版套件)为主,将手动 Docker 自建部署保留为备选路径。
  • 新增部署行动引导,并刷新“参考与资源”链接,使其指向 校园级 BLE Beacon 定位系统解决方案页面;新增 GitHub 源码链接。

2025-11-10:

  • 重新编写 Beacon 部署和网关设置指南,以澄清放置最佳实践、参考资料,以及针对 SenseCraft Data 和 ChirpStack 的网络服务器特定说明。
  • 扩展运行时配置以及地图 / Beacon 设置章节,加入更清晰的界面指引、GeoJSON 导入示例,以及针对环境因素的可选调优建议。
  • 新增专门的提示章节,涵盖 Beacon 记录管理、UUID 管理、安装固定、验证以及批量编辑,使部署更易于扩展和排障。
Loading Comments...