如何在AWS-IOT中将多个设备连接到同一个东西?

问题描述 投票:6回答:5

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

现在,为了做到这一点,我想我需要在aws-iot中为每个节点创建1个“东西”,我认为这个东西极难维护和不可扩展。

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

amazon-web-services aws-iot
5个回答
4
投票

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

无论如何,使用相同的MQTT id连接到同一个东西(最后一个连接的节点具有相同的id,可以启动以前连接的节点),不可能保留两个不同的节点,尽管您可以在某些代码的帮助下使用您的客户端ID。

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

所以,总结一下;我自己面对一个类似的问题,我在下面查看了这些信息,发现它在我的案例中很有用,并在此处分享。 https://forums.aws.amazon.com/thread.jspa?threadID=234102


2
投票

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

使用API​​自动为节点分配证书和私钥。传感器ID可以用作事物名称和MQTT客户端ID。它需要预先完成一些工作,但随后您可以利用AWS IoT进行所有内务管理。


2
投票

您可以使用与多个clientId相同的Thing。您可以将传感器ID用作clientId。


1
投票

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

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

解决方案:此问题可以有两种解决方案。

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

我希望这有帮助。

谢谢


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.