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

标签 arduino radio wireless receiver radio-transmission

我试图弄清楚是否有一种有效的方法来确定 rf24 radio 的管道地址。为了使两个 radio 能够通信,它们必须位于同一 channel 上并且具有相同的读写管道地址。

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

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

编辑1:

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

最佳答案

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

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

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

关于arduino - 如何使用 nRF24L01(+) 2.4GHz 无线收发器查找管道地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38164021/

相关文章:

C++:与 Arduino 的串行接口(interface)

scala - 从 Scala 与 Arduino 交谈

android - 通过 Android 使用 radio 或其他信号跟踪手机在现实世界中的位置

c++ - 模拟本地网络添加新计算机

jquery - 如何在同一页面上制作2个广播流的播放/停止按钮?

memory - 在 Arduino 的 EEPROM 中读取和写入结构

ssl - ESP OTA 通过 https 网络服务器更新

linux - wpa_supplicant 是否支持 WiFi Direct?

wireless - 连接到同一 wifi 的两个设备是否会通过接入点相互通信?

c# - 在 Unity 中同一网络上的 2 部 iOS 手机之间传输小数据