园区级蓝牙信标定位系统 — 部署指南

在 GitHub 上查看源码
套餐

入门套件

适合 500 平方米以内的小型办公室或单个房间。室内用 BLE 信标定位,室外用追踪器自带的 GNSS 定位,画在同一张地图上,并支持进出围栏告警。

  • 硬件: 1 台 SenseCAP M2 网关、9 个 BC03 蓝牙信标、1 个以上 SenseCAP T1000 追踪器。
  • 覆盖范围: 500 平方米以内,LoRaWAN 标称覆盖 2 km。
  • 服务器: 一台装有 Docker 的电脑或服务器,运行定位应用。

使用限制: 本系统不是安全认证系统,位置可能延迟、错误或缺失(LoRaWAN 上行可能丢包,GNSS 在室内不可用,BLE 定位在金属环境下会变差)。不要把它作为人身安全场景的唯一控制手段。

1

部署蓝牙信标

把蓝牙信标固定安装在室内,作为定位参考点。只靠 GNSS 覆盖的区域(院子、道路、停车场)不需要放信标。

接线
  1. 每个区域至少放 3 个信标(三边定位),或放 1 个(只到房间级)
  2. 安装高度 2.5-3 m,间距 5-10 m
  3. 记录每个信标的 MAC 地址与位置
故障排查
现象处理
信标指示灯不亮更换电池
定位不准增加信标数量或缩小间距
追踪器扫不到信标调整安装位置,避免过高或被遮挡
人在楼里但一直显示"室外"把该信标的 MAC 加进地图配置,未配置的信标不参与室内判定

2

配置 LoRaWAN 网关

接入网关,打通追踪器与定位应用之间的无线链路。

接线
  1. 网关上电,接入网络(有线或 WiFi)
  2. 用 SenseCraft App 扫码绑定网关
  3. 绿灯常亮表示就绪
故障排查
现象处理
指示灯不亮检查电源适配器与线缆
红灯闪烁检查网线或 WiFi 配置
App 扫码失败确认网关已联网
追踪器数据不上报确认网关与追踪器频段一致

3

部署定位应用

部署定位应用。部署前先准备好应用镜像(见套餐说明)。

部署方式

把定位应用部署到本机。

接线
  1. 确认已安装并启动 Docker Desktop
  2. 确认 5173 端口空闲
  3. 要用离线底图的话,部署前把 .pmtiles 地图文件放到 compose 文件旁边的 data/pmtiles 目录
部署时需要填写(在 SenseCraft Solution 应用里填)
其余 2 项已有默认值,可不改
  • 室外底图默认 osm
    2 项可选
    • · OpenStreetMap 栅格瓦片(在线)
    • · 离线 PMTiles 归档

    OpenStreetMap 栅格瓦片需要主机联网;离线(PMTiles)改读本地归档。

  • 主机上的 PMTiles 归档目录默认 ./data/pmtiles

    存放 .pmtiles 归档的主机目录,以只读方式挂到 /app/uploads/pmtiles。只有底图选离线 PMTiles 时才用。归档不在别处就保持默认值。

故障排查
现象处理
部署失败启动 Docker Desktop
找不到镜像从上游分支构建镜像并在本地打同名 tag
端口被占用关掉占用 5173 的程序或换端口
网页打不开等几分钟后刷新
部署完成后
  1. 访问 http://localhost:5173,用 admin / 12345678 登录(登录后在「配置 → 认证」修改默认密码)
  2. 上传平面图,填写它覆盖的实际尺寸(米)
  3. 在平面图上标注信标位置(填 MAC 地址)
  4. 把 LoRaWAN 网络服务器指向这台主机,或在面板里配置 SenseCAP / ChirpStack 接入
4

配置并激活追踪器

配置追踪器,确认室内和室外两种定位数据都能上报。

接线
  1. 长按电源键 3 s 开机,绿灯闪烁表示正在入网
  2. 用 SenseCraft App 连接追踪器
  3. 选对 LoRaWAN 频段,并同时打开 BLE 扫描与 GNSS 定位
  4. 在室内靠近信标走动,按键触发上报,确认平面图上出现位置
  5. 走到室外,等到 GNSS 定位成功,确认设备切换到室外地图
故障排查
现象处理
开机后一直闪烁检查网关是否在线、频段是否一致
网页上看不到追踪器检查面板里的网络服务器 / SenseCAP 接入设置
位置不更新按键触发上报,或调整上报周期
室内位置显示错误检查平面图上的信标标注
不切到室外需要 20 s 内 3 次 GNSS 定位且 15 s 内没有扫到已配置信标;靠窗位置可能来回切换

5

平面图配准

把平面图对齐到室外地图,让室内外轨迹显示在同一个视图。不需要室内外同屏时可以跳过。

前置条件
  • 平面图已上传,并已填写实际尺寸(米)
  • 已用 admin 登录
  • 室外地图上能看到站点(在线 OSM 地图,或离线 .pmtiles 地图)
接线
  1. 在地图下拉里选 室外,把视野移到站点
  2. 进入配准模式并选中平面图
  3. 用 Drag / Rotate / Scale 把平面图对到建筑上
  4. 核对工具条上的原点纬度、原点经度、旋转角、缩放
  5. 保存,面板提示 "Registration saved."

原点要放在你关心的区域 2 km 以内。

故障排查
现象处理
保存返回 422纬度不能超过 85°,缩放必须大于 0
保存返回 403admin 登录
刷新后参数丢失重新保存,确认出现 "Registration saved."
填完坐标后地图一片纯蓝手动把视野移回站点再填一次
旋转/缩放把手不出现退出后重新进入配准模式

部署完成后

刷新浏览器,重新进入配准模式并选中同一张图,四个参数仍是保存值;这张图上的设备轨迹与室外轨迹显示在同一张地图上。

6

配置地理围栏告警

在室外地图上画一个围栏,设备进出时告警。围栏里不需要放信标。

前置条件
  • 至少有一个追踪器在上报 GNSS 位置
  • 明确要告警的方向:进入、离开,还是两者
接线
  1. 新建围栏:GeoJSON 多边形,或者中心点加 radius_m
  2. 新建告警规则,location_mode 设为 geo,指向该围栏,选择方向
  3. 带着追踪器走过边界。告警需要在新一侧连续 3 个点、跨度至少 10 s 才会触发
故障排查
现象处理
完全不告警穿越不足 3 条上行或不足 10 s,把围栏画大些或缩短上报周期
告警偏晚属正常,需要连续 3 个点且跨度至少 10 s
重启后立刻来一条告警检查是否重复配置了同一条规则
time_range 不起作用属正常,geo 模式下不使用该字段
仍然强制要选信标location_mode 改成 geo

部署完成后

进入和离开各出现一条告警,在边界上徘徊不产生告警。告警出现在面板的告警列表里。

7

打开定位面板

定位面板已就绪。点击下方在浏览器中打开。

故障排查
现象处理
页面无法加载确认前一个部署步骤已成功,服务运行正常
主机/端口错误部署到远程设备时,用实际设备 IP 更新地址
地图下拉里没有"室外"用室外版镜像 tag 重新部署

部署完成后

系统已就绪。

快速验证

  1. 带追踪器在室内靠近信标走动,确认它出现在平面图上
  2. 走到室外,确认几次 GNSS 定位之后它切到室外地图
  3. 穿过围栏边界,确认告警出现
  4. 连按两次追踪器按键,确认 SOS 告警

下一步