芯片开放社区
直播中

龙献益

7年用户 1007经验值
私信 关注
[技术讨论]

【平头哥蓝牙Mesh网关开发套件免费试用】+nRF Mesh与灯实验

【平头哥蓝牙Mesh网关开发套件免费试用】+nRF Mesh与灯 实验

设备和节点(Devices and Nodes

一个设备成为了蓝牙mesh网络的一部分,我们就把它叫做节点(node)。 反之它叫做“未配网的设备”(unprovisioned devices)。把未配网的设备变成节点的过程我们把它叫做 “配网provisioning

元素(element)

比如一组大灯在一个物理设备里面有三个子灯,每个子灯都可以通过寻址访问,子灯就称之为元素(element),大灯称之为节点(node)。每个元素对应一个单播地址(unicast address)。

蓝牙mesh模型(Model

Mesh的应用定义的是使用“发布-订阅(publish-subscribe)”的典型的“服务器-客户端(client-server)”的架构。定义了三种不同的模式, Client, Server 和Control。

Server model: 定义了状态states, 状态转换 state transitions, 状态绑定state bindings 和包含了哪些消息,当然也同样定义了与这些消息,状态,状态转换相关的行为Behaviors。

Control model:具备client model的功能与其他的server model进行交互,同时也可以有server model功能与其他client model进行交互。内置了逻辑控制层(一套规则和行为在各个与之连接的模型中进行协调交互)。

Client model: 没有定义任何的状态States,但是它定义了要收发哪些消息。定义这些消息是为了GET,SET或者获取在Server models里面定义的状态。

每个Model对应一个Model ID(可以分SIG ModelID和Vendor Model ID),类似这个Model的地址。

地址(Addresses

  在蓝牙mesh里面定义了三种类型的地址:单播地址(unicast address),组播地址(group address)和虚拟地址(virtual address)。  

消息,状态和属性(Message,States and Properties)

  通过消息可以获取和改变状态值,也可以获取属性值。例如开关的读取和控制消息。消息是蓝牙Mesh网络中,节点与节点之间进行数据传输的最小单元。

  例如:一个onoff命令即为一条消息,一个调节亮度的命令也是一条消息。

  要进行某种操作,就是调用消息这一基本机制。一个给定的消息类型代表了一个对状态的操作或者对多个状态的采集。所有的消息都可以分成三种简单类型:get 、set 、 status。

  大部分的mesh消息都是对状态进行操作的,只有特别的和属性相关的消息,才会对属性进行操作。

  发布和订阅(Publish/Subscribe

在蓝牙mesh里面发消息的动作我们叫做发布(Publish)。告诉别人什么事情发生或者做什么事情就叫做发布。谁对某些消息感兴趣就可以订阅这些内容。节点发布消息到单播地址,组播地址或者虚拟地址。

   节点有兴趣接收这些数据的可以订阅这些地址。

  状态绑定(Bound States

   当一个状态绑定到另一个状态,在一个上面的改变将作用于另一个的改变。

    蓝牙Mesh的Key(DevKey,AppKey, NetKey

   AppKeys用于保护上层传输层的通信,NetKeys用于保护网络层的通信。 两种类型的密钥在节点之间共享。 还有一个设备密钥(DevKey),它是每个节点唯一的特殊应用密钥,只有节点和配置客户端知道,并用

   于保护节点和配置客户端之间的通信。

   双灯组合实验

   烧录灯1和灯2模块: 剑池CDK集成开发环境生成和编译mesh_light_node_demo,注意修改uuid,使下载到2个灯的uuid不一样。如下图:

      

    烧录时mac地址要改得不一样。以后所有的设备烧录都要这样。否则一个mesh网络里面有mac地址一样的设备就会有问题。

    设备烧录时要连接好串口,J5 TM拨到VCC,然后按复位后,看到提示uart。。。,把mac地址填好,文件在hex那里加载进去,然后erase和 write,成功后会提示

    如果连上putty 按一下复位,就可以看到如下:

   

   入网操作,打开nRF Mesh,目前最新版本为3.16(手机做配网设备Provisioner

   入网操作其实就几个动作,一个是创建group 组,一个 是入网,一个是节点配置 (一个是appkey,BIND KEY,还一个是开关设备要设置发布地址,灯光设备

   要设置订阅地址,发布地址和订阅地址可以是:单播地址(unicast address),组播地址(group address)和虚拟地址(virtual address))。

   1,配置一个组group(分配地址),组地址后面添加也是可以的:

      

2,查找设备Provision

点击addnode查找到两个设备:
点击灯光设备1,出现

点击IDENTIFY,出现
点击PROVSION,设备入网。入网后提示如下


3,节点配置,点击下面一个进入节点配置


Elements进入配置地址(开关设备设置发布地址,灯光设备设置订阅地址),APP keys设置appkey 都搞得一样就可以组网。

加appkeys:选第一个就可以。


点击Elements右边符号进入配置地址:

选择Generic On Off Server

配置BIND KEY订阅地址 SUBSCRIBE 如果是SWITCH就设置发布地址SET PUBLICATION 可以选择组或其他地址。

配置好了后组里面就出现一个ON OFF的图标,可以控制灯光亮灭了。


另外一个灯也可以一样配置,如果配的订阅地址在一个组group里,那就一个开关可以控制两个灯同时亮灭,如果放到两个group里,那就单独控制。

实验时也可以通过putty链接板子看到提示信息。

这个实验就先到这里。




文章转载自:平头哥芯片开放社区 作者:damiaa

更多回帖

发帖
×
20
完善资料,
赚取积分