自学内容网 自学内容网

【蓝牙协议栈】【BLE】【IAS】蓝牙立即警报服务

蓝牙IAS协议(Immediate Alert Service)介绍

Immediate Alert Service(IAS,立即警报服务) 是蓝牙低功耗(Bluetooth Low Energy, BLE)中的一个标准服务,主要用于发出立即警报。它通常应用在需要触发设备如找回丢失设备或触发紧急报警的场景中。IAS服务的核心功能是为各种蓝牙设备提供立即警示功能,通过改变警示级别提醒用户,通常用于物联网设备、追踪器、可穿戴设备及安全设备中。


IAS协议核心功能

IAS协议的主要功能是允许设备通过蓝牙连接发送即时告警信息。具体来说,IAS协议包括以下功能:

  • 警报的触发与控制:IAS协议允许主机设备(例如手机)通过蓝牙直接控制从设备(例如蓝牙设备或查找追踪器)上的警报状态,依据需求触发不同级别的警报(例如,无警报、轻微警报和高强度警报)。
  • 远程通知功能:可以通过手机或控制设备远程触发设备(如智能钥匙扣、蓝牙报警器)发声、振动或闪烁,帮助用户快速定位设备或启用紧急报警功能。

‌告警级别设置‌:通过HCI(Host Controller Interface)接口,设备端可以设置告警级别,当达到设定的告警级别时,设备会触发相应的告警动作。
‌告警回调‌:当master设备写入新的告警级别时,设备端会收到写操作的回调,并根据告警级别进行相应的告警处理‌。

应用场景

  1. 防丢器/追踪器

    • 当无法找到放在某处的蓝牙防丢设备(如智能钥匙扣、钱包追踪器等)时,通过手机应用可以增大设备音量或者产生报警声音,以便快速定位设备。
  2. 安全报警设备

    • 在紧急情况下,通过远程触发设备的高强度警报(声音、振动)来吸引注意或通知其他人,常用于老年人健康监护设备或个人安全防护设备。
  3. 防盗设备

    • 如果某个蓝牙设备例如包、手提箱等被移开太远时,可以通过手机远程控制设备发出高强度警报,防止遗失或被盗。

IAS协议结构

在 GATT(通用属性配置文件)中,一个 BLE 服务由服务特征组成。
立即警报服务的UUID是 0x1802,它包含以下内容:

1. Immediate Alert Service(IAS):
  • UUID: 0x1802
  • 这是整个服务的唯一标识符,用来标识此服务的角色是用于触发警报的管理功能。
2. Alert Level Characteristic:
  • UUID: 0x2A06
  • 立即警报服务的唯一重要特征(Characteristic),用于设置警报的强度级别。
  • 它包含一个8位的值,用于表示不同的警报级别。

警报级别

Alert Level Characteristic 特征包含以下几种警报级别:

  • 0x00 - No Alert(无警报)

    • 设备不会发出任何警报。例如用户找到设备后关闭声音。
  • 0x01 - Mild Alert(轻微警报)

    • 设备会发出轻度的警报,这通常用于提醒用户设备位置,可能是震动或轻微的声音。
  • 0x02 - High Alert(强烈警报)

    • 设备发出高强度的警报,诸如高音量的声音报警或者很强的振动,以引起用户的最大注意。
警报级别通过单字节(1 Byte)的值进行表示和控制。具体值:
  • 0x00: 无警报。
  • 0x01: 轻微警报。
  • 0x02: 高强度警报。

主机可以通过写入 Alert Level Characteristic 来控制警报的级别。例如,当主机设备检测到某个事件(如距离远离)时,可以向从设备发送一个轻微或高强度警报请求。


IAS工作流程

  1. 连接设备:当基于 IAS 的蓝牙设备(如防丢器)与手机等主设备配对并连接后,主设备可以发现并访问此设备所包含的 IAS 服务。

  2. 设置警报级别:主设备根据环境或状态(例如设备离主设备太远或准备定位设备)将特征值 Alert Level 写入到IAS服务,指定不同的警报级别。

  3. 触发警报:从设备根据接收到的警报级别的值来触发相应的警报,如发出声音、震动、闪烁等。

IAS使用示例

以下是 IAS 服务在 BLE 设备中的使用场景:

  • 智能钥匙链(防丢器):如果你丢失了你的智能钥匙链,拿起手机打开 App,通过 IAS 发送高强度警报请求,智能钥匙链会发出响声,帮助你找到丢失的物品。同样,在找到物品后,可以通过发送无警报命令来取消报警。

  • 安全监控设备:安全设备遇到异常情况时,系统会自动通过 IAS 控制设备进入高警报状态,同时通过 BLE 立即通知用户。


示例代码

假设你要使用 Python 与 BLE 设备交互(通过蓝牙库 bluepy),你可以利用以下操作来控制 IAS 的报警级别。

from bluepy.btle import Peripheral

# 设备地址,通过事先配对确定
device_address = "XX:XX:XX:XX:XX:XX"

# IAS服务UUID和报警级别特征UUID
IAS_UUID = "1802"
ALERT_LEVEL_CHAR_UUID = "2A06"

# 连接到设备
device = Peripheral(device_address)

# 获取IAS服务
ias_service = device.getServiceByUUID(IAS_UUID)

# 获取警报级别特征
alert_level_char = ias_service.getCharacteristics(ALERT_LEVEL_CHAR_UUID)[0]

# 设置警报级别为高警报 (0x02)
alert_level_char.write(bytes([0x02]))

print("高警报已触发")

# 关闭警报 (0x00)
alert_level_char.write(bytes([0x00]))

print("警报已关闭")

# 断开连接
device.disconnect()

IAS(立即警报服务)与其他蓝牙警报服务

蓝牙标准中定义了多个与警报和通知相关的服务,IAS只是其中之一,适用于特定的应用场景。其他一些相关服务包括:

  • Link Loss Service (LLS),用于处理链路丢失时的报警(设备超出蓝牙通信范围时触发警报)。
  • Tx Power Service (TPS),传输功率服务,用于报告和调整设备通信的发射功率,以协调整体功耗和通信距离。

IAS在实际中的应用

  1. 智能防丢设备: 像 Tile、Chipolo、AirTag 等设备利用 IAS 协议通过智能手机触发警报,帮助用户寻找丢失物品。

  2. 医疗设备:某些医疗设备可能含有 IAS 协议,一旦患者需要紧急帮助,设备就可以触发高强度警报,从而提醒周围的人或医生注意。

  3. 儿童/宠物追踪器:通过 IAS服务,当孩子或宠物离开设定的区域时,跟踪设备可以触发警报,帮助监护人找到他们。


结论

蓝牙 IAS(立即警报服务)是一个简单而强大的工具,特别适合那些需要通过蓝牙触发远程警报的场景。其广泛用于智能追踪设备、安全报警设备和防丢产品,确保用户能迅速找到设备或在紧急情况下得到及时提醒。通过三种警报级别,开发人员可以根据不同的应用需求来灵活设计产品功能,提高用户体验。


原文地址:https://blog.csdn.net/jly_20220520/article/details/143709695

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!