问题标签 [xbee]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xbee - XBee Series 2 通讯问题——无法建立网络
我面临在 2 个 XBee S2 模块之间形成网络的问题。我怀疑问题出在运营渠道上。人们告诉我,在系列 2 中,频道是自动选择的,但这并没有发生。我已经完美地配置了两个模块,但是两个模块的操作通道不一样。
所以我的问题是:我应该通过 USB 适配器同时连接 2 个 XBee,以便它们可以在同一通道上运行还是什么?
python - 从 XBee 接收的 pySerial 数据未正确显示
我正在尝试让多个 XBee 作为传感器和输出设备运行,以将它们的样本发送到如下所示连接的协调器 XBee,并在收到指示时打开和关闭这些远程 XBee。我的这个 'received data' 问题似乎类似于 Stack Overflow question pySerial and reading binary data,但我认为该问题及其解决方案并未回答它。
那么哪些步骤会重现问题呢?
在运行Debian Wheezy (7.0)的Raspberry Pi上使用 python-xbee(版本 2.1.0 或 2.0.0)、pySerial 最新版本 2.6.0、Python 2.7.3 。
运行下面的脚本
所有 XBee 均为 XB24-Z7-WIT-004 系列 2。协调器处于 API2 模式。我在 AT 和 API1 或 API2 模式下尝试了我的双传感器 XBee,没有任何区别(固件版本的注释反映为附加的 .py 脚本中的注释)
什么是预期的输出?我看到了什么?
我希望作为脚本的结果接收到的地址,或者作为Minicom的输出是正确的 'source_addr_long',即 x13\xa2\x00\x40\x79\xe6\x5f,但我收到的是 \x00\x13\ xa2\x00@y\xe6. 'source_addr' 返回 \xe3+。(“源地址”相关的东西由 python_XBee 库处理/完成。)这是我的脚本:
这是输出:
请注意输出中从上述@y开始的问题。请注意接收到的正确数据,当我将同一个协调器连接到 Windows PC 时(这是从远程 XBee 接收的整个数据包):
我使用的是什么版本?在什么操作系统上?
在运行 Debian Wheezy (7.0) 的 Raspberry Pi Model B 上使用 python-xbee(版本 2.1.0 或 2.0.0)、PySerial 最新版本 2.6.0、Python 2.7.3(最近升级到最新版本,试图解决这个问题。
笔记:
当我使用 ZigBee Operator 软件(基于 Windows,通过老式 COM 端口)时,地址和整个消息都可以正确发送和接收。最后,pySerial 很可能没有任何问题,我可能只是在代码中搞砸了它,尽管这并不能解释为什么Miniterm已经显示它是错误的。此外,所有串行端口参数都已检查,XBee 在 Vcc 和接地引脚之间仔细解耦或过滤等。
更新,经过进一步调查,如果有的话,问题可能与 pySerial 库有关,而不是与 python-XBee 库有关。我基于以下内容(参考我的帖子前面部分列出的预期结果,以及上面列出的实际结果:
因此,我的理论是,由于某种原因,pySerial 在 \x00\x13\x2A\x00 中的最后一个 x00 之后停止处理流/字符串(或任何正确的技术术语),然后开始添加与十六进制等效的 ASCII 字符字符/值代替。在Raspberry Pi上使用依赖于pySerial库(Miniterm)的终端程序,我已经收到错误的数据。这是在我的剧本之前。(由于后来的发现,请参阅对这篇文章的评论。)
正确接收“硬件地址”对我来说很重要,因为 XBee 中的 MY 地址可以动态更改(我认为协调器会即时分配它)。当向特定 XBee 模块发送特定命令时,这将是一个问题,显然要考虑到非常特定的结果。我该如何解决这个问题?
xbee - 为什么两个 XBee 单元不能通信?
我已按照XBee 系列 2 点对点通信中概述的步骤进行操作,一切似乎都 100% 正常工作。但是,当我打开X-CTU并单击“Digi Device Discovery”时,两个 XBee 单元找不到彼此。
我的怀疑是因为协调器节点在通道上,路由器有一个操作通道“12”,而协调器节点有一个操作通道“11”。
但我无法通过 X-CTU GUI 更改其中任何一个。
如何更改频道或诊断此问题?
我在某处在线阅读过这两个 XBee 单元可能有不同版本的固件。如果这是问题所在,我如何确定两个设备上安装了哪个版本的固件?
协调器单元的版本为 20A7,路由器节点的版本为 22A7。
这可能是问题吗?
更新:
协调员简介:
路由器配置文件:
java - XBee 双向通信(发送方和接收方)同时进行
假设我正在尝试制作一个聊天程序,就像 YouTube 视频XBee 基础知识 - 第 2 课 - AT 模式下两个 XBee 之间的简单聊天程序一样。
在这段视频中,他解释说一个 XBee 是一个发送者,它使用 Arduino 向另一个 XBee 发送“Hello world”。
但是,XBee 可以同时发送和接收数据吗?路由器是否能够与协调器通信,反之亦然?
此外,我想编写自己的软件来接收和发送数据,而不是使用 Arduino 软件。是否有任何库和 API?
文章或视频会很好。
xbee - 为什么 API 模式不适用于两个 XBee 单元?
我有两个 XBee Pro 系列 1 装置。它们都处于 AP=2 模式(API 模式)。我已按照XBee 配置中“系列 1”部分中概述的说明进行操作。我尝试执行“ZnetSenderExample.java”,我可以看到它试图发送一个非常简单的“Xbee”字符串。
但是,我一直在接收端超时,说它永远不会得到任何数据。
另外,我尝试了此页面上的单播示例并发现了相同的行为。在 API 模式下,它在 X-CTU 中不起作用。
我正在使用固件 10EC。
我该如何解决这个问题?
xbee - 当 AO 设置为 3 时,XBee ZDO 活动端点请求不会传递到 UART
我使用 X-CTU 配置了我的XBee 2 模块,一个作为路由器API,另一个作为协调器 API,通过将 AO 设置为 3。但是当我发送 ZDO 活动端点请求时,它不会传递到路由器端的 UART . 但是对于我们的应用程序,我们希望将请求传递到 UART,以便控制器可以处理请求。我尝试了 XB24-ZB 和 XB24-SE,但 XBee 本身正在为 ZDO 请求提供响应。
当我使用配置文件 ID 0x0109 时,ZDO 请求被传递到 XB24-ZB 和 XB24-SE 的 UART。但根据数据手册,必须将配置文件 ID 设置为 0 才能发送 ZDO 命令。但是当我这样做时,请求不会传递给 UART。我为 XB24-ZB 路由器 API 使用固件版本 23A7,为 XB24-ZB 协调器 API 使用 21A7。
processing - 处理跳过每隔一个
我正在尝试将 XBee 输出的片段分组到一个连接它们的变量中。我正在使用处理来编码和编译。我遇到的问题是输出(println)正在跳过每隔一个字节(也许这是错误的术语)。因此 i = 4 到 11 的 XBee 输出应如下所示:
0,19,162,0,64,121,230,206(这是从十六进制转换而来的 XBee 地址)。
但是 println 显示了这一点:
19,0,121,206,125,1,0,3(开始进入输出的其他部分)。
后来,我通过使用数组尝试了不同的路线。它仍然会跳过所有其他条目,我发现它与我对 i == 126 的检查有关。是否有另一种方法可以进行这样的检查?
将此绘图部分替换为下面的部分。遵循起来更简单。这是一个结果相同的测试......
原始代码
c - 为什么相同的有效载荷在三天后会有看起来略有不同的 IEEE 802.15.4 帧?
我有两个xbee S1可以成功地相互通信。但我试图让其中一个从Atmel 收发器接收IEEE 802.15.4帧。当然,目标是“欺骗”一个 xbee,使其认为它正在与另一个 xbee 通话,而实际上它正在与 Atmel 收发器通话。据我所知,这样做的唯一方法是使用嗅探器监视 xbee 传输的数据包,并将它们克隆到 Atmel 收发器上。
这是我的发现:
当从 xbee S1 输入单个 ASCII 字符“m”时,数据包嗅探器会显示以下流量:
发送单个 ASCII 字符“k”时,嗅探器显示以下内容:
3 天前发送相同的 ASCII 字符“k”时,嗅探器显示以下内容:
除了时间戳,为什么payload一天会有“a d ”而另一天有“a**23*”?
如果社区的无线网络专家能够参与进来,将不胜感激。
linux - 树莓派上的 XBee Linux 串口
我有 2 个 Adafruit XBee 2 模块,每个模块通过 USB 集线器通过 1 条 FTDI 电缆(ttyUSB0 和 ttyUSB1)连接到 Raspberry Pi。我将两个 XBee 模块独立配置为在同一个 PAN 上,然后我尝试用一个在 while 循环中读取,并在另一个的 while 循环中写入一条简单的消息。出于某种原因,我从未从第二个端口读取任何内容。
这是我正在使用的测试代码。
配置:
读:
写:
我绝对可以配置每个模块 - 这是配置 ttyUSB0 的示例输出:
尽管我可以看到我在一个 while 循环中写入 ttyUSB1 设备,但在 ttyUSB0 上我没有收到任何东西。
关于为什么会发生这种情况的任何想法?谢谢!