ble mesh 学习笔记(6) 如何对接天猫精灵蓝牙mesh

您所在的位置:网站首页 kaadas天猫精灵网关 ble mesh 学习笔记(6) 如何对接天猫精灵蓝牙mesh

ble mesh 学习笔记(6) 如何对接天猫精灵蓝牙mesh

2024-07-11 15:30| 来源: 网络整理| 查看: 265

MESH设备接入天猫精灵的步骤 1、设备在天猫精灵mesh 网络中所具有的怎么样功能 ? 1.1 目前根据mesh协议能实现如下功能节点。

(1) Node: 网络边缘的节点,没有relay功能,一个没有其他特性的mesh节点。

  (2) Low power node: 低功耗节点,由于有friendnode的存在,low power node不需要一直在广播信道发送或者监听数据包,可以更节省功耗。Low power node只需要定期的从它的friend node查询是否有数据到达就可以。

  (3) Relay node: 是网络层扩展网络覆盖范围的核心节点,在接收到其它节点发送的数据包之后,根据网络的设定条件判断是否需要转发。

  (4) Friend node: 作为low powernode的代理节点功能,当有low power node节点的数据下达时,可以在friend node缓存,等待low power node查询并且获取。

(5) proxy node : 支持该特性的节点,使非mesh 网络设备通过BLE的GATT来与mesh网络进行交互。

 

按照产品mesh实际使用的通信方式分:

只上传数据,不需要控制的节点,单向通信节点。

需要进行交互的节点,双向通信节点。

 

单向通信节点: 可以为 Low power node 和 Node

适用于只需要发送信息及时。如果要低功耗可以使用 Low power node

双向通信的节点:Relay node 和 Friend node,proxy node

适用于:支持及时的双向通信,功耗较高直接供电设备

特别是需要与手机交互的 可以采用 proxy node。

 

1.2 低功耗节点(Low power node)的运行周期

降低设备功耗,尽可能选择低功耗节点运行

 

消息传递过程:

 

周期性的进行消息轮训,接受好友节点的消息,如何好友节点发生“好友更新”消息,意味着没有新的消息,此时低功耗节点停止当前消息轮询。具体运行时序如图:

 

在整个运行过程中可以随时进行唤醒,发送用户消息到mesh其他网节点中。周期时间设置范围在(1s -- 96h )

参考低功耗相关特性说明:https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.meshsdk.v3.2.0%2Fmd_examples_experimental_lpn_README.html&cp=5_2_3_6_1

 

2、设备如何能被天猫精灵发现 ? 2.1 申请三元组(mac 产品id 密钥)

 

备注:设备生产过程中,烧录三元组也需要考虑。

 

2.2 广播特定的mesh-beacon

蓝牙mesh设备上电后如处于未配网状态,需要广播Unprovisioned Device Beacon,每次广播时长40ms,广播间隔100ms,广播持续时间默认10分钟,

广播包中的Device UUID是识别设备的关键信息,阿里巴巴对Device UUID的定义如下表所示,UUID中各字段采用小端模式进行存储。

 

 

3 设备如何加入天猫精灵的网络?配网流程

蓝牙mesh设备配网流程遵循蓝牙mesh标准的Provisioning流程,其中几个使用自定义数据的步骤描述如下:

 

 

3.1 Provisioning Capabilities阶段

mesh设备在Provisioning Capabilities阶段提供OOB方式,要求唯一支持Static OOB方式,其中的AuthValue计算过程如下:

AuthValue = SHA256(Product ID,MAC,Secret)。

即:将ProductID,MAC,Secret三元组通过字符串用英文逗号连接,然后进行SHA256摘要计算,取前16字节。注:这里用于计算SHA256的英文字母全部为小写。

三元组在开发者平台注册产品时会生成调试用的三元组,量产三元组请走开发者平台量产流程。

表6 SHA256计算示例

数据字段数据格式与示例计算使用的输入字符串Product ID十进制数值:168930,对应十六进制数值:0x293e2"000293e2"Mac Address"AB:CD:F0:F1:F2:F3"(扫描到的蓝牙设备MAC地址)"abcdf0f1f2f3"Secret"53daed805bc534a4a93c825ed20a7063""53daed805bc534a4a93c825ed20a7063"连接后字符串"000293e2,abcdf0f1f2f3,53daed805bc534a4a93c825ed20a7063" SHA256结果输出(HEX)c1 c7 67 41 55 32 36 fb 7d a0 a5 86 e6 22 98 c2 31 da c2 88 5e 73 5f eb a6 b8 b441 7c 7d 9e 72 AuthValue(HEX)c1 c7 67 41 55 32 36 fb 7d a0 a5 86 e6 22 98 c2 

备注:设备端需要实现该加密算法

3.2 Provisioning Confirmation阶段

这个阶段,天猫精灵和mesh设备会使用Static OOB方式来做认证,如果天猫精灵和mesh设备两边计算得到的Confirmation值不相同,确认值为上章节计算的AuthValue唯一的 生成,则认证失败,结束流程。

 

mesh协议在此阶段中有一个步骤是设备端生成一个随机数并发送给天猫精灵,天猫精灵会把这个随机数发送给云端鉴权,云端会保存设备端每次发送的随机数,如果设备端发送的随机数是之前使用过的,则云端将会拒绝该设备配网,所以务必保证每次生成的随机数都不重复。

 

3.3 Provisioning Data阶段

对于多Element设备,天猫精灵在该阶段只会下发Pirmery Element的Unicast Address。其余Element的Unicast Address则根据上一Element的地址自行增加1。

分配节点网络入网所需要的数据:

Network Key

网络密钥,具有相同网络密钥的设备才位于同一个网络

Key Index

网络密钥序号

Flags

标志位,指示是否网络密钥刷新的阶段、是否IV index正在刷新

IV Index

IV index是32位数据,位于相同网络的设备共享相同的IV index,并在网络运作过程中通过secure network beacon更新共享

Unicast Address

设备主元素地址,网络内通过该地址寻址设备

基于这些信息,配网完成的节点设备才能同在一个BLE SIG Mesh网络。

 

3.4 Provision完成配置阶段进行绑定APPkey

天猫精灵在Provisioning Complete之后,会下发AppKey。其余配置根据UUID版本有以下区别:

UUID版本配置方式0天猫精灵会下发一次主element的Config_Model_App_bind,设备需要返回成功的status,否则会配网失败;剩余model需要自行绑定appkey。天猫精灵会使用Config_Model_Subscription_Add命令下发主element的品类组播地址,设备需要返回成功的status,否则会配网失败;剩余model需要自行绑定品类组播地址。注:在设置设备位置和别名的时候天猫精灵也会通过Config_Model_Subscription_Add下发位置或别名的组播地址,此时不要将组播地址绑到其他元素1天猫精灵不会下发Config_model_app_bind和Config_Model_Subscrption_Add消息。IOT设备需要自行给所有Element的所有model绑定下发的AppKey,并根据产品类型为各个model订阅相应的组播地址(具体品类组播地址请参阅各产品软件规范)。蓝牙mesh设备完成配网后需要进行消息上报,上报消息包括该设备所有支持的可上报的属性。

具体参考天猫精灵mesh 开发规范:https://doc-bot.tmall.com/docs/doc.htm?spm=0.7629140.0.0.34a51780Ql0P5i&treeId=578&articleId=109585&docType=1

 

3.5 配网方式选择

APP进行PB-GATT入网

天猫精灵网关直接入网

 

4、设备如何被天猫精灵控制与交互?

兼容天猫精灵的 mesh网络扩展协议,已经sig应用的标准model协议。

具体参考天猫精灵的 mesh网络扩展协议:https://doc-bot.tmall.com/docs/doc.htm?spm=0.7629140.0.0.24761780hiuGOt&treeId=578&articleId=109049&docType=1

 

5、设备如何与天猫精灵APP交互?

APP消息通过云端转发给天猫精灵mesh网关进行mesh交互 。

APP通过代理(proxy)节点接入mesh进行交互。

其代理Proxy PDU的类型,定义如下:

img

可以实现通过APP接入代理(proxy)节点实现如下功能:

配置以及控制设备(通过Network PDU)

通过Proxy configuration,可以对APP想要接受信息数据进行控制。

App可以作为配置设备,通过代理节点给其他未配网的节点配网。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3