你好,
我目前正在做esp32当provisioner,对Nordic52832进行组网配置。运行esp32 ble_mesh_provisioner demo 和Nordic light_switch client demo,发现并不能配网。我试着去看代码流程和参数配置去调试,但是没有成功,我不清楚要怎么做才可以。请教一下,能不能给点建议或有效的方法?谢谢了
Ble mesh provisioner
Re: Ble mesh provisioner
你可以尝试将设备端的配网方式更改为 static no oob, 或许这样能够配网成功. 你能够提供一下配网失败的 log 信息吗? 你可以在 provisioner_prov.c 文件中将 prov_msg_recv 函数中的log信息更改为BT_ERR("type 0x%02x len %u",type, link[idx]...),我通过 log 就能定位到哪一步失败了。
Re: Ble mesh provisioner
你好,我这个实现出来了,两家的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有什么不一样?能不能给一些建议或方法?
Re: Ble mesh provisioner
你好,我找到原因了。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端可以直接配置这些的实现方法。
Re: Ble mesh provisioner
1. ble_mesh_fast_prov_client demo 与 ble_mesh_fast_prov_server demo 是我们提供的一个快速配网的方案,实现了100个节点配置设备入网时间在60s以内。为了实现这个功能,我们添加了一些自定义消息(用于设备间自定义信息的传递)。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端可以直接配置这些的实现方法。
2. 采用 local 的方式是为了减少设备间通讯的消息数,在密集网络中,消息数越少也就越容易做稳定。
Re: Ble mesh provisioner
是的,我从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是不是可以在节点通讯中更快更稳定?
Re: Ble mesh provisioner
关于节点是否需要同时存在 vendor model client 和 server,是由应用程序自己决定的。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是不是可以在节点通讯中更快更稳定?
在 demo 中这样实现主要是因为需要处理这么多的消息,如果不需要就可以不用这样做。
补充说明: ble mesh 的通讯采用的是 server 与 client 模型。client 向 server 发送程序中定义好的消息(使用 opcode 进行区分),server 向 client 响应对应状态的 status。
Who is online
Users browsing this forum: Google [Bot] and 137 guests