BLE MESH AT指令应用笔记

1、BLE Mesh组网原理简介

BLE Mesh网络是用于建立多对多设备通信的低能耗蓝牙新的网络拓扑。
在这里插入图片描述如上图,手机及其它支持BLE的设备可以通过代理节点(Proxy),访问网络中的每一个设备;而边缘节点(Edge)这种普通节点,是不支持中继等功能的,仅可收发数据;其中中继节点 (Relay) 可以作为消息的中继,转发给其他节点,本身也可以接受消息。朋友节点和低功耗节点(Friend+Low power)是配合使用的,朋友节点可以缓存低功耗节点的信息,这样低功耗节点可以处于休眠状态,定时唤醒,从朋友节点取回消息,满足低功耗的应用。
BLE Mesh的网络特性:
①无需中心网关,节点与节点通信,节点的入网,均是通过配置实现。
②节点通过配置完成入网,没有复杂繁琐的入网交互流程以及对应入网过程路由表的建立
③蓝牙Mesh是通过广播和中继接收转发的机制,完成消息的传递。
④蓝牙Mesh的通信采用的是发布/订阅模型,即通过节点发布信息,将消息发送到对应地址,只要订阅该地址的节点,就可以收到消息。比如一个开关可以控制八个智能灯泡,一个智能灯泡可以被八个开关控制。
⑤蓝牙Mesh在应用层和网络层都有安全密钥;其中网络层安全密钥可以保护整个网络,应用层密钥则对终端节点进行保护。
⑥非常适用于电池供电节点的方案,即可配置其他的节点作为低功耗节点的朋友节点,每当低功耗节点进入睡眠后,朋友节点就可以替代接收低功耗节点消息,可在低功耗节点唤醒后,将数据无误的传递给低功耗节点;
⑦同时可通过代理节点,实现传统BLE节点加入Mesh网络;代理节点与传统BLE节点之间是通过特定GATT Profile进行消息传递的;

2、BLE AT指令MESH应用

针对MCU的BLE MESH组网方案,可以采用AT指令的形式来实现。先准备至少两个的BLE MESH蓝牙模组。这里的蓝牙 Mesh 组网需要配置 MESHNAME (Mesh网络名称)和MESHPWD(Mesh网络密码), 多个模组的 MESHNAME 和MESHPWD 要必须相同才能相互通信。 其次, Mesh 网络中的设备还要有一个唯一的地址, 才能与别的模组通信。以下实现边缘节点和中继节点的通信。
BEL MESH节点1:

AT+NAME=MeshNode1 //设置或更改蓝牙名称
OK

AT+RST  //重启模组,使设置的蓝牙名字生效
OK
the addr is :bc
+IM_READY

AT+MAC?   //查询蓝牙的MAC地址(也可以重新设置)
+MAC: BC:CB:BB:55:EE:33
OK

AT+MESHNAME=MESHNET //设置MESH网络名称
OK

AT+MESHPWD=12345678 //设置MESH网络密码
OK

AT+MESHADDR? //查询设备地址(也可以重新设置,必须是唯一的)
+MESHADDR: BC
OK

AT+MESHSTATE? //查询Mesh状态,返回值为0时,未加入mesh网络,返回值为1时,已加入mesh网络。
+MESHSTATE: 1
OK

AT+MESHSEND=D9,0A\r\n2222222222 //指定目标地址发送数据
OK
+MESH_DATA: D9,0A,1111111111

BEL MESH节点2:

AT+NAME=MeshNode2 //设置或更改蓝牙名称
OK

AT+RST //重启模组,使设置的蓝牙名字生效
the  addr is :d9
+IM_READY

AT+MAC? //查询蓝牙的MAC地址(也可以重新设置)
+MAC: D9:9A:BB:55:EE:33
OK

AT+MESHNAME=MESHNET //设置MESH网络名称
OK

AT+MESHPWD=12345678 //设置MESH网络密码
OK

AT+MESHADDR? //查询设备地址(也可以重新设置,必须是唯一的)
+MESHADDR: D9
OK

AT+MESHSTATE? //查询Mesh状态,返回值为0时,未加入mesh网络,返回值为1时,已加入mesh网络。
+MESHSTATE: 1
OK

+MESH_DATA: BC,0A,2222222222 //指定目标地址发送数据
AT+MESHSEND=BC,0A\r\n1111111111
OK

.以此类推,可以让第n个BLE节点也加入mesh网络,实现在mesh网络下的各节点之间的相互通信,如:
BEL MESH节点n:

AT+NAME=MeshNoden //设置或更改蓝牙名称
OK

AT+RST  //重启模组,使设置的蓝牙名字生效
OK
the addr is :xx
+IM_READY

AT+MAC?   //查询蓝牙的MAC地址(也可以重新设置)
+MAC: xx:xx:xx:xx:xx:xx
OK

AT+MESHNAME=MESHNET //设置MESH网络名称
OK

AT+MESHPWD=12345678 //设置MESH网络密码
OK

AT+MESHADDR? //查询设备地址(也可以重新设置,必须是唯一的)
+MESHADDR: XX
OK

AT+MESHSTATE? //查询Mesh状态,返回值为0时,未加入mesh网络,返回值为1时,已加入mesh网络。
+MESHSTATE: 1
OK

AT+MESHSEND=XX,0A\r\n0000000000 //指定目标地址发送数据
OK
+MESH_DATA: XX,0A,

实际测试如图:
在这里插入图片描述

3、其它指令:

指令 作用 描述
AT+GMR 查询固件版本
AT+RESTORE 恢复出厂设置
AT+RST 重启模组
AT+SLEEP 深度睡眠 进入深度睡眠模式下只能从外部唤醒,唤醒引脚为 IO6,将 IO6 与 RX 之间串联 1K 电阻可实现串口唤醒 备注:进入深度睡眠模式后模组将不能收发数据.
AT+BAUD=value 设置串口波特率 波特率与value数值对应如下:0=2400 1=4800 2=9600 3=14400 4=19200 5=38400 6=57600 7=115200
发布了26 篇原创文章 · 获赞 7 · 访问量 6047

猜你喜欢

转载自blog.csdn.net/Boantong_/article/details/104959601