12

我正在开展一个项目,在一个区域安装 100 多个温度传感器节点,所有这些节点都执行相同的功能。他们发布的数据是传感器 ID 和读数。我正在使用 AWS-IOT 作为后端。

现在,为此,我认为我需要在 aws-iot 中为每个节点创建 1 个“事物”,我认为这极难维护且不可扩展。

所以我的问题是,如何将多个节点连接到 AWS-IOT 中的同一个“事物”,以便集群易于管理。有没有其他方法可以有效地管理集群?欢迎任何意见。谢谢。

4

5 回答 5

5

面临类似的困境以及在 AWS IoT 管理控制台上创建太多“事物”的不切实际;我做了一些研究,发现 AWS 强烈反对将多个设备连接到同一个“东西”。

无论如何,不​​可能让使用相同 MQTT id 的两个不同节点连接到同一事物(具有相同 id 的最后一个连接节点会踢出先前连接的节点),尽管您可以在一些代码的帮助下使用您的客户端 ID。

我了解到,实际上您不需要“东西”来连接到 AWS IoT,只需一个证书即可;并且您可以通过代码在 AWS IoT 服务上创建元素。

所以,总而言之;我自己也遇到了类似的问题,我在下面遇到了这些信息,发现它对我的案例很有用并在这里分享。 https://forums.aws.amazon.com/thread.jspa?threadID=234102

于 2017-05-11T20:12:20.313 回答
2

这样做的唯一方法似乎是创建自己的网关,在将数据发送到 AWS IoT 之前聚合数据。您不能有多个具有相同客户端 ID 的 MQTT 连接。

使用 API 自动将证书和私钥分配给节点。传感器 ID 可用作事物名称和 MQTT 客户端 ID。这需要一些前期工作,但随后您可以利用 AWS IoT 进行所有的内务管理。

于 2016-06-24T16:23:15.193 回答
2

您可以将同一事物与多个 clientId 一起使用。您可以使用传感器 ID 作为客户端 ID。

于 2017-05-01T08:56:09.637 回答
1

您将传感器连接到 AWS IOT,订阅设备主题并开始发布数据。然后您开始接收来自所有传感器的数据。

现在看看,这里有什么问题??? 问题:我们不知道,哪个设备发送了哪些数据?

解决方案:这个问题可以有2个解决方案。

  1. 您创建多个事物并从单独的设备主题个体中分别从传感器获取数据。(您已经拒绝了)
  2. 其次,解决方案是将设备 ID 或客户端 ID 嵌入传感器发送到 AWS IOT 的数据中。并在 AWS IOT 上为该设备主题创建规则,以从主题中提取数据并使用正确的客户端 ID 将其保存在数据库中。在这种情况下,客户端 ID 将用于区分来自不同传感器的数据,类似于主键。

我希望这有帮助。

谢谢

于 2017-07-16T15:07:43.137 回答
0

使用不同的clientId可以区分客户端。但是看起来这只是事物的影子数据。这意味着影子数据只能在与事物关联的单个设备时使用。如果有多个设备与事物关联,则影子数据不适用。

于 2019-03-08T10:01:28.603 回答