【问题标题】:Basic BLE profile/service基本 BLE 配置文件/服务
【发布时间】:2017-06-14 18:32:55
【问题描述】:

我有一个关于低功耗蓝牙配置文件/服务的基本问题。 我正在开发一个简单的应用程序,其中我有一个 BLE 微控制器(ATSAMB11),它必须将一些简单的(温度、电池电量)数据传送到一个 android 应用程序。我对我应该为我的应用程序选择哪些 BLE 配置文件/服务感到陌生和困惑。事实上,由于我是新手,我正在研究设备 (ATSAMB11) 以及 android 应用程序的示例代码。 所有这些示例都使用某种不同且依赖于应用程序的配置文件/服务。他们在这里列出https://www.bluetooth.com/specifications/gatt/services 我不确定我应该为我的应用程序选择哪一个,因为这将定义我应该研究和适应我的应用程序的示例。 到目前为止,我尝试了一些聊天示例代码,但没有成功。我能够发现和配对,但无法连接或交流。此外,我在某处读到 BLE 的聊天服务甚至没有使用低能耗。

【问题讨论】:

    标签: android bluetooth bluetooth-lowenergy


    【解决方案1】:

    您应该查阅设备规范,而不是查看 BLE 规范 - 即 Microchip 为 ATSAMB11 提供的相应数据表

    合格的蓝牙智能协议栈存储在专用的 ROM,固件包括 L2CAP 服务层协议、Security 管理器,属性协议 (ATT),通用属性配置文件 (GATT), 和通用访问配置文件 (GAP)。此外,应用 配置文件,例如接近,温度计,心率,血压, 协议栈支持并包含许多其他内容。

    因此,根据数据表,这些应该适合您:-

    健康 温度计 org.bluetooth.service.health_thermometer 0x1809 采用
    心率 org.bluetooth.service.heart_rate 0x180D 采用
    血压 org.bluetooth.service.blood_pressure 0x1810 采用

    关注 Android 开发者网站中的 this 教程以获取示例代码。如果您在连接到ATSAMB11 上的GATT 服务器时遇到问题,请告诉我

    【讨论】:

    • 感谢您的回答。我以 android 开发者网站为例,但我阻止连接这两个设备。事实上,从我的 ATSAMB11 中,我收到了日志消息“失败特征发现”。当我从这里查看任何配置文件/服务的规范时:bluetooth.com/specifications/adopted-specifications 看起来有一个发现特征过程,但我不知道如何在我的 android 应用程序中实现这个发现过程。
    • 哦,这似乎来自 de UUID,我将其更改为 Atmel Smart Connect App 中使用的那个,它能够连接。但后来它断开了。
    • UUID 定义在 GATT 服务对应的标准中。您复制的任何 UUID 都应该是 ATSAMB11 支持的正确配置文件/服务
    【解决方案2】:

    蓝牙 SIG 与 BLE 规范一起定义了一系列标准 GATT 服务和特性。不幸的是,它们的数量和使用都非常有限。

    大多数构建 BLE 产品的人实际上选择构建自己的定制服务和特性。假设您要放入设备的温度不是“健康温度计”,我将创建一个基于 128 位 UUID(用于温度)的自定义服务并使用标准电池服务(用于电池电压)。

    这里是为 Nordic nRF5x 系列构建自定义服务的示例:https://www.novelbits.io/bluetooth-gatt-services-characteristics/

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      相关资源
      最近更新 更多