點(diǎn)擊上方“嵌入式從0到1”,選擇“置頂/星標(biāo)公眾號(hào)”
干貨福利,第一時(shí)間送達(dá)!
測(cè)試前準(zhǔn)備
預(yù)定義模塊參數(shù)
具體配置參數(shù)預(yù)定義如下:
模塊ID | 地址 | 信道 | 網(wǎng)絡(luò)ID | 備注 |
---|---|---|---|---|
1 | 0x0001 | 0x0F | 0x1234 | 主節(jié)點(diǎn),與PC連接 |
2 | 0x0002 | 0x0F | 0x1234 | |
3 | 0x0003 | 0x0F | 0x1234 | |
4 | 0x0004 | 0x0F | 0x1234 |
模塊串口通信的波特率為:115200。

測(cè)試全家福

一共使用四個(gè)DL-LN33 ZigBee模塊,四個(gè)USB轉(zhuǎn)串口模塊。
地址0x0001的模塊通過(guò)USB轉(zhuǎn)TTL模塊與PC的USB口相連,兩個(gè)模塊使用四個(gè)引腳相連;
DL-LN33 ZigBee模塊 | USB轉(zhuǎn)TTL串口模塊 |
---|---|
Rx | TXD |
Tx | RXD |
VCC | 3V3 |
GND | GND |
地址0x0002、0x0003、0x0004三個(gè)模塊只需要通過(guò)USB轉(zhuǎn)TTL模塊提供3.3V電源和GND即可。
除地址0x0001以外的三個(gè)USB轉(zhuǎn)TTL模塊的USB口可以通過(guò)電腦的USB口、手機(jī)充電頭、充電寶等方式供電。
提示:
為了記憶方便,模塊設(shè)置完地址之后,可以在模塊上標(biāo)記模塊的地址,方便區(qū)分。
上位機(jī)網(wǎng)絡(luò)拓?fù)滠浖菔?span style="display: none;">
1. 在DL-LN3X網(wǎng)絡(luò)拓?fù)滹@示軟件,右下角選擇對(duì)應(yīng)的串口號(hào)。

此過(guò)程串口監(jiān)控中,可以看到上位機(jī)網(wǎng)絡(luò)拓?fù)滠浖K進(jìn)行了如下交互:

2. 點(diǎn)擊“Node-->Scan Loop”,軟件左側(cè)出現(xiàn)對(duì)應(yīng)的幾個(gè)節(jié)點(diǎn),稍等片刻之后右側(cè)將出現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),地址列表中背景為綠色的模塊,表示成功處于組網(wǎng)中。

掃描節(jié)點(diǎn)指令,實(shí)際通過(guò)串口發(fā)送的數(shù)據(jù)包如下:

3. 點(diǎn)亮模塊中的紅燈,測(cè)試模塊間通信是否正常。
點(diǎn)亮模塊上紅燈的方法:
點(diǎn)擊左側(cè)“發(fā)送”按鈕; 左鍵雙擊右側(cè)某一個(gè)節(jié)點(diǎn)的圖標(biāo); 右鍵點(diǎn)擊某一個(gè)節(jié)點(diǎn)的圖標(biāo),彈出菜單中單擊“Red On”。
DL-LN3X網(wǎng)絡(luò)拓?fù)滹@示軟件中,點(diǎn)擊“指引”下面的“發(fā)送”按鈕,實(shí)際上是讓模塊上的紅燈點(diǎn)亮2S。
串口監(jiān)控中可以看到實(shí)際發(fā)送的指令如下:

此指令即是點(diǎn)亮模塊上紅燈的測(cè)試指令。
點(diǎn)擊“測(cè)試”下面的“打開(kāi)”按鈕,可以看到數(shù)據(jù)包的測(cè)試情況,具體發(fā)送的測(cè)試指令如下圖所示:

4. 查看模塊路由。
右鍵點(diǎn)擊某一個(gè)節(jié)點(diǎn)的圖標(biāo),單擊菜單中的“Show Route”。

連接質(zhì)量測(cè)試
測(cè)試前提
地址0x0001的模塊與PC通過(guò)USB轉(zhuǎn)TTL串口相連;
地址0x0004的模塊上電;
地址0x0002和0x0003的模塊,未上電。
測(cè)試過(guò)程
端口 0x23 用于探測(cè)兩個(gè)模塊之間的雙向鏈路質(zhì)量,鏈路質(zhì)量為兩個(gè)模塊之間互相發(fā)包時(shí),收到數(shù)據(jù)的信號(hào)強(qiáng)度的平均值,信號(hào)強(qiáng)度取決于兩個(gè)模塊之間的距離,以及有無(wú)遮擋物。如果已知兩個(gè)模塊之間沒(méi)有遮擋,這個(gè)值可以用來(lái)估計(jì)模塊之間的距離。
此端口可接收以下包:
連接質(zhì)量采集命令:
數(shù)據(jù) | 長(zhǎng)度 | 意義 |
---|---|---|
采集目標(biāo)地址 | 2 Byte | 采集 RSSI 的另一個(gè)模塊的地址,不可為 0x0000 和 0xFFFF |
下面是一個(gè)數(shù)據(jù)包的例子:
FE 06 80 23 01 00 04 00 FF
這個(gè)命令將會(huì)采集兩個(gè)模塊之間的 RSSI,其中一個(gè)模塊為收到此包的模塊,即地址為 0x0001,另一個(gè)模塊為 0x0004。即采集目標(biāo)地址。如此,模塊 0x0001 會(huì)給模塊 0x0004 發(fā)送一個(gè)采集 RSSI 命令,模塊 0x0004 在收到此命令后返回一個(gè) RSSI 數(shù)值,模塊 0x0001 收到此包后,將綜合兩個(gè)數(shù)據(jù),返回此包:
FE 07 23 80 01 00 04 00 2B FF

通過(guò)解析返回的數(shù)據(jù)包,可以求得網(wǎng)絡(luò)的連接質(zhì)量。
返回?cái)?shù)據(jù)含義
數(shù)據(jù) | 長(zhǎng)度 | 意義 |
---|---|---|
采集目標(biāo)地址 | 2Byte | 采集 RSSI 的另一個(gè)模塊的地址,不可為 0x0000 和 0xFFFF |
連接質(zhì)量參數(shù) | 1Byte | 有符號(hào)數(shù)。表示兩個(gè)節(jié)點(diǎn)之間的連接質(zhì)量,數(shù)值越高表示兩個(gè)節(jié)點(diǎn)間的連接質(zhì)量越好。如果此數(shù)值為-128(0x80)說(shuō)明節(jié)點(diǎn)沒(méi)有收到對(duì)方返回的包,即數(shù)據(jù)。 |
向一個(gè)沒(méi)有在網(wǎng)的模塊地址發(fā)送測(cè)試指令:
FE 06 80 23 01 00 02 00 FF

采集鏈路質(zhì)量的返回值如果是 0x80(十進(jìn)制的128) 說(shuō)明采集信息發(fā)送失敗了,這有可能是兩個(gè)節(jié)點(diǎn)距離太遠(yuǎn),也有可能是因?yàn)楫?dāng)時(shí)網(wǎng)絡(luò)的通信非常頻繁,因此采集信息無(wú)法發(fā)出。
信號(hào)穿墻能力測(cè)試
情景1
四個(gè)ZigBee模塊放置位置如下:

0x0001 | 0x0002 | 0x0003 | 0x0004 | |
---|---|---|---|---|
位置 | 次臥 | 次臥 | 客廳 | 主臥 |
主臥關(guān)門(mén)、次臥關(guān)門(mén),地址0x0001的模塊與0x0004的模塊通信測(cè)試一切正常。

情景2

0x0001 | 0x0002 | 0x0003 | 0x0004 | |
---|---|---|---|---|
位置 | 次臥 | 次臥 | 客廳 | 走廊 |

入戶門(mén)關(guān)門(mén)、次臥關(guān)門(mén),地址0x0001的模塊與0x0004的模塊通信測(cè)試一切正常。
由上面的拓?fù)浣Y(jié)構(gòu)可以看出,地址為0x0003的模塊在其中起到了一個(gè)橋梁作用,我將地址為0x0002、0x0003的模塊斷電后測(cè)試,發(fā)現(xiàn)此時(shí)地址為0x0004的模塊已經(jīng)找不到了。

重啟上位機(jī)網(wǎng)絡(luò)拓?fù)滠浖l(fā)現(xiàn)已經(jīng)找不到地址0x0004的模塊了。

情景3
將地址0x0001的模塊挪到客廳,發(fā)現(xiàn)兩個(gè)模塊可以正常組網(wǎng)通信。

小結(jié)
由上測(cè)試可知,DL-LN33 ZigBee模塊穿透入戶門(mén)沒(méi)有問(wèn)題,屋內(nèi)各個(gè)臥室和客廳各放置一個(gè)模塊,基本可以做到室內(nèi)通信沒(méi)有死角。
參考閱讀
2.4G ZigBee無(wú)線自組網(wǎng)mesh網(wǎng)絡(luò)模塊簡(jiǎn)介
DL-LN33 ZigBee模塊指令分析/地址和組網(wǎng)信息的修改
- END -