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. 输入你的 Username 和 API 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 端点。sos、tracker_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 Store 或 Apple 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...