- 什么是BLE和蓝牙信标?
- BLE技术如何与信标一起使用?
- 什么是Eddystone信标?
- 要求
- 为Eddystone信标设置Raspberry Pi
- 通过校准发射功率来优化发射信号功率
- Eddystone蓝牙信标的应用
蓝牙是革命性的技术之一,可以无线传输数据,控制其他设备,构建家庭自动化系统等。但是您是否想过,蓝牙还可以用于向附近的设备广播任何信息,从而轻松显示重要信息。 Google已开发出一种协议来执行任务,可以将该协议轻松部署在Raspberry Pi中,使其成为Bluetooth Beacon广播器。
在本教程中,我们将了解BLE(低功耗蓝牙)和蓝牙信标,并在Raspberry Pi中安装Eddystone蓝牙信标以广播URL。将Raspberry Pi内置蓝牙,将Raspberry Pi转换成蓝牙信标非常容易。
什么是BLE和蓝牙信标?
顾名思义,“蓝牙低功耗”比传统蓝牙消耗更少的功率。它是通过在需要时通过预定义的定期更新发送数据来实现的。但是与经典的蓝牙不同,它不用于传输文件或音乐。BLE设备可与Bluetooth V4.0一起使用,并且可以作为服务器或客户端以低功耗运行,这使BLE成为信标,智能手表,健身腕带等的理想选择。我们用来传输文件和其他数据的蓝牙协议。几乎所有BLE设备都具有与之关联的经典蓝牙功能。前面我们用ESP32详细介绍了BLE。
蓝牙信标:
信标是将一些消息广播到附近的电子设备并充当广播者的硬件设备。该技术使便携式设备在靠近信标设备时可以执行某些操作。现在,可以使用BLE和经典蓝牙来实现信标。由于大多数智能手机和其他电子设备都与BLE兼容并且可以用作信标接收器,因此与传统的蓝牙信标相比,实现BLE信标效率更高,从而降低了功耗。
平均而言,低功耗蓝牙信标可以将BLE信号传输到80米。
BLE技术如何与信标一起使用?
BLE是一种低功耗技术,专为短距离通信而设计,在电池寿命比高数据速率更重要的情况下,它是首选。此通信中的数据传输仅是单向的。BLE信标以固定的时间间隔发送小数据包。这些数据包由智能手机中安装的信标扫描仪应用程序接收和解码。接收到的数据触发了诸如促销产品或发布消息之类的动作。
在蓝牙信标中,它通过BLE通道每秒将ID号发送10次。然后,此ID号由蓝牙设备接收并由信标扫描仪应用程序识别,并将其链接到操作,例如下载存储在云中的应用程序或内容,并将其显示在智能手机上。
什么是Eddystone信标?
Eddystone是Google开发的协议,它允许向BLE设备广播单向消息。Eddystone-URL框架构成了物理Web的骨干,这有助于发现周围的Web内容。信标可以使用Eddystone协议广播四种类型的数据。它们如下:
- Eddystone-URL,用于广播URL地址
- Eddystone-UID,用于广播信标ID
- Eddystone-TLM,用于广播信标遥测,例如设备温度,电池强度等。
- Eddystone-EID的安全性。
还有其他类型的信标,例如iBeacon,它适用于iOS支持的设备,但Eddystone仅适用于Android设备。另请注意,Google已停止“附近的通知”,现在用户将必须安装专门的信标扫描器应用程序,以显示广播的内容。
在本教程中,我们将使用Raspberry Pi作为Eddystone信标,并专注于使用Eddystone URL广播URL地址,以便任何人都可以借助其Android设备轻松访问广播的信息。
要求
在这里,仅需Raspberry Pi即可构建此蓝牙信标。它应该是Raspberry Pi 2或更高版本,并装有Raspbian Jessie或更高版本的OD。
在这里,我们将使用SSH访问笔记本电脑上的Raspberry Pi。您可以在笔记本电脑上使用VNC或远程桌面连接,也可以将Raspberry pi与显示器连接。在此处了解有关无显示器无头设置Raspberry Pi的更多信息。
为Eddystone信标设置Raspberry Pi
在Raspberry Pi上设置Eddystone广播器非常容易。它仅涉及3个命令。
这可以通过配置HCI(主机控制器接口)来完成,可以使用hciconfig commad对其进行访问。要检查使用此命令可以完成的操作,请在终端中输入以下命令。
hciconfig -h
1.首先,我们必须使用以下命令在Raspberry Pi上启用Bluetooth设备。
sudo hciconfig hci0向上
2.现在,我们必须使用以下命令将蓝牙设置为“播发且不可连接”的设备。
须藤hciconfig hci0 leadv 3
3.上面的命令使设备可以运行广播服务,现在只需在下一个命令中输入信标数据即可,其中包含不同的帧信息和十六进制格式的URL。运行以下命令以开始信标广播。
sudo hcitool -i hci0 cmd 0x08 0x0008 1c 02 01 06 03 03 aa fe 14 16 aa fe 10 00 02 63 69 72 63 75 69 74 64 69 67 65 73 74 07 00 00 00 00
此命令将广播URL
要在智能手机上查看广播的消息,请在Android智能手机上下载Physical Web App或Beacon扫描仪,然后开始扫描。您将在应用程序中看到广播的链接,如下所示。单击链接访问并在浏览器中打开网站。
现在让我们了解消息的十六进制编码。在下表中,我们对代码中存在的每个值进行了解释:
值 |
描述 |
---|---|
0x08 |
#OGF =操作组字段=蓝牙命令组= 0x08 |
0x0008 |
#OCF =操作命令字段= HCI_LE_Set_Advertising_Data = 0x0008 |
1c |
长度。十六进制1c转换为23个十进制,即后面的字节数。 |
02 |
长度 |
01 |
标志数据类型值 |
06 |
标记数据 |
03 |
长度 |
03 |
16位服务UUID数据类型值的完整列表 |
a |
16位Eddystone UUID |
FE |
16位Eddystone UUID |
14 |
长度。十六进制的14转换为15的十进制,即后面的字节数 |
16 |
服务数据数据类型值 |
a |
16位Eddystone UUID |
FE |
16位Eddystone UUID |
10 |
框架类型= URL |
00 |
发射功率(应校准) |
02 |
URL方案(http:// = 0x02) |
63 |
十六进制的“ c” |
69 |
十六进制的“ i” |
72 |
十六进制的“ r” |
63 |
十六进制的“ c” |
75 |
十六进制的“ u” |
69 |
十六进制的“ i” |
74 |
十六进制的“ t” |
64 |
十六进制的“ d” |
69 |
十六进制的“ i” |
67 |
十六进制的“ g” |
65岁 |
十六进制的“ e” |
73 |
十六进制的“ s” |
74 |
十六进制的“ t” |
07 |
.com(.com = 0x07) |
00 |
|
00 |
|
00 |
要使用Raspberry Pi蓝牙信标广播任何自定义URL,只需使用任何在线工具将URL字符转换为十六进制并将其放在上述命令中即可。可以传输的最大字符数为16,如果URL太长,则使用任何URL缩短服务(例如bitly.com)将其缩短,然后将数据放在上表中。
将每个字符转换为等效的十六进制非常麻烦且耗时。因此,为了使您的工作变得容易,这里有一个Eddystone URL命令计算器,您只需要输入要广播的URL,就可以像这样准备好命令。
蓝牙信标现在正在广播URL,并且可以正常工作,但是还需要校准另一件事,即Tx功率,它是上述命令中的值之一,用于获取与蓝牙信标的精确距离。
通过校准发射功率来优化发射信号功率
在Eddystone帧中,几乎没有要传输的分量,而Tx功率就是其中之一,它可以告诉信号强度。通过解码信号强度,接收器可以找到与信标广播器的距离。 Tx power的值可以在-12到10的范围内。我们必须通过点击和尝试方法找到该值,以获取准确的距离。为此,请在Eddystone消息命令中调整Tx power的值,并在打开信标扫描仪应用程序的情况下将智能手机置于1 m的距离处。现在开始将命令中的Tx功率值从0设置为负值。请记住将十进制值转换为十六进制格式,为此,请使用在线值转换器工具轻松进行解码,并获取转换后值的最后两位。在我的情况下,六值是f4。在扫描仪应用程序中检查距离,调整值直到显示约1m,然后使用准确距离的Eddystone URL广播器。
Eddystone蓝牙信标的应用
以下是BLE信标的一些用例:
- 支持BLE的零售:可以通过宣传激动人心的优惠和销售来吸引商店附近的顾客。
- 启用BLE信标的活动: 可用于在活动中和易于付款结帐的体育馆中轻松注册。
- 房地产中的BLE信标:您可以获取附近所有可用物业的详细信息,并且可以一键预订。
您可以考虑并根据需求实现许多其他应用程序。
因此,通过使用Eddystone将Raspberry Pi转换为Bluetooth Beacon的方式,它可以用来广播任何消息或URL 。查看下面的演示视频。
/>