覆盆子信标可以检索任何数据吗

问题描述

我想用 RaspBerry Pi Zero W 和 iOS 和 Android 应用程序(我将开发)构建一个 BLE Beacon 我将列出信标并选择一个来发送 4-6 字节的数据以触发一些操作圆周率。信标可以做到吗,还是我应该使用其他东西。我正在用 Go 编写代码,但我不想配对设备。

解决方法

是的,可以对 Raspberry Pi 零 W 扫描信标并对其看到的标识符采取行动。 (但请注意,这必须是零 W。基本的 Raspberry Pi Zero 没有无线功能。)

您不会在 Raspberry Pi 上的 Go 中找到信标检测代码,因此您最好的选择是使用本机 C 程序来完成信标扫描部分,并将其作为 Go 程序中的 shell 脚本调用。以下 C 程序是我在 Raspberry Pi 上用来扫描信标的程序:

https://gist.github.com/davidgyoung/0a18028b4338ff6cb201fba274502662

该程序必须使用 cc scanner.c -lbluetooth -o scanner 在 Raspberry Pi 上编译,之后您可以仅使用 scanner 启动扫描仪。程序的输出将是这样的:

B8:27:EB:1F:93:4D -68 02 01 06 11 06 82 75 25 D9 37 9D D7 8F 5F 4A F4 20 00 00 75 30
71:5C:23:9D:BC:7F -68 02 01 1A 02 0A 0C 0B FF 4C 00 10 06 03 1A 3B D4 B2 EB
B8:27:EB:1F:93:4D -68 02 01 06 11 06 82 75 25 D9 37 9D D7 8F 5F 4A F4 20 00 00 75 30
4A:53:7F:64:71:EC -91 03 03 9F FE 17 16 9F FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
69:0D:FF:7B:75:65 -73 02 01 1A 02 0A 0C 0A FF 4C 00 10 05 03 1C 27 BB 63
61:39:71:E9:1D:C9 -93 02 01 1A 02 0A 18 0A FF 4C 00 10 05 01 18 3B 24 12
B8:27:EB:1F:93:4D -68 02 01 06 11 06 82 75 25 D9 37 9D D7 8F 5F 4A F4 20 00 00 75 30

上面的每一行显示了检测到的蓝牙设备的 MAC 地址,然后是信号强度 RSSI,然后是广告的十六进制字节。

您的 Go 程序将需要读取 scanner 输出的每一行,然后解析广告的字节以查找信标模式以在看到具有特定字节模式的数据包时执行各种功能(表明一部手机发出了那个数据包。)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...