Ble mesh provisioner

xiaoyao
Posts: 18
Joined: Wed Apr 10, 2019 9:04 am

Ble mesh provisioner

Postby xiaoyao » Tue Feb 04, 2020 1:22 pm

你好,
我目前正在做esp32当provisioner,对Nordic52832进行组网配置。运行esp32 ble_mesh_provisioner demo 和Nordic light_switch client demo,发现并不能配网。我试着去看代码流程和参数配置去调试,但是没有成功,我不清楚要怎么做才可以。请教一下,能不能给点建议或有效的方法?谢谢了

Wangcheng
Posts: 73
Joined: Wed Mar 06, 2019 3:26 am

Re: Ble mesh provisioner

Postby Wangcheng » Thu Feb 20, 2020 6:54 am

xiaoyao wrote:
Tue Feb 04, 2020 1:22 pm
你好,
我目前正在做esp32当provisioner,对Nordic52832进行组网配置。运行esp32 ble_mesh_provisioner demo 和Nordic light_switch client demo,发现并不能配网。我试着去看代码流程和参数配置去调试,但是没有成功,我不清楚要怎么做才可以。请教一下,能不能给点建议或有效的方法?谢谢了
你可以尝试将设备端的配网方式更改为 static no oob, 或许这样能够配网成功. 你能够提供一下配网失败的 log 信息吗? 你可以在 provisioner_prov.c 文件中将 prov_msg_recv 函数中的log信息更改为BT_ERR("type 0x%02x len %u",type, link[idx]...),我通过 log 就能定位到哪一步失败了。

xiaoyao
Posts: 18
Joined: Wed Apr 10, 2019 9:04 am

Re: Ble mesh provisioner

Postby xiaoyao » Thu Feb 20, 2020 8:37 am

你好,我这个实现出来了,两家的uuid格式不一样,把nordic的uuid改成esp32的就行。我现在基于esp32当provisioner,nordic52832当Node,实现vendor model的通讯。使用ble_mesh_fast_prov_client demo当vender model 的provisioner对nordic进行配置,发现不能通讯,但可以和ble_mesh_fast_prov_server 通讯。但是如果使用手机当provisioner,esp32使用ble_mesh_fast_prov_server demo 可以和nordic基于vender model实现通讯。我找了好几天,不清楚ble_mesh_fast_prov_client 当设备provisioner和手机当provisioner有什么不一样?能不能给一些建议或方法?

xiaoyao
Posts: 18
Joined: Wed Apr 10, 2019 9:04 am

Re: Ble mesh provisioner

Postby xiaoyao » Fri Feb 21, 2020 1:39 am

你好,我找到原因了。ble_mesh_fast_prov_client demo provision ble_mesh_fast_prov_server demo的实现过程和手机不一样。ble_mesh_fast_prov_server demo在收到ESP_BLE_MESH_MODEL_OP_APP_KEY_ADD opcode时,一并把model的配置自己做好了,并没有像手机provisioner那样进行发送ESP_BLE_MESH_MODEL_OP_MODEL_APP_BIND opcode 把 model APPkey绑定,发送ESP_BLE_MESH_MODEL_OP_MODEL_PUB_SET 把publication配置好。为什么要这样子做呢?在Nordic那边我并没有找到在provisionee端可以直接配置这些的实现方法。

Wangcheng
Posts: 73
Joined: Wed Mar 06, 2019 3:26 am

Re: Ble mesh provisioner

Postby Wangcheng » Fri Feb 21, 2020 3:17 am

xiaoyao wrote:
Fri Feb 21, 2020 1:39 am
你好,我找到原因了。ble_mesh_fast_prov_client demo provision ble_mesh_fast_prov_server demo的实现过程和手机不一样。ble_mesh_fast_prov_server demo在收到ESP_BLE_MESH_MODEL_OP_APP_KEY_ADD opcode时,一并把model的配置自己做好了,并没有像手机provisioner那样进行发送ESP_BLE_MESH_MODEL_OP_MODEL_APP_BIND opcode 把 model APPkey绑定,发送ESP_BLE_MESH_MODEL_OP_MODEL_PUB_SET 把publication配置好。为什么要这样子做呢?在Nordic那边我并没有找到在provisionee端可以直接配置这些的实现方法。
1. ble_mesh_fast_prov_client demo 与 ble_mesh_fast_prov_server demo 是我们提供的一个快速配网的方案,实现了100个节点配置设备入网时间在60s以内。为了实现这个功能,我们添加了一些自定义消息(用于设备间自定义信息的传递)。
2. 采用 local 的方式是为了减少设备间通讯的消息数,在密集网络中,消息数越少也就越容易做稳定。

xiaoyao
Posts: 18
Joined: Wed Apr 10, 2019 9:04 am

Re: Ble mesh provisioner

Postby xiaoyao » Fri Feb 21, 2020 3:47 am

是的,我从ble_mesh_fast_prov_server demo 代码中找到如你所说的自定义实现方法。我猜测vendor model没有统一的标准,所以各个厂家的做法都不一样?我目前正在把ble_mesh_fast_prov_client demo 按照手机provisioner配置流程去修改,当前已可以实现esp32 vendor model client 和nordic vendor model server通讯了。目前ble_mesh_fast_prov_server 存在vendo rmodel client和server,有没有必要实现ble_mesh_fast_prov_client也存在vendo rmodel client和server?我不清楚单节点同时存在vendor model client和server是不是可以在节点通讯中更快更稳定?

Wangcheng
Posts: 73
Joined: Wed Mar 06, 2019 3:26 am

Re: Ble mesh provisioner

Postby Wangcheng » Tue Feb 25, 2020 2:40 am

xiaoyao wrote:
Fri Feb 21, 2020 3:47 am
是的,我从ble_mesh_fast_prov_server demo 代码中找到如你所说的自定义实现方法。我猜测vendor model没有统一的标准,所以各个厂家的做法都不一样?我目前正在把ble_mesh_fast_prov_client demo 按照手机provisioner配置流程去修改,当前已可以实现esp32 vendor model client 和nordic vendor model server通讯了。目前ble_mesh_fast_prov_server 存在vendo rmodel client和server,有没有必要实现ble_mesh_fast_prov_client也存在vendo rmodel client和server?我不清楚单节点同时存在vendor model client和server是不是可以在节点通讯中更快更稳定?
关于节点是否需要同时存在 vendor model client 和 server,是由应用程序自己决定的。
在 demo 中这样实现主要是因为需要处理这么多的消息,如果不需要就可以不用这样做。
补充说明: ble mesh 的通讯采用的是 server 与 client 模型。client 向 server 发送程序中定义好的消息(使用 opcode 进行区分),server 向 client 响应对应状态的 status。

Who is online

Users browsing this forum: Google [Bot] and 137 guests