上一期完成了通过NRF52840做RCP,在ESP32跑通Thread,接下来开始研究在NRF52840上做一个Thread节点,以期能最终与ESP32通讯.先在NRF52840上跑CLI.这样两边都可以用命令行来操作,灵活性大一些,方便研究Thread.

这次的Thread CLI是基于NRF52的NCS(nordic connect sdk)来跑的,用的版本是v1.5.0,直接在SES(SEGGER Embedded Studio)里通过菜单栏的File->open nrf connect sdk project,然后在Projects里选择Thread里的cli,然后板子名选择nrf52840dk_nrf52840,然后OK.

在/v1.5.0/nrf/samples/openthread/cli工程目录下创建一个nrf52840dk_nrf52840.overlay文件(因为我的板子不是nrf52840dk板,是一个自己自定义的nrf52840的板子,所以串口所在的pin与nrf52840dk板子不一样).然后修改nrf52840dk_nrf52840.overlay的内容为:

&uart0 {
tx-pin = < 20 >;
rx-pin = < 22 >;
};

然后跑一下SES里的菜单栏的Project->Run CMake,然后Build一下并把固件下载到板子里.

固件跑起来后应该就会在串口上打印如下内容(使用的串口软件为PuTTY):

然后开始与之前的ESP32+NRF52840的那套做一个联调.给ESP32这边上电.打印如下:

然后在ESP32这边创建一个新的网络参数,命令如下截图所示:

这次创建的网络的Master Key是1772766fa3143153ae3f1e8a249bae62,这个Key是入网所需的唯一数据(当然也可提供信道,这样入网会快,但不是必须).

然后在NRF52840的节点那边把这个Key设置进去.(注意,在使用有关dataset的命令的时候可能串口会没响应一段时间,耐心等等就好了)