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前缀不必作为根目录运行。