目录

CH582的官方EVT在22年7月更新后,修改了手机配网代码以支持wch mesh手机app。使用该app可以保存手动配网信息,设置订阅地址分组,OTA升级,极大方便了用户管理节点。

老版本的EVT中也有对手机配网的支持,但是只有一条指令,即向节点配置net key、节点主元素地址,并没有涉及IV值。新版本的例程,使用wch meh手机app配网,有两条指令,在配置net key、节点主元素地址前加了一条配置IV值相关的指令,能够给新添加节点配置网络中现在使用的IV值,前提是手机需要先连接到mesh网络中自动获取一下最新IV值。两条指令的操作码在app.c中都可以找到,也可以参考《沁恒MESH APP管理配网应用手册》PDF文件。如果一个网络已经正常跑了一年,再向其中添加一个节点,由于老版本的代码IV值默认设置为0,新添加的节点是无法与网络中现有节点通信的;新版本的代码配合wch mesh能够配置最新IV值,以解决这个问题。

整个网络中的IV_index是需要同步的,否则无法通信。IV值不同步的节点,本该被踢出网络,但是底层中没有做这样的操作,结果只是无法与正常节点通信。网络中每个节点都有一个序列号SEQ,节点每发一则消息,会将SEQ自加1。如果某个节点的SEQ超过一定数值,会触发IV更新机制,这个节点会发出一条IV即将更新的广播,其他节点收到后会记录IV即将更新的状态,在IV更新时将自己的SEQ清零。IV值短则1h长则96h后更新一次,具体看发包频率高的节点到底发了多少包。

手机配网的例程adv_vendor_self_provision_with_peripheral由于增加了OTA功能,编译获得hex文件后,需要与其他三个hex文件合成,否则无法使用。其他三个文件不常改动,可以都放在一个文件夹内,用合并工具合成bin文件的时候方便找文件。

在沁恒官网搜索关键字“mesh”,可以找到合并工具WCH_AssembingFileTool和wch mesh手机app↓

搜索 mesh - 南京沁恒微电子股份有限公司 (wch.cn)

合并工具的使用很简单,勾上框选,选择文件,点击合并文件即可。4个hex的文件顺序任意。合成后的bin文件用ISP工具烧录,烧录不报错即可。

注:最新版的ISP工具整合了合并的功能,可以跳过使用AssemblingFileTool这个工具合并的步骤,直接用ISP工具下载4个hex文件。

最新ISP工具中,下面选4个hex同时下载就行。

接下来看看如何在wch mesh手机app中新增节点

①Network页中点击增加节点

②点击周围等待配网的设备。已配网设备这里搜索不到。

③输入16个字节的网络密钥、地址、节点名称。节点名称不会被配置到芯片程序中,网络密钥和节点地址会。

④点击“配置节点”,配置无误的话会自动返回主页,显示新增节点。

新增后的默认状态是离线。查询节点的在线状态,需要连接到网络中,然后点击刷新状态。查询在线状态只需要手机通过BLE连接随机一个网络中的节点,app会借由这个节点发送mesh消息轮询节点是否在线(同理节点配置、OTA等功能,会经由网络转发,不需要直连待管理节点)。轮询过程中,超时未收到回包,则判断这个节点离线。低功耗节点在轮询发包时不一定能够刚好向朋友节点POLL到查询包,且该app是单线程的,没有后台实时查询回包,低功耗节点回包时可能已经轮询结束,故可能会显示低功耗节点离线,但不一定表示低功耗节点已经脱离网络。app的demo在官网资料压缩包中有,有开发能力的用户可以改进一下。

wch mesh还支持订阅与发布功能的管理

①点击下面的“Group”按钮,切换到分组管理页面。

②点击“增加Group”。新增分组无需连接到网络中。

③在弹出的页面中设置新建的分组。注意分组地址为0xC000~0xFEFF。组名不会被配置到节点芯片中,组地址会。

④点击“确定”后会出现新增的分组。显示目前分组下没有节点设备。

⑤将节点配置到分组中,需要回到Network页面,点击列表中的节点。

⑥点击右上角三个点,点击“添加Group”。

⑦点击“确定”添加到指定分组后,提示“订阅成功”后,可以在Group页面看到分组下多了一个设备。

至此就完成了节点的“订阅”工作。若要发布消息到相应地址,可在Group页面点击分组,在接下来的页面中发布消息。需要删除Group可以点击右上角的三个点。

蓝牙mesh组网实践(手机配网例程配合wch mesh手机app的使用)的更多相关文章

  1. IoT时代:Wi-Fi“配网”技术剖析总结

    导读 近年来,物联网市场竞争激烈,从物联网平台厂商,设备生产商,到服务提供商,都在涌入这片红海.预计到2020年,全球联网设备数量将达到260亿个,年复合增长率达到20%:全球联网设备带来的数据将达到 ...

  2. 【转载】wifi一键配网smartconfig原理及应用

    物联网给我们又提供了一种窃取WiFi密码的好方式:让智能设备主动断线. 同时也提供一种让智能设备连接到恶意WiFi的方式:设备一键配置功能时疯狂广播恶意WiFi的信息. 转自:http://blog. ...

  3. WiFi-ESP8266入门http(3-4)网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信

    网页一键配网(1若为普通wifi直连  2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信 工程连接:https://github.com/Dongvdong/ESP8266_H ...

  4. WIFI智能配网 - SmartConfig

    要开始IoT项目的第一步是什么?当然不是硬件,而是硬件与硬件的连接!即使有各种各样的通信协议没有好的连接方式绝对不行.那外设上没有的屏幕,没有键盘怎末输入密码怎末选择网络?对,这就是WIFI模块最重要 ...

  5. ESP8266开发之旅 网络篇⑧ SmartConfig——一键配网

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  6. ESP8266开发之旅 网络篇⑭ web配网

    1. 前言     目前,市面上流行多种配网方式: WIFI模块的智能配网(SmartConfig以及微信AirKiss配网) SmartConfig 配网方式 请参考博主之前的博文 ESP8266开 ...

  7. 深入学习 esp8266 wifimanager源码解析(打造专属自己的web配网)

    QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷 单片机菜鸟博哥CSDN 1.前言 废话少说,本篇博文的目的就是深入学习 WifiManager 这个gi ...

  8. ESA2GJK1DH1K微信小程序篇: 测试微信小程序APUConfig给WI-Fi模块配网并绑定设备,并通过MQTT控制设备

    前言(源码使用介绍在最后) 一,微信小程序篇小程序下载(该源码为这节测试源代码) 二.有多少人一直在期盼着小程序可以实现SmartConfig或者Airkiss的功能? 来吧!我的这种方式包您满意. ...

  9. 5-(微信小程序篇)关于WiFi模块配网以后利用小程序绑定设备,绑定方式说明

    https://www.cnblogs.com/yangfengwu/p/11625189.html 众所周知:使用微信Airkiss 只能给设备配网,并不能够获取设备的MAC地址信息,但是我在 ht ...

  10. 12-网页,网站,微信公众号基础入门(编写后台PHP程序,实现Airkiss配网)

    https://www.cnblogs.com/yangfengwu/p/11067590.html 首先说一下,这两个地方需要配置一样 网站根目录建个文件夹 airkiss的文件夹 里面放上 ind ...

随机推荐

  1. 双层拖拽事件,用鼠标画矩形,拖动右下角可以再次改变矩形大小,方案一 有BUG

    <template> <div class="mycanvas-container"> <vue-drag-resize :isActive = 't ...

  2. HelloWorld程序的代码编写-Hello World的编译运行

    HelloWorld程序的代码编写 程序开发步骤说明 开发环境已经搭建完毕,可以开发我们第一个Java程序了. Java程序开发三步骤:编写.编译.运行. 编写Java源程序 1. 在 d:\day0 ...

  3. elasticsearch中使用runtime fields

    1.背景 在我们使用es的开发过程中可能会遇到这么一种情况,比如我们的线路名称字段lineName字段在设置mapping的时候使用的是text类型,但是后期发现需要使用这个字段来进行聚合操作,那么我 ...

  4. 新版Bing 搜索后台的.NET 技术栈

    微软在今天在Redmond 线下举办媒体一场活动,发布了新版的微软必应,在桌面上推出了测试版,移动版也即将推出.微软首席执行官纳德拉称Al-powered搜索为公司自云15年以来最大的事情. 2023 ...

  5. 12月21日内容总结——forms组件渲染标签、展示信息、校验数据的一些补充,forms组件参数和源码剖析,modelform组件,Django中间件

    目录 一.forms组件渲染标签 二.forms组件展示信息 三.forms组件校验补充 四.forms组件参数补充 五.forms组件源码剖析 六.modelform组件 什么是modelform组 ...

  6. IDEA翻译插件translate

    1.打开File->Setting 2.plugins->Browse repositories 3.输入"translate",选择排序"Downloads ...

  7. 看完这篇你不能再说不懂SSO原理了!

    这一篇是原理篇,接下来还会有一篇实战篇,实战的相关代码是非常火的一个开源项目叫:xxl-sso 一.简介 单点登录(Single Sign On),简称为 SSO. 它的解释是在多个应用系统中,用户只 ...

  8. find_package()的使用

    find_package()命令是用来查找依赖包的,理想情况下,一句find_package()把一整个依赖包的头文件包含路径.库路径.库名字.版本号等情况都获取到,后续只管用就好了.但实际中往往CM ...

  9. 学习Java Day6

    今天学习了Java的输出,与C/C++不同,Java的输出形式有很多,有许多printf标识符表示的含义各不相同,而且数量众多,其中Java还有表示日期的转换符.

  10. day14-异常处理

    异常处理 1.基本介绍 SpringMVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler映射.数据绑定以及目标方法执行时发生的异常 有两种方案来进行异常 ...