【问题标题】:Mesh network Xbee, Python网状网络 Xbee, Python
【发布时间】:2015-09-08 18:31:25
【问题描述】:

我有一个使用 Xbees 运行的网状网络。我必须汇总网络中可能的节点(即 20 个)及其地址。我想创建一个脚本来告诉我哪些节点处于打开状态(以防某些节点出于某种原因关闭)。

我该怎么做。

我正在使用以下库:https://pypi.python.org/pypi/XBee

任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • 你试过什么?它奏效了吗?如果没有,你得到了什么输出,你期望什么?
  • 我目前正在编写一个脚本。我有一个家庭 Xbee。我在其中收到来自可穿戴设备的包裹。无论可穿戴设备离家庭 Xbee 有多近,网状网络都可以提供该软件包。问题是我不断收到消息。我想做的是向每个节点发送一个包,看看是否有某种确认。理论上我有这个想法,但我不知道它是否可行,或者是否有更好的方法来解决这个问题(可能是内置函数)
  • 问题是你经常收到消息?你不应该吗?
  • 问题是每个 Xbee 都没有连接微控制器(只有他们的板载一个)所以如果我要创建一个脚本,向每个 xbee 发送特定消息并要求它发回一个作为一种确认,它不知道发送 d 一个,因为它没有外部微控制器。可穿戴设备有一个微控制器,家庭 xbee 也有。
  • 我认为我们还没有解决真正的问题 - 你专注于想了解哪些节点是可联系的,但你说问题是你不断收到消息,这听起来就像节点不是不可联系的。目前,请忽略您提出的问题 - 您遇到的实际问题是什么?

标签: python xbee mesh-network


【解决方案1】:

我假设如果您没有将微处理器连接到远程节点,那么您正在使用它们的远程 I/O 功能。您可以定期向每个节点发送远程 AT 命令(如ATD0 以读取数字输入 0)。或者设置输入采样,让节点向您发送关于其 I/O 线路的定期报告以及更改通知。

不断接收来自远程节点的消息有什么问题?如果您有这么多设备,则必须使用 API 模式,并且您可以保留一个设备表以及您从它们那里听到的最后一个时间戳。如果设备在一定时间内没有报告,您可以将其标记为离线。

【讨论】:

  • 是的,您在问题中链接到的文档在 XBee 对象上显示了 remote_at() 方法。对于输入采样,请阅读 XBee 模块文档的该部分。我相信您将ATDHATDL设置为周期性采样的目标,并且还有其他参数可以配置报告频率,以及I/O线路更改将触发即时报告。
  • 谢谢,我已阅读文档,但不知道具体该怎么做。我知道我要使用的 xbee 的最大数量。我知道有些可能打开或关闭,我想知道哪些是打开的,因此哪些是关闭的。我有一个所有地址的列表,我想知道哪些地址在上面。有没有办法给每个人都寄一个包裹,看看我是否得到回应?但问题在于,考虑到没有连接微控制器,xbees 如何知道何时必须发送响应?
  • XBee 模块自己响应远程 AT 命令——它不会通过串行端口传递到连接的主机。您应该能够保留所有模块的列表/表格,包括它们的地址,以及您上次发送和上次接收消息的时间戳。甚至可能会发送一些没有响应的消息。从这些信息中,您可以判断哪些已离线。
猜你喜欢
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多