如何使用 nRF24L01(+) 2.4GHz 无线收发器查找管道地址

Rob*_*ert 4 arduino radio-transmission

我想弄清楚是否有一种有效的方法来计算 rf24 无线电的管道地址。为了使两个无线电能够通信,它们必须位于同一通道上并且具有相同的读写管道地址。

我现在能想到的唯一方法就是使用暴力,消除搜索次数的最简单方法是至少知道无线电频道——我认为这是最容易的部分。理论上(我猜),我可以将我的“搜索”收音机设置为正确的频道,将其设置为仅“收听”,然后尝试一个又一个地址。但这效率很低,因为地址可以是任何 40 位十六进制值。所以有 2^40 个可能的键——我不想一次花 2 周的时间试图找到“监听”地址。

有没有更好的办法?是否有一种方法可以向通道发送信号并获取该通道上可用的所有管道地址?基本上除了我的方法之外什么都没有。

编辑1:

我想知道是否有一种方法可以修改这样的扫描仪: https: //github.com/TMRh20/RF24/blob/master/examples/scanner/scanner.ino,以便它捕获所有“可见”数据包给定的频道,然后找出地址。根据 nRF24L01(+) 规范“数据包包含前导码、地址、数据包控制、有效负载和 CRC 字段”。这会将可能的地址数量缩小到很少。

小智 5

或者您可以执行以下操作:

尽管设备/节点地址被指定为 5 字节 eq。40位,您可以只指定第一个字节。在这种情况下,剩余的 4 个字节将成为有效负载的一部分。

然后,您只需听 256 个键 (2^8),而不是 2^40。