我有一个 IMX8 模块,与 Apalis 评估板配对。操作系统是基于 Linux 的,由 Yocto Project 开发。我正在开发一个软件应用程序以添加到操作系统中,作为一个秘诀。
我在测试蓝牙操作时遇到问题。我想从一些 BLE 传感器接收一些广告信息。我写了一个 python 脚本来收集周围所有蓝牙设备的 MAC。它适用于主机 PC,但目标(IMX8 模块)找不到任何设备。在目标上,我有 bluePy 和 Bluez。我正在使用“picocom”测试带有串行接口的电路板。
为了使蓝牙工作,我在终端中运行以下命令:
rfkill unblock all
最初,我使用以下命令在终端中查找蓝牙设备:
sudo systemctl status bluetooth
并且目标的蓝牙已打开,结果如下:
* bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-09-20 10:44:04 UTC; 25min ago
Docs: man:bluetoothd(8)
Main PID: 904 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 1544)
Memory: 1.9M
CGroup: /system.slice/bluetooth.service
`-904 /usr/libexec/bluetooth/bluetoothd
然后我扫描设备:
bluetoothctl scan on
但该模块没有找到任何设备。
然后,我尝试将 Bluepy 与以下 python 脚本一起使用,它可以在主机上运行:
from bluepy.btle import Scanner, DefaultDelegate
import sys
# @class ScanDelegate
# @brief scan delegate to catch and interpret bluetooth advertising events
class ScanDelegate(DefaultDelegate):
def __init__(self):
DefaultDelegate.__init__(self)
def handleDiscovery(self, dev, isNewDev, isNewData):
pass
## associate the delegate to the scanner and start it for 10.0 seconds
scanner = Scanner().withDelegate(ScanDelegate())
devices = scanner.scan(5.0)
print(devices)
但是生成的“设备”字典是空的。
有人可以帮助我吗?我希望我很清楚。
先感谢您。