【nRF52840 DK测评】Bluetooth Mesh测试
<div class='showpostmsg'>## 内容概要本文首先对bluetooth mesh概念进行了简单的介绍,然后使用开发板进行了蓝牙mesh的功能演示。
----
## 前言
相信大家都听说过蓝牙mesh。蓝牙联盟于去年发布了蓝牙mesh的标准,在这之前,一些厂商使用的是私有的mesh协议。那么何为蓝牙mesh呢?
## 蓝牙Mesh介绍
我们熟知的低功耗蓝牙,是一种低功耗的无线通信技术,而蓝牙mesh就是基于此的一种网络技术。它不是一种新的无线通信技术。具体关系如下图:
图1
但是蓝牙mesh与低功耗蓝牙不是完全兼容的。具体看下图:
图2
BLE和蓝牙mesh共享最底层协议。蓝牙mesh的通信消息与BLE的广播数据包是兼容的。然而蓝牙mesh重新定义了一个主机层,这与BLE的主机层不兼容。
mesh系统架构如下:
图3
各个层的具体含义就不过多介绍了,具体见官方mesh profile文档。
蓝牙mesh的网络拓扑结构如图:
图4
图中包含了蓝牙mesh的基本节点。其中Q、R、S为中继节点。假如T节点想发送数据给H节点,但H不在T的信号接收范围内,那么T的信号就要通过S来中继,先发给S,再由S给H。
I、J、K、L、M为低功耗节点。其大部分时间处于休眠状态,会定期唤醒从朋友节点获取消息。它们的上一级节点P、O即为朋友节点。当有消息需要给低功耗节点,而低功耗节点处于休眠状态时,朋友节点会先将消息存储起来。低功耗节点定时唤醒后,将会询问其朋友节点是否有数据需要给自己,此时朋友节点将先前存储的数据给低功耗节点。
从图上可以看出,为了维持消息的快速响应,除了低功耗节点外,各节点都要一直保持监听状态。这就造成了比较高的功耗,因此相对于传统的BLE,蓝牙mesh的功耗要高很多。
## 实验
这里使用Light switch demo进行演示,使用两块52840开发板,一个做server,另一个做client,手机做provisioner。按照如下步骤执行。
1. 下载并解压Mesh SDK,执行*python scripts/quick_start/quick_start_demo.py*命令,根据提示,进行server和client代码的烧录。如图所示:
图5
2. 手机打开nRF Mesh软件,进行Provisioning。如下图:
图6
这里Switch为client,Light为server。首先点击Identify,然后点击Provision。如图:
图7
图8
3. 回到首页,可以看到我们网络中的节点如下图:
图9
4. 接下来设置server和client的Generic OnOff Client/Server的AppKey为相同的值。
5. 设置client中Generic OnOff client的publication address为server的地址,这里是0x0001。
经过以上几个步骤,我们的mesh网络就搭建好了。接下来,按下client开发板上的button1,可以看到LED1亮起,同时server开发板的LED1也被点亮。按下client的button2,两个LED2同时熄灭。如下图:
图10
----
## 总结
Bluetooth Mesh是一项较新的无线组网技术,其规范正式发布仅一年多的时间,与其相关的知识和概念较多,本人目前也正在学习、摸索中,这里仅做了一个简单的介绍,有不妥之处欢迎大家指正,一起交流学习。
此内容由EEWORLD论坛网友jj1989原创,如需转载或用于商业用途需征得作者同意并注明出处
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> 不错,支持下 请教一下,你的贴子样式看起来特别舒服,请教一下有什么技巧吗? littleshrimp 发表于 2018-12-27 14:52
请教一下,你的贴子样式看起来特别舒服,请教一下有什么技巧吗?
关键字:markdown
论坛再优化兼容一下,效果更好。 jj1989 发表于 2018-12-27 22:38
关键字:markdown
论坛再优化兼容一下,效果更好。
多谢 markdown:victory: <p>有没技术交流群呀? 或者共享些 资料 ?</p>
页:
[1]