低功耗BLE+iBeacon:打造室内定位与近场通信应用!

电子说

1.4w人已加入

描述

基于BLE的iBeacon技术,以低功耗、易部署的优势,成为室内定位与近场通信的首选方案之一。本文将介绍iBeacon的基础架构与工作流程,重点围绕室内定位与近场信息推送两大典型应用,通过一个可运行的Demo,从设备配置、代码开发到功能测试,全流程讲解应用落地的关键步骤,让读者快速掌握相关技术。

本期一起来学习iBeacon基础知识和示例demo:
 

使用Air8000核心板作为iBeacon设备,定期广播iBeacon信号,其他支持iBeacon的设备(比如手机)可以接收这些信号并进行相应的处理。

一、iBeacon基础知识

iBeacon技术是Apple公司在2013年9月发布的一种基于BLE蓝牙的通信协议,主要用于短距离传送少量数据,它规定了蓝牙设备如何以一种特定的格式广播数据。

现在,它已成为整个行业的标准,安卓设备也同样可以接收和处理iBeacon信号。

1.1 工作原理

iBeacon通过周期性广播包含唯一标识符(UUID、Major、Minor)的数据包,使智能设备在接收信号后,结合信号强度(RSSI)估算距离,实现室内定位、场景触发等功能。

1.2 广播数据格式

iBeacon规定了一个30个字节的广播包。其中需要重点解析的是后21个字节(即从UUID开始),此前字节重在标识是否为ibeacon协议。

iBeacon广播数据包的完整格式:

BLE

其中标志位、长度、类型不需要处理,我们只需要关注以下字段。

厂商标识符(2字节):是蓝牙技术中用于唯一标识设备制造商或品牌方的2字节(16 位)编码,范围是0x0000~0xFFFF(即:0~65535),它的核心作用是区分不同厂商的蓝牙设备,确保数据解析和兼容性。

iBeacon类型标识符(2字节):固定为0x02,0x15,表示子类型为ibeacon。

Proximity UUID(16字节):通用唯一标识符。这是一个128位(16字节)的唯一标识符,用于区分你所在的iBeacon网络。

例如:一个商店的所有iBeacon可以使用同一个UUID,这样你的应用就可以知道用户进入了该商店区域。

通常,一个组织或一个应用使用同一个UUID,然后通过Major和Minor来进一步细分区域和设备。

Major(2字节):主标识,用于区分同一组织(UUID相同)下的不同区域或组别。Major是一个16位的无符号整数,用于将一组相关的设备进行分组。

例如:一个连锁商店的每个分店可以使用相同的Major值,这样应用就知道用户进入了哪个分店。

Minor(2字节):次标识,用于在同一个Major组内进行更细粒度的区分。Minor也是一个16位的无符号整数,用于标识特定的iBeacon。

例如:在一个分店内,每个货架或区域可以有一个唯一的Minor值。这样,应用就可以知道用户接近哪个具体的货架。

Signal Power(1字节):校准信号强度的参考值,单位dBm。(该位为8位有符号数据)

这个字段是8位有符号整数,表示在距离iBeacon设备1米处测量到的信号强度(RSSI)。这个值用于校准,帮助估算与设备之间的实际距离。设备接收到信标的信号强度(RSSI)后,与这个校准值进行比较,通过信号衰减模型来估算距离。

注:如何获取厂商标识符?

1)向蓝牙技术联盟(SIG)直接申请;

2)使用已授权厂商的ID,申请得到其授权。

二、iBeacon示例demo

最新源码下载及实操教程详见:https://docs.openluat.com/air8000/luatos/app/BLE/ibeacon/

2.1 main.lua

主程序文件main.lua是整个项目的入口点,它负责初始化系统环境。

BLE

2.2  ble_ibeacon.lua

iBeacon功能的具体实现,负责蓝牙初始化、广播配置和异常处理。

BLE

2.3 check_wifi.lua

Air8000的蓝牙功能依赖Wi-Fi协处理器,需确保Wi-Fi固件为最新版本。本脚本文件检查当前Air8000模组的Wi-Fi固件是否为最新版本;若不是,则自动启动升级(需插入可联网的SIM卡)。

BLE

三、示例运行结果

根据实操教程搭建好硬件环境,LuaTools烧录内核固件和demo脚本代码,烧录成功后开机运行。

接下来,通过蓝牙APP扫描并查看iBeacon信息。

打开nrf connect蓝牙调试软件,找到作为iBeacon设备的Air8000,点击空白处展开,不需要CONNECT:

BLE

展开后可以查看iBeacon的各种信息,包含厂商特定数据格式,iBeacon类型标识符,以及设置的UUID、Major、Minor等关键参数。

BLE

今天的内容就分享到这里了~

审核编辑 黄宇

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

全部0条评论

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

×
20
完善资料,
赚取积分