测试前准备
预定义模块参数
具体配置参数预定义如下:
模块串口通信的波特率为:115200。
测试全家福
一共使用四个DL-LN33 ZigBee模块,四个USB转串口模块。
地址0x0001的模块通过USB转TTL模块与PC的USB口相连,两个模块使用四个引脚相连;
地址0x0002、0x0003、0x0004三个模块只需要通过USB转TTL模块提供3.3V电源和GND即可。
除地址0x0001以外的三个USB转TTL模块的USB口可以通过电脑的USB口、手机充电头、充电宝等方式供电。
提示:
为了记忆方便,模块设置完地址之后,可以在模块上标记模块的地址,方便区分。
上位机网络拓扑软件演示
1. 在DL-LN3X网络拓扑显示软件,右下角选择对应的串口号。
此过程串口监控中,可以看到上位机网络拓扑软件跟模块进行了如下交互:
2. 点击“Node-->Scan Loop”,软件左侧出现对应的几个节点,稍等片刻之后右侧将出现网络拓扑结构,地址列表中背景为绿色的模块,表示成功处于组网中。
扫描节点指令,实际通过串口发送的数据包如下:
3. 点亮模块中的红灯,测试模块间通信是否正常。
点亮模块上红灯的方法:
- 点击左侧“发送”按钮;
- 左键双击右侧某一个节点的图标;
- 右键点击某一个节点的图标,弹出菜单中单击“Red On”。
DL-LN3X网络拓扑显示软件中,点击“指引”下面的“发送”按钮,实际上是让模块上的红灯点亮2S。
串口监控中可以看到实际发送的指令如下:
此指令即是点亮模块上红灯的测试指令。
点击“测试”下面的“打开”按钮,可以看到数据包的测试情况,具体发送的测试指令如下图所示:
4. 查看模块路由。
右键点击某一个节点的图标,单击菜单中的“Show Route”。
连接质量测试
测试前提
地址0x0001的模块与PC通过USB转TTL串口相连;
地址0x0004的模块上电;
地址0x0002和0x0003的模块,未上电。
测试过程
端口 0x23 用于探测两个模块之间的双向链路质量,链路质量为两个模块之间互相发包时,收到数据的信号强度的平均值,信号强度取决于两个模块之间的距离,以及有无遮挡物。如果已知两个模块之间没有遮挡,这个值可以用来估计模块之间的距离。
此端口可接收以下包:
连接质量采集命令:
下面是一个数据包的例子:
FE 06 80 23 01 00 04 00 FF
这个命令将会采集两个模块之间的 RSSI,其中一个模块为收到此包的模块,即地址为 0x0001,另一个模块为 0x0004。即采集目标地址。如此,模块 0x0001 会给模块 0x0004 发送一个采集 RSSI 命令,模块 0x0004 在收到此命令后返回一个 RSSI 数值,模块 0x0001 收到此包后,将综合两个数据,返回此包:
FE 07 23 80 01 00 04 00 2B FF
通过解析返回的数据包,可以求得网络的连接质量。
返回数据含义
向一个没有在网的模块地址发送测试指令:
FE 06 80 23 01 00 02 00 FF
采集链路质量的返回值如果是 0x80(十进制的128) 说明采集信息发送失败了,这有可能是两个节点距离太远,也有可能是因为当时网络的通信非常频繁,因此采集信息无法发出。
信号穿墙能力测试
情景1
四个ZigBee模块放置位置如下:
主卧关门、次卧关门,地址0x0001的模块与0x0004的模块通信测试一切正常。
情景2
入户门关门、次卧关门,地址0x0001的模块与0x0004的模块通信测试一切正常。
由上面的拓扑结构可以看出,地址为0x0003的模块在其中起到了一个桥梁作用,我将地址为0x0002、0x0003的模块断电后测试,发现此时地址为0x0004的模块已经找不到了。
重启上位机网络拓扑软件,发现已经找不到地址0x0004的模块了。
情景3
将地址0x0001的模块挪到客厅,发现两个模块可以正常组网通信。
小结
由上测试可知,DL-LN33 ZigBee模块穿透入户门没有问题,屋内各个卧室和客厅各放置一个模块,基本可以做到室内通信没有死角。