使用Nordic nRF52840 Dongle跑通mesh的第一個例程
nRF52840 Dongle最早由Nordic 公司在2018年推出,Nordic公司宣稱nRF52840 Dongle是一種小型,低成本的USB Dongle。官方提供了MESH SDK供開發(fā)人員使用。本文梳理了Nordic nRF52840 Dongle作為mesh節(jié)點(diǎn)開發(fā)流程,主要介紹了開發(fā)環(huán)境、環(huán)境搭建、代碼修改、固件下載部分。
一、開發(fā)環(huán)境
軟件準(zhǔn)備:使用SEGGER公司的IDE進(jìn)行開發(fā)。SDK使用Nordic官方的SDK。
硬件準(zhǔn)備:Nordic nRF52840 Dongle。這里我選用RFstar的RF-DG-40A,點(diǎn)擊下圖可購買。
二、環(huán)境搭建:
1.開發(fā)工具下載
SEGGER IDE下載地址:https://www.segger.com/
Nordic的MESH SDK目前只支持在這款I(lǐng)DE下開發(fā)。
2.官方MESH SDK與標(biāo)準(zhǔn)庫下載
SDK下載地址:https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK-for-Mesh/Download#infotabs
3.IDE安裝
安裝路徑可以根據(jù)個人習(xí)慣安裝(安裝不能帶有中文路徑),其他配置就保持默認(rèn)參數(shù)。
4.打開mesh SDK工程(我們使用light_switch工程做演示)
5.Mesh工程環(huán)境配置,選擇tools,點(diǎn)擊Options設(shè)置庫環(huán)境。
6.在“Global Macros”處把路徑修改成下載的官方庫路徑。
7.工程配置完成,按F7編譯就可以編譯成功。
三、代碼修改
Nordic的MESH SDK 的組網(wǎng)需要下載三款不同的程序,這里演示的是light_switch的server和client,還有examples目錄下的provisioner工程。
Server工程是mesh的light燈的demo,client工程是switch開關(guān)的demo。Provisioner工程是控制周圍MESH設(shè)備組網(wǎng)的demo。
1.Sdk_config.h修改(三個工程均有這兩個文件,都需要修改)。
原代碼:
修改后:
2.pca10056.h修改。
原代碼:
修改之后:
3.Server 工程Simple_hal.c修改。
原部分代碼:
修改之后:
4.Client 工程main.c修改后:
5.Provisioner工程 main.c修改后:
四、程序下載:
1.依次燒寫server工程、Provisioner工程和Client工程的程序。使用SEGGER燒寫,SEGGER 使用J-LINK下載程序,接好線之后首先點(diǎn)擊connect J-link連接J-LINK。
2.然后點(diǎn)擊Erase All擦除。最后點(diǎn)擊Download下載程序。
3.三者都上電之后,按Provisioner的Button1開始mesh自組網(wǎng)。
4.組網(wǎng)成功后,按Client的Button可以控制server的LED1的亮和滅。