HonestQiao 发表于 2023-12-15 11:04

【nRF7002-DK Wi-Fi® 6开发套件评测】跨开发板 Matter 通讯控制测试

<div class='showpostmsg'><p>在之前的分享&nbsp;<a href="https://bbs.eeworld.com.cn/thread-1266937-1-1.html">【得捷电子Follow me第3期】两块ESP32C3通过Matter 互联实现控制</a>&nbsp;中,已经介绍了两块ESP32C3,通过 Matter 实现关联,然后其中一个做为主控端,控制另外一个。</p>

<p>这篇分享,则使用一块nRF7002-DK开发板,做为主控端,接入Matter,与作为受控端的ESP32C3关联,从而实现nRF7002-DK上的按键,来控制ESP32C3上的LED。</p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>一、硬件了解</strong></span></p>

<p>关于硬件部分,这次就不多说了。</p>

<p>ESP32C3的部分,在<a href="https://bbs.eeworld.com.cn/thread-1266937-1-1.html">【得捷电子Follow me第3期】两块ESP32C3通过Matter 互联实现控制</a>&nbsp;已经详细说明了。</p>

<p>nRF7002-DK开发板,自带有两个用户按键,如下图开发板右下角的Button1、Button2:</p>

<p><img _height="1280" border="0" src="https://bbs.eeworld.com.cn/data/attachment/forum/202310/27/234300vyyf1wzzeuelegaa.png" width="1706" /></p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>二、开发板上的Matter程序</strong></span></p>

<p>ESP32C3受控端的程序,在<a href="https://bbs.eeworld.com.cn/thread-1266937-1-1.html">【得捷电子Follow me第3期】两块ESP32C3通过Matter 互联实现控制</a>&nbsp;中,已经刷好了,这里我们就主要说nRF7002-DK 的。</p>

<p>在nRF SDK 中,提供了Matter的相关实例,从VSCode的nRF Connect 中,可以直接以light_switch为参考来实现。</p>

<p><strong>1. 从样例程序新建工程</strong></p>

<p> &nbsp;</p>

<p>完成后,新的工程如下:</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><strong>2. 编译工程</strong></p>

<p>首先新建nRF7002-DK对应的编译配置:</p>

<p> &nbsp;</p>

<p>然后点击 Actions中的Build,进行编译。</p>

<p>编译时间,要比通用的nRF程序要长,因为涉及到了Matter的部分。</p>

<p>&nbsp;</p>

<p>编译完成后,最终输出信息如下,说明编译成功:</p>

<p></p>

<p>&nbsp;</p>

<p>需要说明的是,如果工程路径中带有中文,可能会编译失败。&nbsp;</p>

<p>&nbsp;</p>

<p><strong>3. 烧录固件到开发板</strong></p>

<p>将开发板接到电脑,然后直接使用Actions中的Flash烧录即可,烧录完成结果如下:</p>

<p> &nbsp;</p>

<p><strong>三、Matter互联测试</strong></p>

<p>现在,两块开发板都准备好了,就可以进行Matter相关的测试了。</p>

<p><strong>1. 设备信息获取</strong></p>

<p>首先,使用串口监听工具监听两块开发板。</p>

<p>然后,长按nRF7002-DK开发板的Button1,5秒以上,串口会输出:</p>

<p>&nbsp;表示接收到了重置按键。如果按短了,会提示取消重置。</p>

<p>&nbsp;</p>

<p>最后,会输出如下信息:</p>

<p> &nbsp;</p>

<p>重点关注上面的Product ID,Pin Code,Discriminator。</p>

<p>Product ID对应ESP32C3编译时的设置DEVICE_PRODUCT_ID。</p>

<p>nRF7002-DK的Product ID,即为下面命令中的node_master。</p>

<p>ESP32C3的DEVICE_PRODUCT_ID,即为下面命令中的node_slave。</p>

<p>&nbsp;</p>

<p>此时,LED1会狂闪,表示需要配网。</p>

<p>&nbsp;</p>

<p>再长按Button2,来启动蓝牙配网模式,至少按5秒,最终输出如下:</p>

<p> &nbsp;</p>

<p>此时,LED1会慢闪,表示配网中。</p>

<p>&nbsp;</p>

<p><strong>2. 通过蓝牙配网</strong></p>

<pre>
<code class="language-bash">SSID=你的WiFi名称
SSPW=你的WiFi密码

# 主控,也就是nRF7002-DK的Product ID
node_master=0x8004

# 受控,也就是ESP32C3的
node_slave=0x8001

# 对应的十进制Product ID
node_master_dec=$(printf "%d" $node_master)
node_slace_dec=$(printf "%d" $node_slave)

# 发送配网信息
chip-tool pairing ble-wifi $node_master $SSID $SSPW 20202021 3840
chip-tool pairing ble-wifi $node_slave $SSID $SSPW 20202021 3840
</code></pre>

<p>&nbsp;</p>

<p>nRF7002-DK开发板配网成功后,输出如下:</p>

<p> &nbsp;</p>

<p>输出中的instance name的最后,就是对应的Product ID。</p>

<p>配网成功后,LED1常亮。</p>

<p>&nbsp;</p>

<p>ESP32C3配网成功后,输出如下:</p>

<p> &nbsp;输出中的instance name的最后,就是对应的DEVICE_PRODUCT_ID。</p>

<p>&nbsp;</p>

<p><strong>3. ACL权限设置</strong></p>

<p>两块板子的网络配置好了,下面就要把他们关联起来,从而可以通过Matter互联和控制。</p>

<p>&nbsp;</p>

<p>使用下面的命令,对nRF7002-DK和ESP32C3进行设置:</p>

<pre>
<code class="language-bash"># 设置受控权限
chip-tool accesscontrol write acl '[{"privilege": 5, "authMode": 2, "subjects": [ 112233, '$node_master_dec' ], "targets": null}]' $node_slave 0x0

# 设置主控权限
chip-tool binding write binding '[{"node":'$node_slave_dec', "endpoint":1, "cluster":6}]' $node_master 0x1
</code></pre>

<p>设置完成后,两块板子输出如下:</p>

<p>&nbsp; 从上面的信息可以,主控端收到了受控端的信息,受控端也收到了主控端的信息了。</p>

<p>&nbsp;</p>

<p><strong>4. 按键测试</strong></p>

<p>现在,按一下nRF7002-DK的Button2,两块板子的输出信息如下:</p>

<p> &nbsp;</p>

<p>从上述输出可以看nRF7002-DK的Button2按键被检测到,然后发送控制指令给ESP32C3控制LED。</p>

<p>每按一次Button2,ESP32C3连接的LED就会交换状态,从而实现亮灭了。</p>

<p>&nbsp;</p>

<p>具体测试的视频如下:</p>

<div></div>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>四、总结</strong></span></p>

<p>Matter真的是门好技术,值得好好研究。</p>

<p>在这次的分享中,通过Matter,不同类型的开发板,能够很方便的互联互通起来,进行控制。</p>

<p>这也正式Matter的精髓所在,将不同类型的碎片化的智能设备,通过统一的Matter,来互联互通到一起。</p>

<p>Nordic对Matter的支持非常完善,使得nRF7002-DK能够快速的跑起来Matter的应用,让开发效率大幅提升。</p>

<p>&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

chejm 发表于 2023-12-15 22:38

<p>楼主的分享十分有用,先收藏起来,慢慢学习,非常感谢楼主的无私奉献</p>

HonestQiao 发表于 2023-12-16 21:15

chejm 发表于 2023-12-15 22:38
楼主的分享十分有用,先收藏起来,慢慢学习,非常感谢楼主的无私奉献

<p>感谢支持!</p>
页: [1]
查看完整版本: 【nRF7002-DK Wi-Fi® 6开发套件评测】跨开发板 Matter 通讯控制测试