黑家伙,

我使用3 xbee s2和1 arduino。Xbee A作为协调器API, Xbee B&C作为路由器AT。它们点对多点通信。我想从协调器获得rssi &我使用这个代码:

rssi = pulseIn(digitalPin, LOW, 200);以(rssi);

我的arduino串行监视器将显示值。如果我的路由器远离坐标,它的值会更大。

问题1:在我的串行监视器上,这些值的单位是什么?dB, dBm还是十六进制值?

问题2:我想知道每个xbee B和xbee C在与协调器通信(点多点)时的RSSI值是多少?

有人能帮我吗?
由于之前……
很抱歉如果我的英语不好,希望你能理解: slight_smile:

1像

我不知道你连接的是什么引脚,但你为什么不直接查询DB命令呢?

我使用引脚6 xbee连接到一个数字引脚arduino。

你能给我解释一下这些DB命令吗?
我使用arduino,因为我得到的rssi值将用于打开蜂鸣器。

谢谢。

DB命令是XBee模块上的AT命令,用于读取最后收到的数据包的RSSI级别。

如果我有两个向协调器发送数据包的终端设备,如何知道哪个RSSI值属于哪个终端设备?我可以解析API帧以找到接收到的数据包的来源,并在中间读取pin6(或使用DB命令)以获得RSSI,但似乎我的技术不够好,无法得出读取RSSI确实属于该数据帧的结论。

DB命令和RSSI值仅报告接收到的最后一个数据包的值。除非终端设备与你的协调器直接关联,否则你得到的值将是父路由器向协调器发送数据的值。

在我的情况下,多个终端设备直接与协调器相关联,因此使用DB命令获取RSSI是可以的。但是我如何知道报告的RSSI值来自哪个终端设备?

你将需要使用API模式,它会给你发送数据的人的64位地址,或者你需要在你的有效载荷中添加某种地址,表明是谁发送的。