将HM10 BLE模块设置为iBeacon的教程

通信网络

647人已加入

描述

Beacon 和 iBeacon 技术术语经常互换使用。iBeacon 由 Apple 推出,是 Apple 实施的蓝牙低功耗 (BLE) 无线技术,用于为 Apple 的 iPhone 和其他 iOS 设备提供基于位置的信息和服务的不同方式。该技术标准允许移动应用程序(在 iOS 和 Android 设备上运行)从物理世界中的信标收集信息并在手机上显示信息。

什么是低功耗蓝牙 (BLE)?

BLE与蓝牙协议类似,只是功耗不同。BLE是一种无线个域网技术,用于短距离传输数据,其设计旨在降低能耗。BLE 设计为即使使用 CR2032 纽扣电池也可以长时间运行。BLE 保持与之前的经典蓝牙相似的通信范围。

iBeacon 技术如何使用 BLE?

借助 iBeacon 技术,Apple 已经标准化了 BLE 广告的格式。标准格式由UUID、Major、Minor、Tx Power四个主要部分组成。为了更清楚地理解每个条款,以 Apple Electronics 为例,其中必须在不同国家/地区设置商店数量。每个的描述如下:

UUID: UUID 是一个 16 字节的字符串,用于识别一大组 Beacon 中的 Beacon 数量。这标识了特定应用程序的信标。例如,如果 Apple 正在维护一个离线电子商店链,那么所有 Beacon 将共享相同的 UUID,告诉 Beacon 属于 Apple。

Major:这是一个 2 字节的字符串,用于从一大组 Beacon 中识别出较小的 Beacon 组。因此,如果 Beacon 属于 Apple,并且 Apple 在一个城市为 10 家商店设置了 10 个 Beacon,那么 Apple 就会知道哪个 Beacon 属于同一城市的哪个商店。

Minor:这是一个 2 字节的字符串,用于从一组 Beacon 中识别单个 Beacon。假设 Apple 在商店中设置了 50 个 Beacon,因此通过使用 Minor,Apple 将能够找到客户在商店中的位置。

Tx 功率:Tx 功率用于确定与信标的接近度或距离。必须在校准之前选择接近度,并且应该提前进行硬编码。选择的接近度给出了设备将作为基线的估计距离。

例如:已经设置和广播的信标将如下所示:

UUID: 36BFDA543784CAD5

专业: 45

未成年人: 7

在本教程中,我们将使用在 iBeacon 模式下设置的 BLE 模块来设置所有这些参数。

iBeacon 有多重要?

随着目标营销的日益普及,iBeacon 可以发挥重要作用。通过形成 iBeacon 网络,任何品牌、零售商或商店都将能够定位活动和其他重要的客户行为数据,这些数据可以进一步用于在客户的智能手机上发送高度有意义、上下文相关和超本地化的广告。以上面的苹果为例,假设一个拿着智能手机的顾客在苹果电子商店附近经过。

当安装在客户智能手机上的应用程序听到商店安装了 iBeacon 时,该应用程序能够通过 iBeacon 发送包含所有优惠、广告和商店详细信息的数据。如果顾客觉得优惠有吸引力并想购买,他就可以进入商店并从商店购买。除此之外,iBeacon 还可以有一些其他应用程序,例如支付、购物者/客户分析以及在机场、主题公园、音乐会场地和许多其他领域的应用程序。iBeacon 技术的潜力是无限的,还有待发掘。

在本教程中,我们将使用基于蓝牙 4.0 的 HM10 BLE 模块演示 iBeacon 。但在开始之前,如果您使用克隆的 HM10 模块,请务必查看如何更改或刷新克隆 HM-10 模块的固件,因为市场上的大多数 HM10 模块都是克隆的。

本HM10 BLE iBeacon 教程将演示如何将 HM10 模块设置为 iBeacon 并在 Android 应用程序上发现其详细信息,例如 RSSI(接近度、距离)。

iBeacon

所需组件

硬件:

HM10 BLE模块

USB转TTL转换器

跳线

软件:

Arduino IDE

Android 应用程序(BLE 扫描仪)

本教程中使用的 BLE HM10 使用的是 jnhuamao 官方网站上提供的 HM10 固件 v540 。

iBeacon

在 iBeacon 模式下设置 HM10 BLE 模块

最初将 BLE HM10 模块设置为 iBeacon 模式。要将 HM10 设置为 iBeacon 模式,只需按照以下步骤操作。

通过以下连接方式连接 HM10 模块和 USB/TTL 转换器。

iBeacon

iBeacon

打开 Arduino IDE 并选择 USB/TTL 转换器的 COM 端口

现在打开 Arduino IDE 的串行监视器并选择“9600”的波特率,并在串行监视器上选择“No Line Ending”。

在得到 HM10 的 OK 响应后,依次键入以下AT 命令。

AT+更新

AT+复位

AT+MARJ0x1000

AT+MINO0x0007

AT+ADVI5

AT+NAMEiBeacon

AT+ADTY3

AT+IBEA1

AT+DELO2

AT+PWRM0

AT+复位

注意: AT 命令中红色标记的值是用户可配置的。它可以由用户根据他们的示例进行更改。

上面使用的所有 AT 命令的说明如下:

AT+RENEW(恢复出厂设置)

AT+RESET(重启 HM10)

AT(AT测试)

AT+MARJ0x1000(将 iBeacon 主要编号设置为 0x1000 HEX 转换为 DEC 中的 4096)

AT+MINO0x0007(设置 iBeacon Minor Number 为 0x1000 HEX 转换为 DEC 中的 4096)

AT+ADVI5(设置广告间隔为 5 即 546.25 毫秒)

AT+NAMEiBeacon(设置HM-10模块名称为iBeacon,根据使用情况更改)

AT+ADTY3 (设置HM10不可连接以节省电量并且没有客户端可以连接模块有助于节省更多电量)

AT+IBEA1(在 HM10 上启用 iBeacon 模式)

AT+DELO2 (将 iBeacon 设置为广播模式只是为了省电。HM10 可以广播它的存在并扫描其他设备,因为它是蓝牙收发器)

AT+PWRM0(启用 HM10 自动休眠并将功耗从 8 mA 降低到 0.18 mA。但 iBeacon 将始终传输)

执行所有 AT 命令后,串行监视器如下所示:

iBeacon

AT 命令回复是连续打印的,没有任何新行。您可以轻松区分两个 AT 命令的回复,因为在每个 AT 命令之后,HM10 都会回复 OK。因此,如果命令是AT +RENEW,那么 HM10 将回复OK +RENEW,其他 AT 命令也类似。

现在 HM10 设置为 iBeacon 模式。它现在可以广播 UUID、Major、Minor 和其他详细信息。要查看广播的详细信息,有许多 iBeacon Android App 可用,从 Play Store 或 Apple Store 下载任何 iBeacon Android App,您将能够找到设置为 iBeacon 模式的 HM10 模块。在本教程中,我们使用的是“ BLE Scanner ”Android 应用程序。

要禁用 iBeacon 模式,只需使用命令AT+IBEA0 即可。然后通过发送AT+ADTY0使广告扫描响应可连接。然后通过发送AT+RESET来重置 HM10 。

使用适用于 iBeacon 的 BLE Scanner Android 应用程序

从 Play 商店下载 BLE Scanner 应用程序并打开它。

iBeacon

屏幕如下所示。

iBeacon

“附近”选项卡将用于查看所有可用的 iBeacon。要开始搜索 iBeacon,请下拉屏幕或转到屏幕右上角的搜索图标。这将开始搜索 iBeacons。

搜索 iBeacon 后,可以看到 iBeacon 的 RSSI、UUID、Major 和 Minor。如果您将移动设备或 iBeacon 彼此远离,RSSI 将发生变化。在此屏幕中,RSSI 为 (-50)。这可以在本文末尾给出的演示视频中看到。

iBeacon

从 iBeacon HM10 取出智能手机后,RSSI 值从 -50 变为 -81。如果您移动其中一台设备,这些值将不断变化。

iBeacon

RSSI 信号可接受值如下:

iBeacon

要在邻近视图中找到 iBeacon,只需转到搜索图标旁边右上角的邻近图标。屏幕将显示所有可用的带有 RSSI 信号的 iBeacon。

iBeacon

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分