Demo:Btble:修订间差异

来自Bouffalo Lab Docs
跳转到导航 跳转到搜索
武楷轩留言 | 贡献
武楷轩移动页面Demo:BtbleDemo:Btble
武楷轩留言 | 贡献
添加blemesh_cli
第1行: 第1行:
Demo介绍:


这部分Demo主要是蓝牙通讯相关的实例代码,保存在SDK的 example/btble路径下。
== Demo介绍: ==
'''这部分Demo主要是蓝牙通讯相关功能的实例代码,这些demo保存在SDK的 example/btble路径下。'''
 
== blemesh_cli: ==
 
=== 基本介绍: ===
该demo创建了一个 Bluetooth mesh 网络,通过向串口发送指令进行初始化后,就可以通过手机APP在mesh网络中进行添加并连接。
 
DEMO命令和输出:<syntaxhighlight lang="bash" line="1">
bouffalolab />blemesh_init              #初始化bluemesh网络
#输出:
Init successfully
Env[LOCAL_NAME] Data len[10], setting_env_cb
Use pb-adv or pb-gatt to enable advertising
 
bouffalolab />blemesh_pb 2 1           
#输出:
PB-GATT enabled
 
</syntaxhighlight>执行完上述命令后,就可以使用手机APP进行NODE的添加和连接。
 
添加的步骤如下:<gallery>
文件:APPopen.png|step1
文件:Meshnode2.png|step2
文件:Meshnode3.png|step3
文件:Meshnode4.png|step4
文件:Meshnode5.png|step5
文件:Meshnode6.png|ste6
文件:Meshnode7.png|step7
文件:Meshnode8.png|step8
文件:Meshnode9.png|step9
文件:Meshnode10.png|step10
文件:Meshnode11.png|step11
文件:Meshnode12.png|step12
文件:Meshnode13.png|step13
</gallery>
 
=== 如何使用配网器 Provisioner 将新设备添加进网络中: ===
大概流程如下:
 
'''1.打开未配网设备 ---- 2.启动配网器Provisioner ---- 3.监听设备广播 ---- 4.添加设备到网络 ---- 5.获取设备信息 ---- 6.分配密钥'''
 
provisioner设备编译时,必须更改一个编译选项:
 
CONFIG_BT_MESH_PROVISIONER=1
 
==== 执行步骤1:打开未配网设备并且输入以下命令: ====
<syntaxhighlight lang="bash" line="1">
blemesh_init        # 初始化Mesh协议栈
blemesh_pb 1 1      # 开启PB-ADV和PB-GATT配网承载
</syntaxhighlight>
 
==== 执行步骤2: 打开配网器设备输入以下命令: ====
<syntaxhighlight lang="bash" line="1">
bouffalolab />blemesh_pvnr_init            #初始化Provisioner
#得到输出:
    .........
    Local node provisioned, net_idx 0x0000 address 0x0001
 
    Network key:8fe7deea92943001567251dc1f9b0f03
 
    Dev key:89c2f18f9f286661c6bbb1430d7aadb7
 
    Provisioning completed
</syntaxhighlight>
 
* <code>net_idx 0x0000</code>:网络索引
* <code>address 0x0001</code>:Provisioner自身地址
* <code>Network key</code>:网络层加密密钥
* <code>Dev key</code>:设备专属配置密钥
 
==== 执行步骤3:打开广播 ====
执行以下命令:
blemesh_beacon_listen 0x01  # 开启广播监听
 
* 扫描周围广播Mesh信标的设备
* 捕获并显示未配网设备的UUID(如:<code>07af000011112222333318b905de96c2</code>)
* UUID包含设备身份信息(厂商ID、产品ID等)
 
==== 执行步骤4:在配网器设备上执行 添加设备到网络命令 ====
<syntaxhighlight lang="bash" line="1">
bouffalolab />blemesh_provision_adv 07af000011112222333318b905de96c2 0 3 0
#输出
    P1:“07af000011112222333318b905de96c2" is UUID information.
    P2:0:net_idx
    P3:3: assign node unicast address。
    P4:0:attention_duration
</syntaxhighlight>
 
* <code>UUID</code>:目标设备的唯一标识
* <code>net_idx 0</code>:使用的网络索引
* <code>address 3</code>:分配给设备的单播地址(0x0003)
* <code>attention_duration 0</code>:配网指示时长(0=无提示)
 
==== 执行步骤5:获取设备信息 ====
执行的命令与输出内容:<syntaxhighlight lang="bash" line="1">
bouffalolab /> blemesh_get_comp 0x0000 0x0003 0x00
#输出:
P1:net index.
 
P2:dst address.
 
P3:page number.
</syntaxhighlight>
 
* <code>net_idx 0x0000</code>:网络索引
* <code>dst 0x0003</code>:目标设备地址
* <code>page 0x00</code>:组成数据页码
 
==== 执行步骤6:分配密钥key ====
<syntaxhighlight lang="bash" line="1">
bouffalolab />  blemesh_app_key_add 0x0000 0x0003 0x0000 0x0000
#输出
P1:net index.
 
P2:dst address.
 
P3:Network key index。
 
P4:Application key index.
</syntaxhighlight>

2025年7月16日 (三) 08:30的版本

Demo介绍:

这部分Demo主要是蓝牙通讯相关功能的实例代码,这些demo保存在SDK的 example/btble路径下。

blemesh_cli:

基本介绍:

该demo创建了一个 Bluetooth mesh 网络,通过向串口发送指令进行初始化后,就可以通过手机APP在mesh网络中进行添加并连接。

DEMO命令和输出:

bouffalolab />blemesh_init              #初始化bluemesh网络
#输出:
Init successfully 
Env[LOCAL_NAME] Data len[10], setting_env_cb
Use pb-adv or pb-gatt to enable advertising

bouffalolab />blemesh_pb 2 1            
#输出:
PB-GATT enabled

执行完上述命令后,就可以使用手机APP进行NODE的添加和连接。 添加的步骤如下:

如何使用配网器 Provisioner 将新设备添加进网络中:

大概流程如下:

1.打开未配网设备 ---- 2.启动配网器Provisioner ---- 3.监听设备广播 ---- 4.添加设备到网络 ---- 5.获取设备信息 ---- 6.分配密钥

provisioner设备编译时,必须更改一个编译选项:

CONFIG_BT_MESH_PROVISIONER=1

执行步骤1:打开未配网设备并且输入以下命令:

blemesh_init        # 初始化Mesh协议栈
blemesh_pb 1 1      # 开启PB-ADV和PB-GATT配网承载

执行步骤2: 打开配网器设备输入以下命令:

bouffalolab />blemesh_pvnr_init             #初始化Provisioner
#得到输出:
    .........
    Local node provisioned, net_idx 0x0000 address 0x0001

    Network key:8fe7deea92943001567251dc1f9b0f03

    Dev key:89c2f18f9f286661c6bbb1430d7aadb7

    Provisioning completed
  • net_idx 0x0000:网络索引
  • address 0x0001:Provisioner自身地址
  • Network key:网络层加密密钥
  • Dev key:设备专属配置密钥

执行步骤3:打开广播

执行以下命令:

blemesh_beacon_listen 0x01  # 开启广播监听
  • 扫描周围广播Mesh信标的设备
  • 捕获并显示未配网设备的UUID(如:07af000011112222333318b905de96c2
  • UUID包含设备身份信息(厂商ID、产品ID等)

执行步骤4:在配网器设备上执行 添加设备到网络命令

bouffalolab />blemesh_provision_adv 07af000011112222333318b905de96c2 0 3 0
#输出
    P1:“07af000011112222333318b905de96c2" is UUID information.
    P2:0:net_idx
    P3:3: assign node unicast address。
    P4:0:attention_duration
  • UUID:目标设备的唯一标识
  • net_idx 0:使用的网络索引
  • address 3:分配给设备的单播地址(0x0003)
  • attention_duration 0:配网指示时长(0=无提示)

执行步骤5:获取设备信息

执行的命令与输出内容:

bouffalolab /> blemesh_get_comp 0x0000 0x0003 0x00
#输出:
P1:net index.

P2:dst address.

P3:page number.
  • net_idx 0x0000:网络索引
  • dst 0x0003:目标设备地址
  • page 0x00:组成数据页码

执行步骤6:分配密钥key

bouffalolab />  blemesh_app_key_add 0x0000 0x0003 0x0000 0x0000
#输出
P1:net index.

P2:dst address.

P3:Network key index。

P4:Application key index.