bluepy 一款python封装的BLE利器简单介绍

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技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python实现数据的序列化操作详解

    Python实现数据的序列化操作详解 在Python中,数据的序列化是将数据从一种格式转换为另一种格式的过程。序列化可以将数据转换为二进制格式,以便在网络上传输或存储到文件中。Python提供了多种序列化方式,包括pickle、json、msgpack等。本文将详细讲解Python实现数据的序列化操作。 pickle模块 pickle模块是Python的标准…

    python 2023年5月15日
    00
  • Python根据指定日期计算后n天,前n天是哪一天的方法

    根据指定日期计算后n天、前n天是Python中常用的日期操作之一,下面将给出一份完整的攻略。 步骤1:导入相关的库 在Python中,处理日期相关的操作最常用的库莫过于datetime库。因此在代码中要使用到相关的函数,就需要先导入datetime库。 import datetime 步骤2:定义指定日期 定义指定日期可以采用两种方式。 第一种方式是定义字符…

    python 2023年6月2日
    00
  • Python如何实现的简单购物车程序

    下面我将详细讲解Python如何实现的简单购物车程序,攻略包含以下几个步骤: 了解需求,设计购物车数据结构 编写添加商品和移除商品函数 编写计算总价的函数 编写主函数,用户能够在控制台上进行购物车操作 1.了解需求,设计购物车数据结构 首先,我们需要了解购物车的基本需求: 用户可以向购物车中添加商品。 用户可以从购物车中移除商品。 用户可以查看购物车中所有商…

    python 2023年5月18日
    00
  • 在Python中操作时间之tzset()方法的使用教程

    下面我将详细讲解在Python中操作时间之tzset()方法的使用教程。 1. 什么是tzset()方法? tzset()方法是Python中time模块提供的一个函数,用于设置时区信息。该方法可以加载系统配置文件中的时区信息,或者手动指定时区信息。通过使用该方法,可以让Python程序正确地处理不同时区的时间,进行时区转换等操作。 2. 如何使用tzset…

    python 2023年6月2日
    00
  • 使用Python写一个量化股票提醒系统

    请看下面的攻略。 使用Python写一个量化股票提醒系统 目的 准备工作 基本思路 代码实现 目的 本文的目的是介绍如何使用Python编写一个量化股票提醒系统,可以实现根据股票价格涨跌幅度提醒用户,以及灵活的设置提醒条件。 准备工作 在开始编写代码之前,需要完成以下准备工作: 安装Python环境,推荐使用Python 3.x版本。 安装tushare库,…

    python 2023年5月30日
    00
  • python四则运算表达式求值示例详解

    以下是关于“Python四则运算表达式求值示例详解”的完整攻略: 简介 在Python中,我们可以使用eval函数对四则运算表达式进行求值。在本教程中,我们将介绍如何使用Python对四则运算表达式进行求值,并提供两个示例说明。 实现四则运算表达式求值 以下是使用Python实现四则运算表达式求值的代码: def evaluate_expression(ex…

    python 2023年5月14日
    00
  • NumPy数组中的复制和查看

    当我们在NumPy中操作数组时,复制和查看是常见的操作。但是,虽然看起来这两个操作非常相似,实际上它们在实现上的差别很大。在这里,我们将详细地讨论NumPy中的复制和查看。 复制 在NumPy中,复制一个数组有两种方式:浅复制和深复制。 浅复制 浅复制是指创建一个新的数组对象,但并不对数组中的数据进行复制。这意味着,新的数组与原始数组共享相同的数据。在浅复制…

    python-answer 2023年3月25日
    00
  • python中json.dumps()和json.loads()的用法

    下面是Python中json.dumps()和json.loads()的用法的详细讲解: 1. json.dumps() json.dumps()函数是将Python对象编码成JSON格式的字符串。语法格式如下: json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, a…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部