当前位置: 首页 > 知识库问答 >
问题:

蓝牙BLE实现

郎伟兆
2023-03-14

我正试图在一个项目中实现蓝牙(BLE)网关,以便在硬件和带有应用程序的移动设备之间传输数据。硬件不是唯一的,它可以批量生产,控制器中有相同的程序。

如果制作了100个硬件产品,并排通电,那么设置BLE广播的信息以进行广告的最佳方式是什么,以便移动设备可以接收该信息,并且在任何时候只能连接1个硬件和移动设备。

例如,如果您同时拥有3个相同的健身跟踪手表,并且您只想连接其中一个,那么如何区分手机蓝牙配对菜单上的哪个是哪个。每个制造的硬件是否需要在移动设备上显示唯一的ID(例如ABC11、ABC112、ABC113等),以及如何将100个唯一的程序快速编程到硬件中。另一方面,如果每个硬件都具有相同的ID广播,那么用户只希望在正确的硬件配对时获得最佳效果。

(顺便说一句,硬件是一个基于arduino的微控制器,使用BM70 BLE模块。

感谢您的帮助。谢谢努尼亚

共有1个答案

潘琨
2023-03-14

您不必为每个设备手动编程不同的MAC地址,BM70模块是提供BLE MAC地址的模块,它们应该具有唯一的MAC地址。有时制造商会回收(重用)这些地址,但我认为用100个设备两次击中MAC的几率很低。

如果您的设备都是相同的,并且使用相同的程序,那么它们都会提供和宣传相同的BLE服务。服务和包含特性是将您的设备与其他可移动设备区分开来的功能。不使用Bluetooth Classic的Real-BLE设备将不会显示在手机的Bluetooth settings(蓝牙设置)或配对菜单中。BLE需要一个专用的应用程序,您可以在其中扫描BLE设备,并对您正在使用的特殊服务进行理想筛选,以仅查找您自己的设备。

要区分放置在彼此旁边的100台设备(如果这很重要,因为它们都是一样的),您需要读取MAC地址并将其钉在每台设备的标签上,或者使用一些状态指示灯来显示您的连接状态Arduino。如果您连接到一个设备,LED可能会开始闪烁,以显示您连接到哪个设备。

 类似资料:
  • 我已经将通知设置到android中,它没有调用方法onCharacteristicRead()????它不进入该功能。为什么会这样?? 非常感谢您的帮助 请求解决方案。 这是我的代码: 提前谢谢!!

  • 问题内容: 我已经将通知设置为android,它不是在调用方法???? 它不进入该功能。为什么会这样呢? 任何帮助表示赞赏 要求解决方案。 这是我的代码: 先感谢您!! 问题答案: 首先,如果您通过以下方式阅读了特征,将触发: 读取特征和设置通知是两件事。您要从中获取数据的特征的类型是什么? 是吗: 读 通知 表明 如果是,则可以使用方法读取特征,但如果是或首先,则必须通过调用以下方法来读取特征:

  • 蓝牙协议栈-BLE地址类型 一个BLE设备,可以使用两种类型的地址(一个BLE设备可同时具备两种地址 Public Device Address Random Device Address 而Random Device Address又分为Static Device Address和Private Device Address两类 其中Private Device Address又可以分为Non-

  • 我试图用BLE API扫描附近的蓝牙设备,但它似乎不起作用 我已经在清单中添加了权限 以下内容在创建对象时 创建扫描仪回调对象并进一步扫描 在logcat中,我只看到以下内容 这是我的app build gradle } 有人能指出我在这里遗漏了什么吗?

  • jd.closeBluetoothAdapter(Object object) 关闭蓝牙模块。调用该方法将断开所有已建立的连接并释放系统资源。建议在使用蓝牙流程后,与 jd.openBluetoothAdapter 成对调用。 参数 Object object 属性 类型 默认值 必填 说明 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败

  • 蓝牙模块能够使你的作品与 Makeblock 蓝牙适配器 或支持蓝牙4.0的设备建立无线连接,使你能够无线地控制你的作品。 蓝牙的连接设置参看:通过蓝牙连接设备 蓝牙的灯效及含义 闪烁:蓝牙未被连接 常亮:蓝牙已连接,工作正常 灭:断电或故障 参数 尺寸:24×24mm 推荐使用距离:10m以内 蓝牙版本:BT4.0 频带范围:2402~2480MHz 天线增益:1.5dBi 能耗等级:≤4dBm