1269|7

3926

帖子

1

资源

版主

【平头哥蓝牙Mesh网关开发套件免费试用】+nRF Mesh与灯 实验 (二) [复制链接]

本帖最后由 damiaa 于 2021-10-31 20:15 编辑

                                        【平头哥蓝牙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不一样。如下图:

     屏幕截图 2021-10-30 194730.png

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

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

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

屏幕截图 2021-10-30 201207.png

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

 入网操作其实就几个动作,一个是创建group 组,一个 是入网,一个是节点配置 (一个是appkey,BIND KEY,还一个是开关设备要设置发布地址,灯光设备要设置订阅地址,发布地址和订阅地址可以是:单播地址(unicast address),组播地址(group address)和虚拟地址(virtual address))。

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

     微信图片_2021103112395620.jpg 微信图片_2021103112395610.jpg

微信图片_2021103112395622.jpg

      2,查找设备Provision

微信图片_2021103112395623.jpg 点击addnode查找到两个设备:

微信图片_2021103112395613.jpg 点击灯光设备1,出现

微信图片_2021103112395618.jpg 点击IDENTIFY,出现

微信图片_2021103112395617.jpg 点击PROVSION,设备入网。入网后提示如下

微信图片_2021103112395616.jpg

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

微信图片_2021103112395613.jpg

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

微信图片_20211031181204.jpg

     加appkeys:选第一个就可以。

微信图片_2021103112395624.jpg

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

微信图片_2021103112395612.jpg 选择Generic On Off Server 

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

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

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

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

这个实验就先到这里。

 

此帖出自RF/无线论坛

回复

1477

帖子

3

资源

版主

感谢分享,期待后续

点评

谢谢。  详情 回复 发表于 2021-11-1 08:43

回复

3926

帖子

1

资源

版主

annysky2012 发表于 2021-10-31 22:31 感谢分享,期待后续

谢谢。努力!


回复

1100

帖子

0

资源

版主

流程非常详细,发布也可以单独控制某个节点设备的灯~

点评

是的   发布地址和订阅地址可以是:单播地址(unicast address),组播地址(group address)和虚拟地址(virtual address) 不是group  详情 回复 发表于 2021-11-1 16:47

回复

3926

帖子

1

资源

版主

本帖最后由 damiaa 于 2021-11-1 16:56 编辑
wangerxian 发表于 2021-11-1 16:35 流程非常详细,发布也可以单独控制某个节点设备的灯~

是的   发布地址和订阅地址可以是:单播地址(unicast address),组播地址(group address)和虚拟地址(virtual address)nRF Mesh配置时选择   不是只有group group适合一个按键控制多个灯同事亮灭的时候有用。

点评

虚拟地址一般会在什么情况下使用呀?  详情 回复 发表于 2021-11-1 17:14

回复

1100

帖子

0

资源

版主

damiaa 发表于 2021-11-1 16:47 wangerxian 发表于 2021-11-1 16:35 流程非常详细,发布也可以单独控制某个节点设备的灯~ 是的  ...

虚拟地址一般会在什么情况下使用呀?

点评

虚拟地址(Virtual Address)作用类似与组地址,不同点在于其地址空间为2^16。 虚拟地址一般用法与组播地址类似,可以通过nrf meshapp建立group的那个按钮建立,也可以配置设备的地址为虚拟地址,比如配置switc  详情 回复 发表于 2021-11-1 19:46

回复

3926

帖子

1

资源

版主

本帖最后由 damiaa 于 2021-11-1 19:47 编辑
wangerxian 发表于 2021-11-1 17:14
虚拟地址一般会在什么情况下使用呀?

       


  1. 虚拟地址(Virtual Address)作用类似与组地址,不同点在于其地址空间为2^16。    
  2. 虚拟地址一般用法与组播地址类似,可以通过nrf meshapp建立group的那个按钮建立,也可以配置设备的发布地址和订阅地址为虚拟地址,比如配置switch发布地址和light的订阅地址为同一个虚拟地址,就可以通过switch 控制light。测试发现是一样的。

  3.  

 

点评

大概理解了,看来虚拟地址的定义还是有意义的!  详情 回复 发表于 2021-11-2 09:06

回复

1100

帖子

0

资源

版主

damiaa 发表于 2021-11-1 19:46 wangerxian 发表于 2021-11-1 17:14 虚拟地址一般会在什么情况下使用呀?       &n ...

大概理解了,看来虚拟地址的定义还是有意义的!


回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    推荐帖子
    Nor Flash工作时电源纹波过大

    正在使用一款MX25L12805D 的Nor Flash芯片,程序固件烧录在里面,主芯片boot时候读取改芯片时候,发现电流纹波挺大, 加了470 ...

    再见2019,你好2020”+从技术高工到采购研发的转变

    在过去2019年的一年里: 1、从技术工程师到公司采购技术专业负责人的转变 2、学到了一些采购时的一些谈判技巧 3、从技术 ...

    CircuitPython 电子钟

    用ItsyBitsy M0 Express开发板和铜丝制作的电子钟,使用CircuitPython编程 https://hackaday.io/project/165822-circ ... ...

    嵌入式系统编程定义和应用

    简单来说,嵌入式技术是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗 ...

    C2000 ePWM模块

    以TMS320F28030为例,其它型号可能有差异,不过大同小异。 在TI C2000 DSP中,PWM模块是一个独立的模块,并没有算作通用定时 ...

    msp430的编程器和仿真器

    对于MSP430来说,无论仿真还是烧写程序一般可以通过:JTAG、SBW、BSL接口进行。JTAG、SBW接口可以用于仿真接口,BSL接口不能用 ...

    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表