目录
一、引言
低功耗蓝牙(BLE)设备无处不在,从智能手环、蓝牙耳机到各种智能家居传感器。Python 作为一门强大且易用的编程语言,配合 bleak
库,能够轻松实现与 BLE 设备的交互。本文将详细介绍如何使用 bleak
库来扫描、连接 BLE 设备,并进行特征值的发送操作,帮助你快速上手 BLE 设备的开发。
ble连接大致流程:发现设备--》连接设备--》设备配对--》发现服务--》收发特征值
二、准备工作
在开始之前,请确保你的系统已经安装了 bleak
库。如果没有安装,可以使用以下命令通过 pip 进行安装:
pip install bleak
另外,你的电脑需要支持蓝牙功能,并且需要开启蓝牙。
三、扫描 BLE 设备
使用 bleak
库扫描附近的 BLE 设备非常简单,以下是示例代码:
import asyncio
from bleak import BleakScanner
async def scan_devices():
devices = await BleakScanner.discover()
for device in devices:
print(f"Device: {device.name}, Address: {device.address}")
asyncio.run(scan_devices())
首先导入了必要的模块 asyncio
和 BleakScanner
。asyncio
用于支持异步操作,因为 BLE 设备的扫描和连接通常是异步执行的,以避免阻塞主线程。然后定义了一个名为 scan_devices
的异步函数,在函数内部,使用 BleakScanner.discover()
方法来扫描设备,它会返回一个包含所有发现设备的列表。最后,我们遍历这个列表并打印出设备的名称和地址。
当运行这段代码时,你将会看到附近可见的 BLE 设备信息被打印出来。请注意,设备名称可能为空,这取决于设备本身是否广播名称。
四、连接 BLE 设备
扫描到设备后,下一步就是连接到目标 BLE 设备,并进行配对(只有配对成功才能安全的长期的互发消息)。假设我们已经知道了要连接设备的地址,示