蓝牙MESH(E104-BT10)使用记录
0、小知识汇总
1、产品简介
E104-BT10 蓝牙 mesh 自组网模块支持 sig mesh V1.0 标准,单网络理论最大可容纳 10922 个节点设备。设备入网后自动记忆网络信息,入网时间 1 秒内完成。手机 APP 可任意节点代理入网,实现 mesh 网络远程控制。可方便实现网内广播或任意定点数据透传,透传数据单包最大支持 80 字节。支持 sig标准 HSL(H: Hue , S: Saturation ,L:lightness)模型,一键实现灯控应用场景。非常适合物联网信息采集,大规模组网通讯场景,智能家居等应用。
2、产品特点
- PCB 板载天线,空旷最大通讯距离 50 米
- 发射功率多级可调最大+8dbm
- 串口波特率动态可配
- 无线通讯信道 37、38、39
- 网络无中心节点(gateway)
- 记忆组网信息,上电自动入网
- 上电入网 1 秒完成
- 支持手机 APP 入网
- 组网最大节点数 10922
- 支持 SIG MESH Generic 模型
- 支持 SIG MESH HSL 灯控模型
- 支持自定义串口数据透传模型
- 支持自定义低功耗(非标准低功耗)
- 支持串口唤醒
3、MESH网络介绍
这个模块最大的优势在于可中继网络内的任意数据,任意模块都是中继,中继的同时也都可收到数据,模块数据信号覆盖范围 50 米左右,下图中继为功能示意图,用户可参考。
解读上图模拟应用场景:模块 A 到模块 C 的距离为 70 米,超出了我们模块的 50 米的传输距离,所以 A 模块无法直接将数据发给 C 模块,若在 A模块和 C 模块之间放置一个 B 模块,那么 数据就会被 B 中继然后 C 收到。模块 A 需要发送数据给整个网络,模块 B,C,D,E 需要收到 A 的数据,那么 A 模块就以广播地址(0XFFFF)发数据就可以了如果 A 模块需要指定数据发送给 E 模块,就只需 在数据格式中地址处填写 E 模块的地址就行(详情见指令格式介绍),但是 E 模块离 A 模块 140 米,无法将数据直接传达,但是只要这几个模块是属于同一个网络,数据就会以下面这个链路传达到模块 E,A 发出数据传递给 B ,B 再到 C,C 到 D, D 传给 E。
4、一些基本概念
4.1、网络密匙(Net Key)
全称 network keys,网络密钥,用来保护网络层通信的密钥。是使用符合核心规范要求的随机数生成器生成的密钥。(详见 Mesh Profile3.86)
4.2、会话密匙(App Key)
全称 application keys,应用程序密钥,用来保护上层传输层的密钥。是使用与之兼容的随机数生成器生成的,应用程序密钥标识符(AID)用于标识应用程序密钥。(详见 Mesh Profile3.86)
4.3、设备角色
在 SIG MESH 协议中 拥有种角色分别为 node、low power node、relay node、friend node、proxy node。相关功能介绍如下:
- Node:整个 mesh 网络中的边缘节点,具有接收与发送数据的能力,但是不具备中继(relay)功能
- Low power node:低功耗节点,由于 friend node 的存在,低功耗节点不需要一直在广播信道发送或者监听数据包,只需要查询 friend node 上有没有数据达到就行。(暂不支持)
- Relay node:中继节点,是网络层扩展网络覆盖范围的核心节点,在接收到其他节点发送的数据包后,根据网络协议的判定条件判断是否需要转发。
- Friend node: low power node 可以与 friend node 建立友好连接,作为 low powernode 的代理节点,当 lowpowernode节点的数据达到时,可以在 Friendnode 缓存,等待 lowpowernode 查询并且获取。
- Proxy node:代理节点,代理节点可通过承载层(广播承载层或 GATT 承载层)接受信息,并通过另一个广播承载层或GATT 承载层重新发送消息。在非 mesh 低功耗蓝牙设备成为蓝牙 mesh 网络成员过程中起关键作用,代理节点的根本目的是执行承载层转换。它能够实现从广播承载层到 GATT 承载层的转换,反之亦然。因此,不支持广播承载层的设备可通过 GATT 连接来收发各类蓝牙 mesh 消息。E104-BT10N 支持代理节点功能,配合手机端 APP 可实现 mesh 网络控制(资料压缩包中包含 APP相关 SDK 供客户自行开发)。
通常单个设备只支持一种角色,在 EBYTE 的方案中,模块支持两种角色,provision 节点和 mesh 节点,provision 节点即负责组网的设备,mesh 节点是收发数据和转发数据的设备即 relay node。
SIG MESH 有四种连接方式:
- 1、 ADV(Not Relayed):即不具备转播能力的连接。这种情况适用于两个节点之间互相收发消息,但不具备中继能力不能进行数据包的转发工作。
- 2、 ADV(Lower power):即低功耗广播连接。用于 low power node 和 friend node 之间收发数据包,在这个连接上low power node 会主动发起请求建立与 friendship 的连接,以及从 friend node 上查询是否有自己的数据包。
- 3、 ADV Bearer:广播转发连接。两个节点之间可以基于广播转发收发广播消息,并且可以作为中继转发。(该产品就在此连接上工作)
- 4、 GATT Bearer:用于没有 ADVbearer 能力的结点也能参与 MESH 网络,通过代理协议与其他的结点在 GATT 连接上收发代理 PDU。
该产品支持的设备类型有 provision 和 mesh。
- Provision 节点: 是特殊的 node 节点,是整个网络的发起者。也被称作 gateway。它将未组网的设备加入到 mesh 网络中。Provision 节点向未配网设备提供 provision 数据,其中包括 netkey、appkey,还有设备每一个 element 对应的 unicast地址。
- Mesh 节点:该产品的mesh 节点是集 node、relay node 、friend node、proxy node 四种角色为一体,在使用过程中方便快捷。
4.4、模型(Moule)
在 SIG MESH 有很多模型,我们的 E104-BT10 模块一共有三个元素地址, 每一个元素地址下面可以绑定多个模型,在下表中每一行就是一个模型,其中 HSL 的模型比较特殊绑定了三个地址,这是因为在 HSL 模型中需要控制三个东西 亮度、饱和度、色温,所以它有三个地址。
4.5、地址(unicast)和元素(element)
Address 地址,一个地址对应一个元素,从上面 model 介绍中可以看出我们有三个元素,我们可以称之为元素地址,它是在 provision(组网)过程中由 provision 设备分配给 node 节点的唯一地址,在同一个 mesh 网络中每一个 node 设备可能会有多个地址 但是,每个设备里的一个 model 只能有一个地址,但不同 model 可绑定在一个地址上,在后续的 mesh 网络通信过程中设备就是依靠此地址寻找其他设备。E104-BT10G 的角色是 Provision 设备,E104-BT10N 的角色是 Node 设备。
5、使用介绍
5.1、组网介绍
E104-BT10 这个 mesh 组网模块, 分为了 E104-BT10G, E104-BT10N,两种型号,E104-BT10G(就是 provisioner),E104-BT10N(就是 node 节点),E104-BT10G 这是整个网络的发起者,整个网络有且只有一个 E104-BT10G我们所说的组网 就是用 E104-BT10G 把 E104-BT10N 加入到 E104-BT10G 的网络中。所以要实现 mesh 组网至少需要两个模块,一个 E104-BT10G,一个 E104-BT10N。
软件设置: E104-BT10G 需要设置 netkey,APPkey(详见指令 4.3.1.1)这两个值用户必须自己设置(我们有默认值,但不推荐使用),不同网络之间这两个值不能相同,因为在组网的时候 E104-BT10G 会给 E104-BT10N 分配 netkey,以及绑定 APPkey。
整个网络的组建完全自动,用户只需串口给出“添加节点入网”指令就好,组网过程最长耗时 30 秒,但是一般是 10 秒到 20秒就能成功。
文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。
原文链接:recclay.blog.csdn.net/article/details/107004001
- 点赞
- 收藏
- 关注作者
评论(0)