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

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(接近度、距离)。
所需组件
硬件:
hm10 ble模块
usb转ttl转换器
跳线
软件:
arduino ide
android 应用程序(ble 扫描仪)
本教程中使用的 ble hm10 使用的是 jnhuamao 官方网站上提供的 hm10 固件 v540 。
在 ibeacon 模式下设置 hm10 ble 模块
最初将 ble hm10 模块设置为 ibeacon 模式。要将 hm10 设置为 ibeacon 模式,只需按照以下步骤操作。
通过以下连接方式连接 hm10 模块和 usb/ttl 转换器。
打开 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 命令后,串行监视器如下所示:
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,请下拉屏幕或转到屏幕右上角的搜索图标。这将开始搜索 ibeacons。
搜索 ibeacon 后,可以看到 ibeacon 的 rssi、uuid、major 和 minor。如果您将移动设备或 ibeacon 彼此远离,rssi 将发生变化。在此屏幕中,rssi 为 (-50)。这可以在本文末尾给出的演示视频中看到。
从 ibeacon hm10 取出智能手机后,rssi 值从 -50 变为 -81。如果您移动其中一台设备,这些值将不断变化。
rssi 信号可接受值如下:
要在邻近视图中找到 ibeacon,只需转到搜索图标旁边右上角的邻近图标。屏幕将显示所有可用的带有 rssi 信号的 ibeacon。

雷克萨斯RX 200t上手体验评测
人工智能在保险行业中的应用介绍
北京高压科学中心: 硅材料在纳米尺度的塑性机制
CMake实战教程-2
如何更好的建设智能电网
将HM10 BLE模块设置为iBeacon的教程
基于FPGA平台构建汽车辅助驾驶系统算法
LORA无线测温系统在防爆电机中的应用
以太网PHY在如何改变现代市场
魅族:首批搭载骁龙888平台的魅族新机将于2021年推出
5G的到来对于我们的文化生活来说意味着什么
单片机开发中UART、I2C、RS485接口总线解析
艾比森与南大光电公布2020年第一季度业绩预告 预计净利润均同向上升
ADI研讨会:高性能FPGA的供电设计
比亚迪的两个“老对手”联手:吉利汽车牵手宁德时代成立合资公司
容积真空泵标准释疑,体积流率Yes抽气速率No
电压参考电路设计关键问题
达摩院:2020的科技趋势
特斯拉计划免费开放汽车安全系统
[组图]自制MP3FM发射机