我正在开展一个项目,在一个区域内安装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相同的Thing。您可以将传感器ID用作clientId。
您将传感器连接到AWS IOT,订阅设备主题并开始发布数据。并且您开始从所有传感器接收数据。
现在看,这里有什么问题???问题:我们不知道,哪个设备发送了哪些数据?
解决方案:此问题可以有两种解决方案。
我希望这有帮助。
谢谢
使用不同的clientId可以区分客户端。但看起来它只是该事物的影子数据。这意味着影子数据只能在有与该事物关联的单个设备时使用。如果有多个设备与该事物关联,则阴影数据不适用。