go - 发送蓝牙广告包并获得一些答案

标签 go raspberry-pi bluetooth-lowenergy

我想用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

关于go - 发送蓝牙广告包并获得一些答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65889944/

相关文章:

linux - openCV库GLIBC编译错误

python - 我应该使用线程还是进程?

linux - iPhone : Local DNS for local domains - cellular data for external addresses

android - Android 6 (Marshmallow) 中的不稳定 BLE 连接

security - net/smtp 是否以纯文本形式发送凭据?

regex - 验证图像的正则表达式

Go 模块、私有(private)仓库和 gopath

go - 附加到 []interface{} 问题——附加信息

bluetooth-lowenergy - LE L2CAP 面向连接的 channel - 堆栈/操作系统支持

java - 蓝牙 LE - 如何获得广告间隔(以毫秒为单位)?