【沁恒蓝牙mesh】组网方式选择与分析

本文主要介绍了【沁恒蓝牙mesh】组网方式选择与分析

1.开发环境搭建与程序烧录

参考博文:【经验】如何搭建沁恒蓝牙SoC CH58x开发环境

2. 组网方式

蓝牙mesh组网实践(配网方式的选择)

  • 自配网:自己给自己配网,当节点的各种key一致的时候,运行mesh协议栈,就都在一个网络里,就可以互通

    • 写死在固件:设备上电可以自动组网,但是不方便管理,维护需要重新烧录固件,也比较麻烦
    • 通过手机app直连配网:通过手机app将设备信息传给设备(ble),设备收到配置信息后,执行自配网流程(每次只能配置一个设备,比较麻烦)
  • 配网器配网

    • 中心节点作为管理者,给普通节点设备配网
    • 支持自动配网,但是需要配网和和节点靠近,在通信范围内的节点才可以通过配网器配网
  • 手机app配网

  • 【沁恒蓝牙mesh】组网方式选择与分析_第1张图片

2.1 自配网方式参数解析

使用自配网方式

  • self_prov_net_key:网络密钥,一个mesh网络一个单独的网络密钥

  • self_prov_dev_key:设备密钥,是节点与配网器通信的密钥,自配网方式中西参数无作用

  • self_prov_app_key:应用密钥,不同模型之间的应用密钥不同则无法通信

  • self_prov_net_idx:自配网NetKey的索引, 这个变量只在自配网时用到。4字节,共16个bit,与网络密钥 net_key一一对应。(划分子网时用到,值为0时,指向 self_prov_net_key)

  • self_prov_app_idx:同上,添加更多应用密钥后这个索引值会有指向其他应用密钥的作用。

  • self_prov_iv_index:IV值在使用自配网方式时需要与现有网络中的IV值保持一致。最好现有网络中能留个反馈途径,比如说过按下按键通过串口打印一下IV值,反馈一下当前网络中的IV值,接下来的节点按该值配网。

节点广播模式等待配网 vs 节点上电自配网

/*广播模式,等待配网*/
void blemesh_on_sync();
  -> void prov_enable();
     -> bt_mesh_scan_enable();  /*自己能被扫描到*/
	 ->  bt_mesh_beacon_enable();/*使能广播beacon*/


/*自配网模式*/
void blemesh_on_sync(void);
  -> bt_mesh_provision(a,b,c,d,e,f);  // 直接根据信息自配网

2.2 组网测试步骤

  1. 【测试一,网关自动搜索周围设备,并将其加入到网络中】

网关烧录 self_provisioner_vendor 工程,节点烧录 adv_vendor 工程。

网关上电首先自配网,将自己加入到网络中地址为0x0001号;具体自配网以及自配网完毕绑定模型等过程参考手册;

节点上电检查是否已经入网,若已入网则自动在原来的网络中,若还未入网则广播状态

网关收到未配网广播,发起配网,调用 unprov_recv 函数,进行配网流程

  1. 【测试二:将配网信息直接写死到固件中,测试节点的自动组网】

烧录 adv_vendor_self_provision 工程,测试节点间是否可以自动组网并收发数据

  1. 【测试三:通过手机app直连单节点,进行 proxy 的 pb_gatt 配网】
    参考另一篇博文:【沁恒蓝牙mesh】手机配网+自组网联合调试

你可能感兴趣的:(沁恒蓝牙mesh二次开发,蓝牙mesh)