蓝牙 Mesh 设备开发包

更新时间:2024-04-17 06:14:47下载pdf

蓝牙 Mesh 设备开发包 是基于 TuyaOS 系统裁剪的适用于涂鸦蓝牙 Mesh 协议产品的开发包,开发包将设备配网、上下行数据通信、产测授权、固件 OTA 升级等接口进行封装,并提供标准 API。

您无需关心各芯片平台相关功能的具体实现,只需要基于 TuyaOS 提供的标准 API 进行产品开发,即可接入涂鸦 IoT 开发平台,完成设备智能化。

能力地图

设备管理

能力 说明
初始化 了解初始化流程对于理解蓝牙 Mesh 设备的软件框架会有很大帮助。
初始化是指设备上电进入 main 函数之后,调用一系列接口,完成设备硬件环境的初始化、TuyaOS 软件的初始化、应用功能的初始化等工作。应用初始化的时候,您需要注意初始化的顺序,业务逻辑的初始化一般要放在蓝牙协议栈初始化之后,要尤其注意不同模块初始化的依赖条件。
授权 授权的目标是将普通的蓝牙设备转换为涂鸦的蓝牙设备。
授权的方式是将云端生成的设备标识信息写入到设备的非易失性存储器之中,一般为芯片的 Flash,用于后续设备正常运行时的设备认证和配网激活流程。可以通过代码内直接调用授权信息写入接口以及涂鸦烧录授权上位机下发授权信息,前者主要在调试阶段使用,后者主要在量产阶段使用。
产测 产测可以发现蓝牙设备在生产过程中可能出现的硬件问题,提高良品率。
根据产测阶段的不同,产测分为 PCBA 产测和成品产测:
  • PCBA 产测可以通过串口跟蓝牙设备通信
  • 成品产测只能通过蓝牙无线连接的方式跟设备通信
从而检测设备的射频功能和外设功能是否正常。

Mesh 网络通信

能力 说明
通信方式 根据不同的产品类型与应用场景,设备分为两种类型:
  • Mesh 设备支持 ADV 通信,以及建立蓝牙连接通过 Mesh Proxy GATT 服务通信。此类设备可同时支持手机蓝牙连接控制与网关广播控制。
  • Mesh 设备仅支持 ADV 通信,不支持与手机连接通信,此类设备只能支持与网关通信。
通信策略 当设备已经绑定到网关,同时被手机蓝牙连接时,此时从 App 内控制时优先选择网关 ADV 通信。只有当设备未绑定到网关,或者网关离线时,才会选择手机蓝牙控制。
网关绑定 设备支持绑定到一个网关下:
  • 设备通过网关配网,则默认绑定在配网的网关。
  • 如果通过手机蓝牙配网,则需要在网关的面板内手动将设备绑定进去。
当网络内有多个网关时,用户可以在网关的面板内解绑或者绑定设备,以实现设备自由绑定在指定的网关下。
Proxy 能力 Proxy 能力可以理解为手机的代理,通过与手机 GATT 连接通信,将手机的消息转换为 ADV 转发到 Mesh 网络中,解决了手机无法持续地扫描监听网络的缺点。
手机只需要连接一个 Proxy 节点,即可以与整个 Mesh 网络内的节点进行通信。
Relay 能力 Relay 能力是将其他设备发的广播包进行转发,达到一个 Mesh 广播消息能够在网络内扩散的效果。

蓝牙 Mesh 配网与重置

能力 说明
配网方式 设备支持通过手机蓝牙配网与网关配网。手机通过 GATT 连接后下发网络信息,网关则通过 ADV 与设备进行通信。同时配网支持以下两种方式:
  • 蓝牙 Mesh 标准 provision 方式:为蓝牙官方规格约束的一种安全配网方式。
  • 涂鸦自定义的快速 provision 方式:为使用涂鸦自定义 GATT 服务与 vendor model 自定义数据进行配网。相比 Mesh 标准 provision 支持批量设备的同时快速配网,提高设备的配网效率与成功率。
重置方式 设备重置的目标是把设备恢复到配网之前的状态,方便用户再次进行配网。
根据触发方式不同,分为本地重置和 App 重置。
设备网络恢复 设备本地重置后,如果再调用恢复接口,即可恢复到重置前的网络。
一般应用于设备本地重置场景,当由于人为误操作导致设备重置后,一段时间内未配网或者设备重新上电,即可恢复网络信息。

设备控制

能力 说明
DP 通信模型 涂鸦设备的控制是由 DP(Data Point)数据来承载的。网关与 App 会将 DP 模型数据转换为 Mesh 标准的 Model 与 opcode 数据,具体请参考 SDK 中的文档说明。
Sig Model 通信 目前涂鸦用到 Generic OnOff Model,以及 Light 相关的 Model,以此来应用在照明与电工品类中。
Vendor Model 通信 透传品类全部使用 Vendor Model 来传递 DP 信息。标准品类中无法转换为标准 mesh opcode 的 DP 数据,也将使用 Vendor Model opcode 来传递 DP 数据。具体协议请参考 SDK 中的文档说明。
一键执行 一键执行为 App 上创建一系列的动作,在点击执行时顺序下发所有的控制命令。注意,对于 Mesh 网络不建议一键执行中连续下发多条命令,会导致网络风暴、并发冲突严重、丢包与延迟。
云端联动与网关联动
  • 云端联动为在云端创建规则,当触发规则时,则执行一系列的动作。
  • 网关联动则是将规则与计算引擎下载到网关中,即使网关断网之后,也可以正常执行联动。

特殊 Mesh 通信能力

能力 说明
时间获取 蓝牙 Mesh 设备可以在与手机建立连接或者绑定在网关下时向云端请求,可以获取到当前时间、经纬度等信息。
夏令时获取 蓝牙 Mesh 设备可以在与手机建立连接或者绑定在网关下时向云端请求,可以获取到进出夏令时的时间信息。
遥控器本地控制 遥控器设备可以在脱离 App 与网关的情况下,与设备进行绑定和控制。
本地分布式联动 本地联动不同于其他联动,是将规则配置到设备中。优点在于去中心化无需云端与网关。设备分为条件设备与动作设备,
  1. 条件设备向 Mesh 网络中指定的地址中发送自己的状态数据。
  2. 动作设备订阅此地址后即可收到条件设备的数据,从而根据先前配置得规则来执行配置好的动作。
可靠上报 使用可靠上报通道可以保证关键数据上报到达网关的成功率,针对不同的应用场景可以选择不同上报模式。

设备驱动

能力 说明
GPIO GPIO 驱动,提供调试例程:可以通过上位机控制任意 GPIO 输出高低电平,也可以查询任意 GPIO 的当前电平。
UART UART 驱动,提供调试例程:可以通过上位机设置任意 UART 的波特率,也可以控制任意 UART 发送自定义数据。
PWM PWM 驱动,提供调试例程:可以通过上位机设置任意通道 PWM 的频率和占空比,也可以控制任意通道 PWM 恢复初始状态。
ADC ADC 驱动,提供调试例程:可以通过上位机读取任意 ADC 通道的数值/电压值,也可以修改 ADC 的分辨率。
SPI SPI 驱动,提供调试例程:可以通过上位机控制任意 SPI 模块的 SDI 和 SDO 引脚互相发送自定义数据,也可以修改任意 SPI 模块的通信速率。
IIC IIC 驱动,提供调试例程:可以通过上位机控制任意 IIC 模块点亮 OLED 屏幕,并显示自定义数据。
RTC RTC 驱动,提供调试例程:可以通过上位机设置/查询设备的 RTC 时间,也可以控制 RTC 模块的启动/停止。
Watchdog Watchdog 驱动,提供调试例程:可以通过上位机启动/关闭看门狗,可以开启/关闭自动喂狗功能,也可以通过上位机测试手动喂狗的功能。

设备功耗

能力 说明
常规功耗设备 由于 Mesh 设备的 ADV 通信,要求设备必须保持扫描才能收到网络中的数据包,所以普通的 Mesh 设备的功耗是比较高的。不同的芯片平台有差异,大约范围在 5-8mA。
不同发射功率对整体功耗的影响不大,主要是扫描过程中,RF 射频部分产生的功耗以及 MCU 运行的功耗。所以芯片平台的射频工艺以及 MCU 的主频是影响常规设备功耗的主要因素。
超低功耗设备 设备一般在大部分时间都处于休眠状态,一般由定时器唤醒。或者外部中断触发唤醒后,有数据上报时才会保持较短的唤醒时间,完成数据采集与上报,之后快速进入休眠。休眠过程功耗一般在 10uA 以下。
注意,设备配网过程中,需要保持一段时间的唤醒状态。
蓝牙唤醒低功耗设备 设备在未工作时,保持周期性休眠唤醒,处于相对较低的功耗(1mA 以内)。当有发往此设备的消息时,设备在唤醒窗口内则可以接收到,之后保持较长时间(典型值 30s)的唤醒状态来接收接下来的控制数据。
此类低功耗策略一般用于电池较大,或者可以太阳能充电的产品。
单火类低功耗设备 设备保持周期性的休眠唤醒,但无法保持长时间的唤醒状态,所以设备接收的消息需要发送端做更多的重传处理,来覆盖设备的唤醒窗口。
此类设备一般只应用于单火开关类设备。

升级服务

能力 说明
蓝牙固件 OTA 通过智能生活 App 或者网关,与设备建立 GATT 连接蓝牙设备,传输固件数据进行 OTA。支持断点续传、数据完整性校验、断电断网等异常处理能力。
批量 OTA 通过网关批量选择多个设备同时进行升级。缺点在于时间较长,且升级过程中设备不可控制。此功能一般应用于大规模网络的批量固件更新,例如在夜晚或者设备不使用的时间内,进行批量静默更新。

支持与帮助

在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 子设备开发版块 进行沟通咨询。