发送蓝牙广告包并得到一些答案

问题描述

我想用 RaspBerry Pi Zero 构建一些东西并用 Go 编写,

我以前从未尝试过蓝牙,我的目标是; 发送一个每秒都会变化的动态数据包,iOS 应用程序将扩展此消息,并通过一个按钮,客户端将在没有连接的情况下发送一条消息。

蓝牙广告是我要找的吗?你知道它的任何 GoLang 库吗?我应该从哪里开始?

解决方法

你的问题有很多部分。如果您想要无连接,那么 BLE roles 是 Broadcaster(信标)和 Observer(扫描仪)。有许多“标准”信标格式。他们很好地总结在这个cheat sheet

当然,您可以创建自己的格式,因为这些格式会使用 BLE 广告中的服务数据或制造数据。

在 Linux (Raspberry Pi) 上,官方蓝牙堆栈是 BlueZ,它记录了 API 的可用位置:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc

如果您想要无连接,那么每个设备都必须定期更改其角色。这需要仔细考虑每个人的收听和广播时长,因为您不希望他们总是同时说话和收听。

您可能会发现以下感兴趣的文章可以帮助您开始使用 BLE 和 Go Lang: https://towardsdatascience.com/spelunking-bluetooth-le-with-go-c2cff65a7aca