站内搜索
更多
MyTag--厘米级测距UWB+BLE双模小型防丢器
专业版

MyTag--厘米级测距UWB+BLE双模小型防丢器

简介

本项目是一款基于 nRF52832 与 DWM3000 的高精度 UWB+BLE 双模防丢卡。支持 10cm 级测距定位与低功耗蓝牙连接,集成电荷泵驱动的压电蜂鸣器,系轻量化设计,成品体积仅约

简介:本项目是一款基于 nRF52832 与 DWM3000 的高精度 UWB+BLE 双模防丢卡。支持 10cm 级测距定位与低功耗蓝牙连接,集成电荷泵驱动的压电蜂鸣器,系轻量化设计,成品体积仅约
星火计划2026
复刻成本:150

开源协议

GPL 3.0

创建时间:2026-04-09 22:08:54更新时间:2026-08-11 09:24:01

描述

MyTag--厘米级测距UWB+BLE双模小型防丢器

视频链接

功能演示视频见附件

项目简介

MyTag 是一套由失物端 A 板和网关端 B 板组成的小型防丢系统。两块板均以 Nordic nRF52832 为主控,并配有 DW3000 协议兼容 UWB 模块。A 板可固定在钥匙、背包或其他物品上,B 板负责与 A 板协同测距,并将状态和距离发送到手机或电脑浏览器,且本项目软硬件全部开源,详细信息见文末。

项目功能

  1. UWB 双向测距:B 板作为 Initiator,A 板作为 Responder,通过 DS-TWR 的 POLL、RESP、FINAL 帧交换计算距离。
  2. BLE 双链路控制:浏览器连接 B 板,B 板再通过 BLE 连接 A 板,将网页命令转发到失物端。
  3. 免安装网页终端:支持手机和电脑浏览器,可显示距离动画、三次有效数据均值、最近二十次记录丢包率和启动状态。
  4. 蜂鸣寻物:网页可控制 A 板蜂鸣器开关,也可设置频率、持续时间和重复次数。
  5. NFC 失物信息:A 板连接 NTAG I2C Plus,可从网页写入文本或 URL;拾到物品的人可用手机碰一碰读取预留信息。
  6. LED 与本地按键:两块板各有红、绿状态灯,支持网页独立控制;短按本地按键可快速点亮定位灯,长按 3 秒可闪灯并复位设备。
  7. 双板电量监测:A、B 板均通过分压电路采样单节锂电池电压,网页显示电压和估算电量,并在电压过低时提示充电。
  8. 链路诊断:网页可显示 A-B BLE 连接状态、RSSI、UWB 超时和丢包率,便于粗略进行距离检测。
  9. 按需启动 UWB:UWB 不需要长期保持工作;启动时由 Flash 标志配合芯片复位,在 BLE 初始化前完成 UWB 上电时序。
  10. 长续航:经实测,B板待机电流仅为0.2mA,理论续航2000小时;A板待机电流约为0.6mA,理论续航约670小时

典型应用场景包括钥匙和背包寻找、室内物品测距、UWB 状态机学习、Web Bluetooth 设备开发以及双模无线终端原型验证。

项目参数

项目参数或说明
主控Nordic nRF52832-QFAA,ARM Cortex-M4F
BLE 协议栈Nordic S132 SoftDevice 7.2.0
开发环境nRF5 SDK 17.1.0,SEGGER Embedded Studio
低频时钟外部 32.768 kHz 晶振
A 板 BLE 名称CC-UWB-TAG
B 板 BLE 名称CC-UWB-GW
UWB 模块DW3000 协议兼容模块,使用厂家适配 Decadriver
UWB 工作参数CH5、850 kbps、PLEN1024、DW 8-symbol SFD
测距方式DS-TWR,B 板发起、A 板应答
UWB 接口SPI,另有 IRQ、RST、WAKEUP 和独立电源控制
电池采样P0.28/AIN4,1 MΩ + 1 MΩ 分压
状态灯每板 2 路,高电平点亮
本地按键P0.31,低电平触发
A 板蜂鸣器EN P0.10,方波输入 P0.13
A 板 NFCSCL P0.20,SDA P0.22,FD P0.03
距离显示最近 3 次有效测量均值
丢包统计最近 20 次 UWB 记录中的超时占比

实际测距有效范围受uwb模块限制,在无遮挡的环境下,我手里的这块极限有效距离约为25-30m

原理解析(硬件说明)

1. 双板系统架构

A、B 两块板硬件主体相近,但软件角色不同。A 板随物品移动,负责 UWB 应答、蜂鸣提醒、NFC 信息、LED 和电量采样;B 板作为随身网关,负责发起测距,并通过 Web Bluetooth 与浏览器通信。

浏览器只直接连接 B 板。B 板收到网页命令后,通过第二条 BLE NUS 链路控制 A 板,并将 A 板的状态、RSSI、电量和 UWB 响应封装后转发到网页。这样可以避免手机同时管理两台 BLE 外设,也让网页协议保持统一。

图1:A/B 双板通信示意图
image.png

2. 主控与 BLE 电路

两块板均采用 nRF52832-QFAA。芯片内部集成 2.4 GHz BLE 射频、ARM Cortex-M4F 内核和常用数字外设。固件基于 S132 7.2.0,可同时承担 BLE 外设角色;B 板还承担中心角色,用于主动扫描并连接 A 板。

32 MHz 晶振供高频系统和射频使用,32.768 kHz 晶振作为 BLE 低频时钟。晶振、负载电容、芯片电源脚和去耦电容应靠近主控放置。2.4 GHz 射频引脚经匹配网络连接天线,匹配值应以最终 PCB 和外壳状态下的实测为准。

图2:nRF52832、时钟与 BLE 射频电路
image.png

3. UWB 模块与供电控制

UWB 模块通过 SPI 与 nRF52832 通信,SCK、MOSI、MISO、CS 分别使用 P0.14、P0.16、P0.15、P0.17,另有 P0.18 IRQ、P0.19 RST 和 P0.02 WAKEUP。P0.27 控制 UWB 电源,当前硬件为低电平上电。

该模块对上电顺序较敏感。直接在 BLE 已运行时执行完整上电流程可能与 SoftDevice 时序冲突,因此固件启动 UWB 时会先在 Flash 0x7E000 页写入带反码校验的启动标志,然后复位 nRF52832。第二次启动时,程序在初始化 BLE 之前读取标志并给 UWB 上电,成功后再恢复 BLE。启动过程中浏览器短暂断开属于正常现象。

图3:UWB 模块、SPI 与电源控制电路
image.png

4. UWB 测距过程

测距采用 DS-TWR。B 板发送 POLL,A 板接收后按设定延时发送 RESP;B 板收到 RESP 后延时发送 FINAL;A 板收到 FINAL 后利用各帧的发送、接收时间戳计算飞行时间和距离,再通过 BLE 将结果返回 B 板和网页。

本项目调试时按步骤验证了“POLL 发出、POLL 接收、RESP 发出、RESP 接收、FINAL 发出、FINAL 接收”六个阶段。国产兼容模块的延迟发送和 PHY 配置必须两端一致,不能只根据寄存器初始化成功判断测距链路已经正常。

图5:DS-TWR 时序定义(app_uwb.c)
image.png

5. 电池电压采样

电池电压经两个 1 MΩ 电阻等比例分压后接入 P0.28/AIN4,使 ADC 输入约为实际电池电压的一半。高阻值分压可以减小长期静态损耗,但更容易受到 ADC 输入阻抗、PCB 漏电和噪声影响,因此软件采样时需要留出稳定时间并进行多次采样。

网页按单节锂电池典型开路电压估算电量。电量百分比只用于趋势提示,不等同于专业电量计;带载、充电、温度和电芯差异都会影响读数。电压低于 3.3 V 时应及时充电,避免电池过放。

图6:电池分压与 SAADC 采样电路
image.png

6. 蜂鸣器与状态灯

A 板蜂鸣器由 P0.10 控制使能,P0.13 输出方波,采用PAM8904EGPR作为驱动芯片。网页可配置频率、单次响铃时间和重复次数,适合在距离较近但视线受阻时通过声音寻找物品。

两块板各使用 P0.29、P0.30 控制两路 LED。网页可独立开关每一路灯;本地短按按键时,程序先关闭原有灯光,再点亮该板的指定定位灯。长按超过 3 秒时,两灯闪烁两次后复位芯片。

图7:蜂鸣器、LED 与按键电路
image.png
image.png

7. NFC 电路

A 板通过 I2C 连接 NTAG I2C Plus,SCL 使用 P0.20,SDA 使用 P0.22,P0.03 连接场检测引脚。网页将文本或 URL 分片发送给 A 板,A 板再写入 NFC 标签。

NFC 识别距离主要取决于线圈尺寸、匝数、谐振匹配、安装位置和手机天线方向。外接线圈应尽量缩短连接线,远离电池、地平面和金属件;更换线圈后应重新检查谐振和读写稳定性。

图8:NTAG I2C Plus 与外接线圈电路
image.png

复刻须知

需购买材料

1.PCB:FR4 板厚1.0mm
2.元器件:当前原理图中所绘制的BU-03模块(该模块仅用作参考焊盘)不要购买!! 换成淘宝购买的另一款国产UWB模组:https://e.tb.cn/h.85A3VuzGzep2rjY?tk=9jzWgBHn8sy 选择‘UWB-X3-CA 小功率模组’,其它完全按照BOM表购买即可。
3.3D外壳:模型文件见附件,我使用的耗材是JLC-Black,可根据需求选择其他耗材
4.M2螺丝:选择M2×9沉头自攻螺丝
5.NFC线圈:无要求,自行购买或自制皆可
6.蜂鸣器:淘宝搜索压电陶瓷自行购买
7.电池:403030 400mah锂电池
8.烧录器:J-Link或其它国产ARM仿真器皆可,这里贴一份链接: https://e.tb.cn/h.8hdzhTD4Yy3bKXS?tk=sdQpgzQvlF3
9.(可选)烧录针

程序烧录

下载J-Flash Lite (我使用的是v9.36)
连接ARM仿真器
image.png
如图配置软件并点击确定
image.png
进入主界面后点击三个点选择文件
image.png
首先烧录蓝牙栈,选择从附件中下载的s132_nrf52_7.2.0_softdevice.hex
c2a4a94624435fec7b6c46a3a1bed1bd.jpg
选择成功后连接仿真器与板子,确认连接好后先点击'Erase Chip'
image.png
出现图中提醒后即为清理成功(若提示连接不上设备则优先检查nrf主控芯片焊接和仿真器连接是否正确),接着点击'Program Device',如图即为烧录蓝牙栈成功
image.png
接下来继续点击三个点并选择board_a_tag_v1.0.0.hex(A板主程序)并直接点击'Program Device'烧录(注意此时不要点击Erase Chip)。下图即为烧录成功
image.png
至此,A板(失物端)烧录完成。
B板(寻找端)烧录步骤与A板相同,只不过将A板主程序换成board_b_gateway_v1.0.0.hex的B板主程序
其它流程仍然是先选择蓝牙栈固件➡Erase Chip➡点击烧录➡选择B板固件➡点击烧录

简单的验证烧录及硬件是否正常的方法:
固件中若点击主板侧方的按钮,会重置整板灯光并根据对应角色亮不同的光:A板为绿色,B板为红色

完整复刻流程

  1. 焊接整板(除电池),测量电源输入及系统3.3v是否对地短路,若不短路,焊接电池后测试充电是否正常以及系统3.3v供电是否完整
  2. 下载附件中的固件并烧录,具体烧录流程见上
  3. 使用电脑打开附件中的'ble_gateway_debug.html' (注:手机端若想使用,可使用脚本一键启动内网服务,具体使用说明见下方软件代码中的开源仓)
  4. 点击界面中的'连接 CC-UWB-GW',此时网页应自动扫描B板,稍作等待后点击配对扫描出来的'CC-UWB-GW'
    image.png
  5. 配对成功后系统会自动扫描并连接A板,如图:(若两轮自动连接均失败,可手动再次点击'连接A板',若仍失败,请检查A板状态与焊接)
    image.png
  6. 连接成功后web端可自动显示A B板的电池电压,估算电池电量,蓝牙信号强度,并开放对于两板的灯光控制以及对A板的蜂鸣器和NFC控制
    image.png
  7. 此时点击'启动UWB'按钮,可自动对两板的UWB模块进行唤醒以及上电并进行初始化,整个过程可能较久(约50s左右) 注:UWB上电过程中产生蓝牙断开为正常现象
    image.png
    image.png
  8. 两板均上电成功后,web端会自动不断进行uwb测距结果刷新
  9. 由于UWB模块耗电量较大,测距完成后请点击'停止UWB'以提高续航
  10. 其他功能(如灯光控制,NFC写入,蜂鸣器控制)在网页端已经较为完善的体现,这里不再赘述

实物图

主板渲染图:
image.png
3D外壳装配体渲染图:
image.png
装配体实拍图:
bfd8336629f041785ac473443ff92338.jpg
90d2a37c6aa7a0cfa9709d4ec262cd9f.jpg
60656a3399492a5b0b10879790357e3d.jpg

软件代码

本项目代码完全开源
GitHub 开源仓库:
https://github.com/hyh12323/uwb-tag
Gitee:
https://gitee.com/fq12323/uwb-tag

仓库包含:

  • 最新版 A 板标签固件和 B 板网关固件;
  • nRF52 UWB 硬件适配层与适配 Decadriver;
  • Web Bluetooth 控制页面;
  • SDK 路径配置脚本、通信协议和排错文档;
  • UWB 模块参考 Demo;
  • GitHub Release 中可直接烧录的 A/B HEX、S132 SoftDevice 和校验文件。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
上盖.3mf
3
2
下盖.3mf
3

附件

序号文件名称下载次数
1
s132_nrf52_7.2.0_softdevice.hex
3
2
board_b_gateway_v1.0.0.hex
3
3
board_a_tag_v1.0.0.hex
3
4
ble_gateway_debug.html
3
5
start_ble_gateway_debug.cmd
3
6
start_ble_gateway_debug.ps1
3
7
8月8日(1).mp4
4
8
演示视频.mp4
2
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航