Bluepy 一款 python 封装的 BLE 利器简单介绍
什么是 Bluepy
Bluepy 是一款 Python 封装的 Bluetooth Low Energy (BLE) 工具。它允许你通过简单的 Python 代码来进行 BLE 设备的扫描、连接、探索和数据通信等操作。
bluepy 的安装
在 Linux 环境下安装 bluepy 非常简单,只需使用下列命令即可:
sudo apt-get install python-pip libglib2.0-dev
sudo pip install bluepy
如果您想要在其他平台上使用 bluepy,请参考 bluepy 的安装指南。
bluepy 的使用
BLE 设备扫描
要使用 bluepy 扫描 BLE 设备,只需要使用以下代码即可:
from bluepy.btle import Scanner
scanner = Scanner()
devices = scanner.scan(10.0) # 扫描 10 秒钟
for device in devices:
print("Device %s (%s), RSSI=%d dB" % (device.addr, device.addrType, device.rssi))
for (adtype, desc, value) in device.getScanData():
print(" %s = %s" % (desc, value))
上面的示例代码中,我们首先引入了 Scanner
类,然后创建一个扫描对象 scanner
。接着我们使用 scanner.scan(10.0)
函数扫描了 10 秒钟,得到对象的列表 devices
。最后,我们遍历了列表 devices
,打印出感兴趣的设备参数。
BLE 设备连接
要连接 BLE 设备,首先我们需要获取设备的 mac 地址。假如我们获取到设备的 mac 地址为 "11:22:33:44:55:66"
,则连接代码如下所示:
from bluepy.btle import Peripheral
peripheral = Peripheral("11:22:33:44:55:66")
上面的代码创建了一个 Peripheral
对象 peripheral
,该对象表示了与设备 "11:22:33:44:55:66"
的连接。创建对象的时候,bluepy 自动地将我们的计算机与设备建立了连接。
BLE 设备通信
要与 BLE 设备进行通信,我们需要先获取该设备上的服务(Service)和特征(Characteristic)的 UUID。下面我们以 Xiaomi 手环为例,讲解如何与其进行通信。
from bluepy.btle import UUID, Peripheral
SERVICE_UUID = UUID("0000fe95-0000-1000-8000-00805f9b34fb")
CHARACTERISTIC_UUID = UUID("00000013-0000-3512-2118-0009af100700")
peripheral = Peripheral("11:22:33:44:55:66")
service = peripheral.getServiceByUUID(SERVICE_UUID)
characteristic = service.getCharacteristics(CHARACTERISTIC_UUID)[0]
value = characteristic.read()
print(value)
上面的代码中,我们获取了 Xiaomi 手环的特征 UUID,然后通过 Peripheral
对象 peripheral
连接了手环。我们通过 peripheral.getServiceByUUID
函数获取了手环上的服务对象 service
,然后使用 service.getCharacteristics
函数找到了我们需要通信的特征对象 characteristic
。
最后,我们通过 characteristic.read()
函数读取了桥联手环的数据,并将它存储到了变量 value
中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:bluepy 一款python封装的BLE利器简单介绍 - Python技术站