Mesh网络架构
E104-BT10G/N蓝牙模块最大的优势在于可中继网络内的任意数据,任意模块都是中继,中继的同时也都可收到数据
接线方式
测试模块只需用到VCC、GND、TXD和RXD引脚,分别与USB-TTL的3V3、GND、RXD和TXD相连
将蓝牙模块连接至PC机
本次展示用到1个E104-BT10G(网关)和2个E104-BT10N(节点)
初始化蓝牙模块
打开3个串口调试助手,分别连接3个蓝牙模块,波特率115200,停止位1,数据位8,校验位:无
第一个是蓝牙网关,后面两个是蓝牙节点
如果没有串口调试助手,点击这里下载:https://pan.baidu.com/s/1nbn0FzQZrdvQuq9kT-ROaw
提取码:disd
02 C0 15
设置节点不进入睡眠
03 C0 17 00
00表示不进入睡眠,也可设置成01-FF,表示串口停止工作后超时进入睡眠的时间,为了测试方便设置成永不进入睡眠
设备入网(网关指令)
02 C0 09
每发送指令只能让一个设备入网,本次有两个节点设备,那么需要发送两次,发送后需要等待大概10秒才有回应,请耐心等待,从图中可以看出有两个设备入网成功
至此,Mesh网络已经搭建起来
获取设备主地址
02 C0 0B
节点1的地址是05,节点2的地址是02,网关设备入网返回指令中可以看到02和05设备已入网
网关向节定向发送消息
09 C2 0002 11223344AABB
参数:09是数据长度,C2是功能码,0002是目标地址,后面是数据
但数据长度明明是6个字节,原因是其它指令占用了02和03,那么从04开始算是1字节,09则是6字节,以此类推
如果想发10个字节的数据则发送指令
0A C2 0002 11223344AABBCC
向地址为02的节点发送消息,节点成功收到消息
向地址为05的节点发送消息,节点成功收到消息
节点向网关向发送消息
向地址为01的网关发送消息,网关成功收到消息
节点向节定向发送消息
网关向Mesh网络广播消息
网络内的节点1、节点2包括网关自己也收到消息
节点向Mesh网络广播消息
网络内的节点1、节点2包括网关自己也收到消息
IOS手机作为代理节点加入Mesh网络(Android手机则用BLE调试宝进行测试)
打开手机蓝牙,打开蓝牙助手APP
BluetoothLE APP
搜索到一个我们创建的Mesh网络,名字叫SigMesh,点击连接
重复节点或网关向Mesh网络广播数据的步骤,发现手机APP成功收到数据
蓝牙助手 APP
搜索到一个我们创建的Mesh网络,名字叫SigMesh,点击连接
在UUID为1828的服务下选择2ADE属性,即可监听Mesh网络的数据
重复节点或网关向Mesh网络广播数据的步骤,手机APP成功收到数据
至此Mesh网络测试完毕
分析
测试时3次都是发送相同的数据,但收到的数据不一样无规律可言,那么在二次开发中需要根据SigMesh网络协议对数据进行解析,方可得到目标数据。
欢迎讨论与指正!!!