关于python:通过蓝牙在iOS应用和Raspberry Pi之间进行通信

Communicate between iOS app and Raspberry Pi via Bluetooth

我正在尝试使用蓝牙在iOS应用和Raspberry Pi之间进行通信。 Raspberry Pi为此使用了Python脚本。

我最初使用的是PyBluez库,但是该库不支持Bluetooth LE,因此不能与iOS上的CoreBluetooth一起使用。
我的下一个解决方案是使用私有BluetoothManager框架与Pi进行通信,但这在iOS 7上不起作用。

我已经进行了更多研究,并看到了有关使用PyBluez手动发送/接收LE数据包的建议,但这似乎非常复杂,我真的不知道从哪里开始。

现在,我被困住了。我需要:

  • 通过iOS与非LE蓝牙设备进行通信的解决方案,或
  • 通过Python在Raspberry Pi上作为LE设备进行广告和通信的解决方案


一种选择是购买已经带有BLE堆栈的USB加密狗。

我们使用了带有BL600固件的Laird BL620-USB作为BLE外设运行。

在加密狗中具有BLE堆栈意味着可以像简单的USB串行端口一样从Raspberry Pi进行通讯,而无需使用任何Linux蓝牙堆栈。

BL600已经包含了Nordic / Laird专有的虚拟串行端口配置文件,因此即使与iOS设备通信时,您也可以实现与经典蓝牙SPP类似的简单性。

Laird将提供iOS和Android代码以在移动端使用VSP。

其他BLE模块制造商可能也这样做。


您尝试过吗?

默认情况下,Wheezy发行版没有蓝牙堆栈。 bluez软件包的版本为4.99,它对低能耗具有补丁支持。

在编写蓝牙低功耗(BLE)时请牢记,标准的Raspberry Pi发行版未很好地支持该功能。如上面提供的链接所述,需要一些工作才能使其正常工作。


NewAer建立了一个P2P消息传递框架,以与某些设备共享500字节(SDK 5)到15K。话虽这么说,我们可以在iOS设备之间或iOS与Raspberry Pi 3之间发送15K。随着Android对BLE进一步获得操作系统和硬件支持,我们希望广告也具有更大的文件大小,但目前仅限于Android和iOS之间的500个字节。