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的使用) - JayWell - 博客园 (cnblogs.com)