为什么两个不同的 BLE 适配器在扫描时显示不同的设备?
Why are two different BLE adapters show different devices when scanning?
我有两个板子:
第 1 板:PixiePro 运行 Arch Linux、Bluez 5.4 |板载蓝牙适配器
第 2 板:Raspberry Pi 运行 Raspbian,Bluez 5.39 | USB 蓝牙适配器
在使用 hcitool
扫描 Board 1 上的 BLE 设备 (iBeacon) 时,我只收到一个设备的地址(下图)。
AC:BC:32:72:8C:6B
我有超过 10 个适配器应该找到的 iBeacon。我尝试了以下技术:
开始hcitool lescan
,删除重复项
sudo hcitool lescan --duplicates
开始 hcitool lescan
处理并从 hcidump
读取数据
sudo hcitool lescan --duplicates 1>/dev/null &
sudo hcidump --raw
这些都只是显示一两个不同的 mac 地址。我附近的各种 iBeacon 应该有几个不同的 mac 地址。
这是 Board 2 使用 USB 蓝牙加密狗的输出以供比较:
sudo hcitool lescan
如您所见,有许多不同的设备,其中一些可以立即识别为 Kontakt iBeacon。注意:我周围的大多数信标都不是 Kontakt iBeacons
使用 hcitool lescan
时是否缺少或需要启用的设置?
我会尽力帮助你。
您的 PixiePro 设备似乎有问题,但是您提供的信息不足以诊断问题。
这可能是设备本身或 Bluez 堆栈的问题,或者仅仅是因为设备超出了 PixiePro 设备的检测范围。
为了调试您的问题,您可以尝试执行以下操作:
首先检查mac-addresses, uuid, major and minor values
你的设备。通常您可以在门户网站上找到此信息
您的 iBeacon 供应商;
确保所有设备都已打开并正常工作。最简单的方法
是检查它们是否被手机检测到 phone。你可以
安装 free iOS or Android 应用程序。您应该能够检测到所有设备。还要检查每个 iBeacon 设备的 RSSI 值。请注意,即使从 phone 到 iBeacon 的距离相同,值也会有所不同。但是,当您将它们移近或移近接收设备时,移动应用程序应该可以清楚地识别该行为;
一旦您 100% 确定所有 iBeacon 设备都已
正常工作,你应该能够检测到 mac-addresses on
你的开发板设备。 为此,我建议 运行 hcitool
第一个终端 window 和第二个终端中的 hcidump
工具
没有任何额外的参数。不像 hcitool
命令它
还将输出捕获数据包的 RSSI 值,如下所示:
HCI Event: LE Meta Event (0x3e) plen 42
LE Advertising Report
ADV_NONCONN_IND - Non connectable undirected advertising (3)
bdaddr 02:AB:26:D4:9A:EE (Public)
Flags: 0x1a
Unknown type 0xff with 25 bytes data
RSSI: -72
这些值将帮助您比较在不同设备上扫描的行为。不要期望它们在任何地方都相等,这些只是相对值。现在尝试将每个设备移动到靠近接收板的位置,您应该能够在 hcidump
工具的输出中看到它的 mac-地址。
在这种情况下,如果您仍然没有看到您的 iBeacon 设备,那么请
确定 你的板子某处有问题。 可能是
硬件或软件。这是我推荐的地方:
- 安装
最新固件,可能会修复 BLE 堆栈中的错误
实施。
- 如果这种方法没有帮助 - 那么这意味着
问题出在硬件的某个地方,因此,您唯一要做的就是
能做的就是更换你的主板设备。
祝你好运!
如有任何问题,欢迎随时提问!
我有两个板子: 第 1 板:PixiePro 运行 Arch Linux、Bluez 5.4 |板载蓝牙适配器 第 2 板:Raspberry Pi 运行 Raspbian,Bluez 5.39 | USB 蓝牙适配器
在使用 hcitool
扫描 Board 1 上的 BLE 设备 (iBeacon) 时,我只收到一个设备的地址(下图)。
AC:BC:32:72:8C:6B
我有超过 10 个适配器应该找到的 iBeacon。我尝试了以下技术:
开始hcitool lescan
,删除重复项
sudo hcitool lescan --duplicates
开始 hcitool lescan
处理并从 hcidump
sudo hcitool lescan --duplicates 1>/dev/null &
sudo hcidump --raw
这些都只是显示一两个不同的 mac 地址。我附近的各种 iBeacon 应该有几个不同的 mac 地址。
这是 Board 2 使用 USB 蓝牙加密狗的输出以供比较:
sudo hcitool lescan
如您所见,有许多不同的设备,其中一些可以立即识别为 Kontakt iBeacon。注意:我周围的大多数信标都不是 Kontakt iBeacons
使用 hcitool lescan
时是否缺少或需要启用的设置?
我会尽力帮助你。
您的 PixiePro 设备似乎有问题,但是您提供的信息不足以诊断问题。
这可能是设备本身或 Bluez 堆栈的问题,或者仅仅是因为设备超出了 PixiePro 设备的检测范围。
为了调试您的问题,您可以尝试执行以下操作:
首先检查mac-addresses, uuid, major and minor values 你的设备。通常您可以在门户网站上找到此信息 您的 iBeacon 供应商;
确保所有设备都已打开并正常工作。最简单的方法 是检查它们是否被手机检测到 phone。你可以 安装 free iOS or Android 应用程序。您应该能够检测到所有设备。还要检查每个 iBeacon 设备的 RSSI 值。请注意,即使从 phone 到 iBeacon 的距离相同,值也会有所不同。但是,当您将它们移近或移近接收设备时,移动应用程序应该可以清楚地识别该行为;
一旦您 100% 确定所有 iBeacon 设备都已 正常工作,你应该能够检测到 mac-addresses on 你的开发板设备。 为此,我建议 运行
hcitool
第一个终端 window 和第二个终端中的hcidump
工具 没有任何额外的参数。不像hcitool
命令它 还将输出捕获数据包的 RSSI 值,如下所示:HCI Event: LE Meta Event (0x3e) plen 42 LE Advertising Report ADV_NONCONN_IND - Non connectable undirected advertising (3) bdaddr 02:AB:26:D4:9A:EE (Public) Flags: 0x1a Unknown type 0xff with 25 bytes data RSSI: -72
这些值将帮助您比较在不同设备上扫描的行为。不要期望它们在任何地方都相等,这些只是相对值。现在尝试将每个设备移动到靠近接收板的位置,您应该能够在 hcidump
工具的输出中看到它的 mac-地址。
在这种情况下,如果您仍然没有看到您的 iBeacon 设备,那么请 确定 你的板子某处有问题。 可能是 硬件或软件。这是我推荐的地方:
- 安装 最新固件,可能会修复 BLE 堆栈中的错误 实施。
- 如果这种方法没有帮助 - 那么这意味着 问题出在硬件的某个地方,因此,您唯一要做的就是 能做的就是更换你的主板设备。
祝你好运!
如有任何问题,欢迎随时提问!