蓝牙 Mesh 通用方案

更新时间:2022-03-29 03:53:21下载pdf

在蓝牙 Mesh 开发方面,涂鸦提供完整的模组、App 及云端服务。涂鸦提供的蓝牙 Mesh 通用对接固件已完成蓝牙 Mesh 协议,MCU在对接协议后即可实现联网。您只需实现 MCU 串口协议交互,并将设备绑定到 App 上,蓝牙 Mesh 设备将自动组成 Mesh 网络,无需在 MCU 端进行额外操作。

背景信息

2017 年 7 月 19 日蓝牙技术联盟(Bluetooth Special Interest Group,简称 SIG)宣布,蓝牙技术开始全面支持 Mesh 网状网络。全新的 Mesh 技术可以支持设备多对多传输,提高了构建大范围网络覆盖的通信效能。Mesh 技术更适用于楼宇自动化、无线传感器网络等场景,让数以万计设备在安全、可靠、稳定的环境下进行信息交互。

蓝牙 Mesh 性能特点

  • 优势

    • 蓝牙联盟(SIG)国际标准协议,实现真正互联互通
    • 微安级别的低功耗技术
    • 同时支持手机蓝牙直连控制和网关远程控制
    • 经过蓝牙联盟认证
    • 简单易操作,灵活组网,高鲁棒性,系统更加稳健
    • 拥有跳频技术,不易受 2.4GHz 频率通信干扰
  • 局限性

    • 并发消息处理能力差,可能造成网络堵塞
    • 没有网关时,不能远程控制
    • 穿墙性能弱
  • 应用场景

    • 本地场景联动,可应用于高端照明领域
    • 大规模群组控制,适用于商业照明方案
    • 超高性价比的照明解决方案

涂鸦开发方案

涂鸦蓝牙 Mesh 开发方案提供实现简单的接入和方便的 SDK 移植,其通信原理图如下所示。

  • 无网关蓝牙 Mesh 通信示意图

    蓝牙 Mesh 通用方案
  • 配合蓝牙 mesh 网关后的通信示意图

    蓝牙 Mesh 通用方案

开发流程

第一步:创建产品

操作步骤
本节简单介绍采用蓝牙 Mesh 通信方案的产品创建流程,更多详情请参考 MCU 开发接入

  1. 登录 IoT 平台,创建产品。根据实际需求选择产品品类,联网方式选择 蓝牙Mesh(SIG)
    蓝牙 Mesh 通用方案

  2. 产品创建完成后,您可以根据产品实际需求选择功能、面板,并在 硬件开发 页签下载对应生成的 MCU 开发资料。
    蓝牙 Mesh 通用方案

  3. 选择模组并生成固件。
    蓝牙 Mesh 通用方案

    1. 在平台创建产品选择模组时,平台会有一些常用模组型号的推荐。选定模组和固件后,可在线购买模组样品。

    2. 硬件工程师可以进入画板阶段,硬件开发相关资料如下所示:

      注意:当使用电池作为供电电源,且供电电压低于正常工作电压时,芯片内部 Flash 操作将有出错的风险,造成固件或者用户数据被异常修改。当 MCU 检测到电池电压过低时,有两种规避方法:

      • 切断模组工作电源。
      • 关闭广播和系统计时,让芯片处于深度睡眠模式来停止工作。比如模组最低工作电压为 1.8V,建议将 MCU 设为电压低于 2.0V (略高于最低工作电压)时关闭模组。

第二步:功能联调

背景信息

涂鸦蓝牙 Mesh 串口通用协议其架构框如下图所示。

蓝牙 Mesh 通用方案

注意事项

拿到模组后,首先确定模组是否工作正常后再进行编码。涂鸦模组调试助手(MCU 模拟模式下)会模拟 MCU 自动回复正确的协议数据至模组,用手机给模组配网后可测试 DP 数据的上报下发。验证模组的同时可以熟悉协议交互流程,将极大提升后期开发调试效率。

下图介绍了涂鸦模组调试助手与 MCU 模拟模式连线方式。

蓝牙 Mesh 通用方案

操作步骤

本节简单介绍助手和模组配网实操的主要步骤,更多详情,请参考 使用涂鸦模组调试助手

  1. 根据最小系统原理图,搭建模组外围电路,简单测试可直接飞线。

  2. 打开开发包中涂鸦模组调试助手,导入调试文件后选择蓝牙 Mesh 通用协议和 MCU 模拟模式。

  3. 将模组串口通过 USB 转 TTL 工具接到电脑端,在助手中选择对应的串口及波特率,打开串口后单击启动。模组和上位机会自动进行初始化流程协议交互。

    注意:蓝牙 Mesh 模组上电会不断发送心跳包,收到正确回复后,进行后续初始化协议的交互。若上电无数据发出,请检查模组外围电路是否正确。

  4. 配网功能 区域单击 重置 使模组进入配网模式。模组会断开蓝牙连接,解除蓝牙绑定关系,清除缓存信息,并重启。

    蓝牙 Mesh 通用方案

第三步:软件开发

协议介绍
在硬件调试环节可以看到模组与 MCU 有一系列的串口协议交互数据,对于数据的解析部分,可参考开发资料中的协议文档。协议主要分为两部分:基础协议和功能协议。

  • 基础协议:包括模组初始化指令及部分扩展功能指令和产品无关,是模组共有协议。

  • 功能协议:主要基于基础协议上报下发命令字,对 DP 数据内容格式做了详细说明。基础协议完整内容,请参考 蓝牙 Mesh 通用串口协议

对接方式
开发者可以通过移植 MCU SDK 或自行对接协议来对接涂鸦模组协议。其中,开发资料中的 MCU SDK 是涂鸦提供的基于C语言的协议应用代码,可直接添加到 MCU 工程中。

  • 移植 MCU SDK
    • 若 MCU 资源足够,建议直接移植 MCU SDK,提高开发效率。
    • 若 MCU 资源不足,可自行对接协议,SDK 包中的函数依然可以作为参考。
    • MCU SDK 对 MCU 硬件资源要求:
      • Flash 4K 字节
      • RAM 与 DP 点数据长度有关,需要一百字节左右(如需 OTA 功能需大于 260 字节)
      • 函数嵌套级数 9 级。
  • 自行对接协议
    对于 MCU 资源有限或不适宜移植 MCU SDK 时,客户可以选择自行对接串口协议。

第四步:协议验证

移植 MCU SDK 代码开发完成后,需要使用涂鸦模组调试助手的 模组模拟模式 来验证 MCU 代码的正确性。
模组模拟模式下,助手会自动发送初始化数据流,验证 MCU 回复是否正确,并对错误数据给予相应提示。初始化交互通过后,可以手动点击测试其他拓展功能。

注意:涂鸦模组调试助手的模组模拟模式仅用来验证 MCU 串口协议收发正确性,不含联网功能。测试完成后,MCU 可接实际模组进行配网联调。以下为模组模拟模式连线示意图。

蓝牙 Mesh 通用方案

蓝牙 Mesh 通用方案

第五步:功能联调

在使用助手验证完毕代码后,MCU 可连接模组使用 App 配网,进入功能联调阶段。功能联调主要测试各 DP 上报下发是否正确,在调试过程有一些常用工具链接如下:

  • 后台日志查询:IoT 平台-运营中心,根据设备 ID 可查询相关设备后台日志数据。
  • 涂鸦在线支持:涂鸦提供在线化的支持服务,如问题文档资料无法解答,可直接在线提问,专业技术团队将为您答疑。
  • FAQ: 开发常见问题,可提前了解,有效避免踩坑。