跳到主要内容

Mesh 2.4G 多点(10-100点)通信

前言

基于 ShineBlink C1 (Core)实现 Mesh 通信功能。注意:只能用C1不能用C2,因为C2 不支持Mesh。

C1Mini

一、实现功能

本章节实现了多个Core设备进行通信,其中一个设备是server、其他设备都是client。每当client设备按下电路板上的BTN1按键时,会向server上传数据。当server收到client的数据并验证通过后也会切换电路板上的LED1的亮灭状态,同时client也会收到server下发的命令,client验证命令通过后也会切换电路板上的LED1的亮灭状态。

另外server和client的电路板上的LED2都用来指示连接状态,只有当两边的LED2都同时亮时,才说明二者可以开始正常通信。

注意:由于Core内部自带2.4G无线功能,所以无需外部器件或模块即可实现本章节的无线通讯功能。但如果用了2.4G功能,Core的Ble蓝牙功能和USB功能就无法使用了,这一点开发者需要注意。

网络拓扑图如下:

ot-network_480

上图中连接云端的白色正方形是server,表明如果需要将所有节点和外部其他网络通信,可以在server上实现网关的功能。

二、原理及实现

实现原理和代码请参考《Mesh 2.4G 多点(10个点以内)通信》文章,代码框架基本不需要修改。

唯一不同就是在Client客户端的名字ID(ClientName)的命名上增加了除“CONTROL0”~“CONTROL9”这10个点以外的其他任意8字符名字。使用上有如下区别:

  • 如果希望server下发给某个client的命令不被干扰,就需要在server上为这个client分配专有的命令缓存器,那么这个client的命名必须为“CONTROL0”~“CONTROL9”这10个中的一个。
  • 其他情况下,如果某个client节点只是上传自己的数据,不需要接收server下发的命令,那么这个client的命名可以为任意的8字符名字,比如"abcd1234","client01"等等。这样的节点理论可以支持上百个。