Bluez mesh node/device 模式(非provision)验证

Bluez mesh node/device 模式(非provision)验证

1.环境

(1)两套能运行bluez mesh的板子
(2)板子带有python3,bluez mesh node的例程由python编写,文件在源码路径test/test-mesh
(3)测试的bluez版本为5.55

2.修改文件

上面提到的test-mesh文件

mesh_net.Join(app.get_path(), uuid,
			reply_handler=join_cb,
			error_handler=join_error_cb)

改为

mesh_net.Join(app.get_path(), dbus.ByteArray(uuid),
			reply_handler=join_cb,
			error_handler=join_error_cb)

3.验证流程

我这边测试,由于test-mesh只能识别pd-adv模式下的dbus,所以两设备全程运行在pd-adv模式下,pd-adv相关操作可以参考官方文档
https://www.bluetooth.com/wp-content/uploads/2020/04/Developer-Study-Guide-How-to-Deploy-BlueZ-on-a-Raspberry-Pi-Board-as-a-Bluetooth-Mesh-Provisioner.pdf

以下需要在两台设备上分别敲命令。node 设备:要加入mesh网络的设备。provision设备:在mesh网络中充当provision的设备。

以下命令中的文件路径,皆是yocto工程编译后配置好的位置,需要根据实际进行变化,test-mesh这个python文件的依赖也需要根据实际情况进行配置。

node 设备输入命令:

#关闭原本的蓝牙守护进程
systemctl disable bluetooth
#启动pd-adv模式的守护进程
/usr/libexec/bluetooth/bluetooth-meshd -nd &
#启动mesh node的python脚本
python3 /usr/lib64/bluez/test/test-mesh
#启动对外广播
join

成功运行应该会有以下log,其中有随机生成的UUID

Joining with UUID 010d090a0302050c06070a080e040f0b
Join procedure started

provision设备输入以下命令:

#关闭原本的蓝牙守护进程
systemctl disable bluetooth
#启动pd-adv模式的守护进程
/usr/libexec/bluetooth/bluetooth-meshd -nd &

#启动bluez mesh客户端
mesh-cfgclient
#开始扫描
discover-unprovisioned on
#连接设备
provision 010D090A0302050C06070A080E040F0B

默认状态下provision设备成功连上node设备,还会要求输入个key

[[mesh-agent]# ] Enter key (hex number):

切换回node 设备终端,能看到以下log,将key输入到provision设备终端,即可完成provisioning流程

Enter 16 octet key on remote device:  376f01854b1ecf0a74fa7016ac6c31ca

provision设备成功加入后会出现下面这种log

Provisioning done:
Mesh node:
        UUID = 010D090A0302050C06070A080E040F0B
        primary = 00ac

        elements (2):

node设备成功加入后会出现下面这种log

Joined mesh network with token e1fd7be97c8644ac

后续控制可以参考pd-gatt模式下的控制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值