Demo:Btble
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的添加和连接。 添加的步骤如下:
-
step1
-
step2
-
step3
-
step4
-
step5
-
ste6
-
step7
-
step8
-
step9
-
step10
-
step11
-
step12
-
step13
如何使用配网器 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.