本文档介绍如何基于TG7100C芯片开发Combo Mesh节点设备(BLE Mesh & WiFi Combo)。
简介
Combo Mesh节点设备基于支持BLE & WiFi的双模芯片,在特定的双模芯片(TG7100C芯片)上实现了双模射频的共存,使得在应用开发时无需感知底层的双模协议,通过配网的步骤能够完成BLE Mesh与WiFi的链路配网绑定,并能够在控制和数据传输时选择合适的链路,使某些特殊情况下设备仍可被控制。
Combo Mesh节点设备的数据通信模型遵循BLE Mesh格式规范,关于BLE Mesh数据格式规范详情请参考蓝牙Mesh设备开发指南,底层通过WiFi链路的数据传输也是使用的BLE Mesh数据格式,不再支持Alink json的物模型格式。
场景说明
WiFi未联网,或WiFi联网后断开,此时通过BLE Mesh可控制设备,控制端可以是天猫精灵音箱或天猫精灵App。
WiFi已联网,可远程控制设备,也可本地通过BLE Mesh控制设备。
相关限制说明
当前Combo Mesh节点设备只支持天猫精灵生态项目的接入,暂不支持自有品牌项目的接入。
当前Combo Mesh节点设备产品的人机交互>设备面板暂只支持宜控面板。
当前Combo Mesh节点设备的数据传输格式只支持BLE Mesh数据格式。
当前Combo Mesh节点设备仅支持走WiFi链路OTA,不支持手机端走蓝牙链路OTA。
TG7100C芯片资料下载
TG7100C芯片相关文档和软件可以访问资源中心获取。
创建产品
在生活物联网平台控制台创建产品,详细的账号登录、项目创建、产品创建和配置流程请参考平台操作指南的说明。目前Combo Mesh节点设备只支持天猫精灵生态项目的产品。
产品创建流程
创建项目
在新建项目时选择天猫精灵生态项目。
创建产品
详细说明请参考创建产品并定义产品功能。Combo Mesh节点设备必须勾选BLE Mesh & WiFi Combo选项,接入网关协议选择BLE Mesh。
配置人机交互
完成必填配置项,详细说明请参考配置App。
在配网引导页面选择蓝牙Mesh配网。
在设备面板页面选择宜控面板。
生成测试五元组
目前的平台方案设计要求Combo Mesh节点设备的MAC地址与五元组中的Device Name保持一致。如基于开发板开发,可以在固件运行后通过串口输入MAC指令,查询到芯片当前的MAC地址,并用此MAC地址作为Device Name在设备调试页面申请测试五元组。
输入MAC指令读取芯片WiFi MAC,查询WiFi MAC地址示例:
以下图格式输入读取的MAC地址:
开发环境与代码编译
1、准备开发环境
请参考编译SDK的详细介绍。
2、下载SDK
请参考获取SDK的步骤获取。
3、编译SDK
请根据以下步骤来编译SDK,如下以Products/example/smart_outlet
为例。
编译宏开关确认,
smart_outlet.mk
文件中,将CONFIG_BLEMESH_COMBODEV_ENABLE
的值设置为1
,表示编译Combo Mesh节点设备。#combo mesh节点功能 CONFIG_BLEMESH_COMBODEV_ENABLE ?= 1
设置固件的版本号,
smart_outlet.mk
文件中,设置CONFIG_VERSION_STR
为对应的固件版本号,用于固件版本管理以及OTA固件升级,在平台进行OTA固件升级时会比对该版本值,因此Combo Mesh节点设备的固件版本号需要在此设置并递增。./build.sh example smart_outlet tg7100cevb MAINLAND ONLINE 1
编译指令。
./build.sh example smart_outlet tg7100cevb MAINLAND ONLINE 1
SDK根目录build.sh
文件说明:
根据硬件使用的模组型号和要编译的应用,修改文件中的如下参数。
default_type="example" //配置产品类型
default_app="smart_outlet" //配置编译的应用名称
default_board="tg7100cevb" //配置编译的模组型号
default_region=MAINLAND //配置设备的连云区域,配置为MAINLAND或SINGAPORE都可以,设备可以全球范围内激活
default_env=ONLINE //配置连云环境,默认设置为线上环境(ONLINE)
Debug log:default_debug=0
default_args="" //配置其他编译参数
//更多介绍请参见README.md
编译完成后,在out/smart_outlet@tg7100cevb/
目录下会生成smart_outlet@tg7100cevb.bin
文件。该文件为需要烧录到真实设备中的固件。tg7100cevb_ota.bin
文件为OTA使用的固件。
build.sh脚本会自动判断模组的toolchain(交叉编译工具链)是否已经安装,如果没有安装,脚本会自动安装。
编译出错常见问题:
不要使用Windows下Ubuntu子系统,建议使用虚拟机软件安装Ubuntu。
不要在Windows下载解压代码再拷贝到Ubuntu系统中,建议直接在Ubuntu系统内下载和解压代码。
不要把代码存放在Windows共享目录下,然后通过mount挂载到Ubuntu系统里。建议直接在Ubuntu系统内下载和解压代码。
不要通过sudo执行编译指令。
固件烧录与运行
固件工具与开发板
请在资源下载页面获取TG7100C_FlashEnv烧录调试工具。
固件烧录步骤
如下以TG7100C官方开发板为例说明,如果是另外的开发板,请联系相应的开发板厂商获取对应资料。
首先切换开发板短路帽为烧录模式,如下图所示,短路帽前面会有3根空出的引脚:
打开下载好的烧录工具目录中的
TGFlashEnv.exe
,点击Finish:然后会进入烧录界面,Interface选择Uart,并点击Refresh按键,然后如下图所示设置好串口参数,以及选择好对应的烧录文件。确认好配置后,点击
Download
按钮,并同时按下开发板上的复位按键,即可开始烧录固件。
设备重启与固件运行
需要切换开发板的短路帽为设备使用模式,如下图所示,短路帽前面会有2根空出的引脚:此时串口工具设置波特率为2000000,然后按下开发板的复位按键,就看到设备复位开始运行的日志了。
主要cli指令
reset:设备重置,清除设备配网信息。
free:查看内存使用情况。
linkkey:写入与查看五元组。
调试设备功能
设置五元组
在按照前面的步骤,将设备固件烧录到开发板之后,可以通过linkkey命令设置五元组,然后通过reset命令重置设备。命令说明如下。
设置五元组信息,该五元组信息在飞燕控制台创建的产品与设备信息中找到,在设备上电初始后就需要设置此设备信息:
linkkey、ProductKey、DeviceName、DeviceSecret、ProductSecret、ProductID
设备重置,清除设备配网信息:
reset
天猫精灵App配网
在开发板上设置天猫精灵产品的五元组,并重置设备。设备正常启动后会处于待配网状态(一般会维持在待配网状态10分钟),设备会通过BLE广播自己的设备信息。
天猫精灵App可在其设备发现页面发现到处于待配网状态的Combo Mesh节点设备,通过App界面可发起对Combo Mesh节点设备的配网。
在对Combo Mesh节点设备的配网界面,需要输入附近路由器的WiFi SSID和密码,接下来不仅会将Combo Mesh节点设备配入BLE Mesh网络,同时还会使Combo Mesh节点设备的WiFi连上路由器。
注意支持TG7100C蓝牙辅助配网的天猫精灵App版本为V6.3.0及以上版本,请下载更新版本。
配网连云设备端关键日志
配网状态 | 命令/动作 | 预期日志 |
设备重置 | 输入cli指令:reset | --------Firmware info-------- |
收到BLE Mesh配网消息 | 手机或音箱对设备发起蓝牙Mesh配网 | Prov start |
解析WiFi ssid和密码信息 | 收到WiFi配网信息 | _parser_wifi_config |
连云 | 连云成功 | Cloud Connected |
设备OTA说明
下面介绍Combo Mesh节点设备产品OTA的过程,在OTA前必须要确认Combo Mesh节点设备的WiFi连接正常,否则会无法完成OTA过程。
登录生活物联网平台运营中心。
进入设备运维>固件升级页面为对应项目下的对应产品添加新版本固件。
CONFIG_VERSION_STR = 2.0.0
。获取待升级固件文件和版本号。TG7100C固件编译成功后在
readme.txt
文件中保存固件的版本信息,tg7100cevb_ota.bin
文件即为OTA的bin文件。添加固件,注意签名算法需要选择SHA256。
验证固件。
进入天猫精灵App,查看待验证设备的设备详情页面,可以看到已有设备升级的提示,点击立即更新即可开始OTA。
量产五元组说明
上述介绍了测试五元组的获取,本节介绍量产阶段如何获取五元组。
生活物联网平台设备量产详细说明请参考量产流程介绍与量产设备。
天猫精灵项目三元组
对于天猫精灵项目的产品,天猫精灵有MAC地址段,在人机交互-配网引导里面选择蓝牙Mesh配网后,生成三元组(又称设备证书,其中包含ProductKey、DeviceName、DeviceSecret)时可以分配合法MAC地址作为Device Name。
烧录时通过量产烧录工具写入Device Name同时覆盖芯片WiFi MAC即可实现WiFi MAC与Device Name保持一致的要求。
天猫精灵生态项目的产品在量产设备时,选择自动生成即可。
三元组扩展五元组
按以上操作步骤下载的csv格式文件都是三元组清单,需要通过文本处理才能生成符合TG7100C批量烧录工具需要的五元组清单的格式。
注意csv格式文件的处理要保持文本格式,通过文本编辑器可编辑。建议编写一个程序来处理。不要通过Excel编辑,这会将其转为Excel的格式。
下载后的三元组csv清单示例如下:处理后的五元组csv清单示例如下,按文本格式增加ProductSecret
,ProductID
的内容。其中第1行的ProductSecret
,ProductID
拼写(含大小写)也严格保持一致。
五元组烧录
在资源下载页面下载TG7100C批量烧写工具与文档《TG7100C五元组量产工具使用说明》,完成包含五元组的.csv文件导入到数据库后进行烧录。