python库的fork,用于在linux或osx上与bluefruit le(蓝牙低能耗)设备交互。

bluebrick-Adafruit-BluefruitLE的Python项目详细描述


#巨蟒果实

python库简化了对linux和mac osx上bluefruit le(蓝牙低能耗)设备和服务的访问。隐藏所有特定于平台的ble代码(在linux上使用bluez,在mac osx上使用coreblutooth),并提供一个更简单的同步ble api,非常适合使用ble的脚本和其他自动化任务。例如,您可以创建一个程序,在uart模式下使用bluefruit le设备读取和写入数据(如传感器读数)。

请在此处查看指南中的更多详细信息:https://learn.adafruit.com/bluefruit-le-python-library/overview" rel="nofollow">https://learn.adafruit.com/bluefruit le-python-library/overview

注意:这个库为ble中心模式提供了一个python包装器,这意味着它可以启动与其他ble外围设备的连接和数据交换。它不允许您通过python模拟ble外围设备,也不允许您基于python访问连接到系统的ble外围设备。

请注意,该库尚处于开发初期!这些示例说明如何检测作为库的主要目标的ble uart设备并与之交互。更高级的功能,如获取广告数据或与其他ble服务交互,可能无法工作或当前不受支持。尤其是ble对桌面操作系统的支持仍然有些缺陷和不稳定的支持。该库已经在Python2.7.x上开发并进行了初步测试,但是如果Python3有问题,请提出这些问题,以便添加支持。

##支持的平台

库支持以下平台:

  • Linux,使用最新的Bluez5.33版本。该库使用bluez的实验性dbus绑定实现,以便从python等语言进行访问。
  • MacOSX,使用苹果的CoreBluetooth库。这个库依赖于pyobjc,苹果在osx上的python版本中包含了pyobjc。请注意,如果您使用的是不同的python,如自制的python,请确保[为该版本的python安装pyobjc](http://pythonhosted.org/pyobjc/)。

###Windows支持怎么样?

库当前不支持Windows,因为该平台上的BLE支持有限。Windows7完全不支持BLE。Windows 8没有[ble设备搜索和配对API](http://stackoverflow.com/questions/19959261/how-to-scan-for-bluetooth-low-energy-devices-in-windows-8-dESKToP Windows 10似乎有一个功能更强大的BLE API,但它还没有被调查,看这个库是否支持它。

##Linux和Raspberry PI要求

在Linux上(比如用树莓PI),您需要编译并安装最新版本的Bluez,当前版本是5.33, 以访问它公开的蓝牙le-api。使用最新版本的bluez非常重要,因为bleapi仍在开发中,而且还处于试验阶段。

警告:如果使用 像ubuntu、debian等linux桌面操作系统,可能会导致新bluez版本与 发行版的旧版bluez安装和对包依赖性的破坏。特别是ubuntu 因为核心组件依赖于bluez,所以可能会进入非常糟糕的状态。寻找合适包装的Bluez5.33 发布以供分发,或安装到可保护桌面计算机不受冲突影响的虚拟机中。

下面的步骤描述了如何在运行raspbian操作系统的raspberry pi上安装bluez 5.33。在树莓皮的终端上运行: < TT> sudoapt get更新sudo安装libusb dev-ylibdbus-1-devlibglib2.0-devlibudev dev潘> wgethttp://www.kernel.org/pub/linux/bluetooth/bluez-5.33.tar.gz 焦油xvfz蓝色z-5.33.tar.gz cd蓝色z-5.33 ./configure--禁用systemd 制作 sudo make安装 sudo cp./src/bluetooth d/usr/local/bin/

最后,您需要确保Bluetooth守护进程在引导时运行,并使用–experimental标志运行,以启用所有的BLEAPI。要执行此操作,请编辑/etc/rc.local文件,并在结尾的退出0之前添加以下行: < TT> /usr/local/bin/bluetooth--实验性的

保存更改的文件并重新启动pi。然后使用命令ps aux grep bluetooth验证bluetooth守护进程是否正在运行。

##Mac OSX要求

在mac osx上,不需要安装任何依赖项就可以开始使用这个库(pyobjc库应该是 已由Apple安装)。

##安装

满足上述要求后,可以通过在其根目录中运行以下命令来安装库: < TT> sudo python setup.py安装 或者,如果您在代理后面,希望安装程序使用您的环境变量: < TT> sudo-epython setup.py安装

这将安装库,以便系统上的任何脚本都可以使用它。

或者,您可以运行sudo python setup.py develop以将库安装到开发模式,在这种模式下,对代码的更改(例如执行git pull)将立即生效,而无需重新安装。

安装库后,检查examples文件夹以查看一些使用示例:

  • list_arts.py-此示例将打印出可以找到的任何ble uart设备,这是搜索设备的简单示例。
  • uart_service.py-此示例将连接到它找到的第一个ble uart设备,发送字符串"hello world!'然后等待60秒收到回复。该示例使用一个简单的可同步uart服务实现来使用uart设备发送和接收数据。
  • device_info.py-此示例将连接到它找到的第一个BLE UART设备,并从其设备信息服务中打印出详细信息。请注意,此示例仅适用于Mac OSX!不幸的是,当前BlueZ API中的错误/设计问题阻止了对设备信息服务的访问。
  • low_level.py-这是一个较低级别的示例,它直接与ble设备的服务和特性交互。就像uart_service.py示例一样,它将连接到第一个找到的uart设备,发送一个字符串,然后打印出接收一分钟的消息。

要运行示例,请确保使用sudo作为Linux上的根用户运行,例如运行uart_service.py示例: < TT> sudo python uart_service.py

在mac osx上,sudo前缀不必作为根目录运行。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中的安卓字节[]操作   java如何使用SeleniumWebDriver自动弹出对话框窗口   运行单黄瓜JVM的java。来自Gradle的功能文件   在Java中使用JTA连接到SSH   eclipse为什么在从SVN签出Ant版本1.3时,Ant java项目本身有很多错误?   java如何获取撇号之间的字符串   java锁在单个线程上作为布尔信号量工作吗?   bluej我可以使用什么代码清除屏幕(java)?   java在单击JButton时更改JPanel图标   java将逗号分隔的字符串转换为不带中间容器的列表   java Flink:以集群模式加载资源文件   java删除多对多条目,同时将两个对象都保留在数据库中   将数组值向左移动