我一直在尝试使用此脚本https://github.com/karulis/pybluez/blob/master/examples/advanced/inquiry-with-rssi.py,但sock = bluez.hci_open_dev(dev_id)
似乎返回了无法使用的套接字。每次将 socks 传递给函数时,就会抛出error(9, 'Bad file descriptor')
。
该脚本很旧,因此很有可能不再起作用。所以我有两个问题。有谁知道如何使用pybluez库(或更现代的等效方法)来测量蓝牙设备与树莓派的接近度?
这个脚本导致我建立了一个损坏的套接字,我在做什么错呢?
谢谢。
最佳答案
试试这个:
运行hcitool dev
以获取您的蓝牙设备的地址。
在链接到的脚本中,将第120行更改为:
dev_id = 0
至:
dev_id = bluez.hci_get_route(ADDRESS_FOR_YOUR_BLUETOOTH_DEVICE)
要测量接近度,脚本会调用该函数
device_inquiry_with_with_rssi(sock)
它将打印蓝牙设备ID及其对应的RSSI值的列表(请参阅第95-102行)。通常,设备必须处于配对模式才能显示在查询结果中。该函数还将ID/RSSI列表作为数组返回,因此您可以从自己的代码中调用它并处理返回的结果。 RSSI值指示设备的信号强度,因此是邻近度的间接度量(请参见Finding distance from RSSI value of Bluetooth Low Energy enabled device)。
关于python - 在树莓派上用蓝牙测量距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22443896/