我正在开展一个项目,在一个区域安装 100 多个温度传感器节点,所有这些节点都执行相同的功能。他们发布的数据是传感器 ID 和读数。我正在使用 AWS-IOT 作为后端。
现在,为此,我认为我需要在 aws-iot 中为每个节点创建 1 个“事物”,我认为这极难维护且不可扩展。
所以我的问题是,如何将多个节点连接到 AWS-IOT 中的同一个“事物”,以便集群易于管理。有没有其他方法可以有效地管理集群?欢迎任何意见。谢谢。
我正在开展一个项目,在一个区域安装 100 多个温度传感器节点,所有这些节点都执行相同的功能。他们发布的数据是传感器 ID 和读数。我正在使用 AWS-IOT 作为后端。
现在,为此,我认为我需要在 aws-iot 中为每个节点创建 1 个“事物”,我认为这极难维护且不可扩展。
所以我的问题是,如何将多个节点连接到 AWS-IOT 中的同一个“事物”,以便集群易于管理。有没有其他方法可以有效地管理集群?欢迎任何意见。谢谢。
面临类似的困境以及在 AWS IoT 管理控制台上创建太多“事物”的不切实际;我做了一些研究,发现 AWS 强烈反对将多个设备连接到同一个“东西”。
无论如何,不可能让使用相同 MQTT id 的两个不同节点连接到同一事物(具有相同 id 的最后一个连接节点会踢出先前连接的节点),尽管您可以在一些代码的帮助下使用您的客户端 ID。
我了解到,实际上您不需要“东西”来连接到 AWS IoT,只需一个证书即可;并且您可以通过代码在 AWS IoT 服务上创建元素。
所以,总而言之;我自己也遇到了类似的问题,我在下面遇到了这些信息,发现它对我的案例很有用并在这里分享。 https://forums.aws.amazon.com/thread.jspa?threadID=234102
这样做的唯一方法似乎是创建自己的网关,在将数据发送到 AWS IoT 之前聚合数据。您不能有多个具有相同客户端 ID 的 MQTT 连接。
使用 API 自动将证书和私钥分配给节点。传感器 ID 可用作事物名称和 MQTT 客户端 ID。这需要一些前期工作,但随后您可以利用 AWS IoT 进行所有的内务管理。
您可以将同一事物与多个 clientId 一起使用。您可以使用传感器 ID 作为客户端 ID。
您将传感器连接到 AWS IOT,订阅设备主题并开始发布数据。然后您开始接收来自所有传感器的数据。
现在看看,这里有什么问题??? 问题:我们不知道,哪个设备发送了哪些数据?
解决方案:这个问题可以有2个解决方案。
我希望这有帮助。
谢谢
使用不同的clientId可以区分客户端。但是看起来这只是事物的影子数据。这意味着影子数据只能在与事物关联的单个设备时使用。如果有多个设备与事物关联,则影子数据不适用。