【问题标题】:How to connect multiple devices to same Thing in AWS-IOT?如何将多个设备连接到 AWS-IOT 中的同一事物?
【发布时间】:2016-10-01 07:01:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: amazon-web-services aws-iot


    【解决方案1】:

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

    尽管您可以在一些代码。

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

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

    【讨论】:

    • 我不同意这是不可能的。我们在 AWS IoT 上只有一个“东西”,有一组证书。我们在现场的所有设备都使用相同的证书集。他们每个人都有自己的“客户 ID”,所以我们可以分辨出哪个是哪个。我并不是说这是最佳实践,只是说它确实是可能的。
    • @SeanMcCarthy 您能提供执行此操作的步骤吗?我是物联网新手,想将我的所有设备连接到一个东西。已经连续挣扎了 2 天。
    • @ChiragMittal 您的所有设备都必须将其 MQTT 数据发送到不同的 MQTT 主题。该事物仅提供附加到这些证书的安全证书和策略。有点像锁的钥匙,或者访问 AWS IoT 的用户名/密码。但是每个设备必须发送到不同的主题。请提出一个新问题,而不是在 cmets 中提出问题。
    • @weaVaer 你可能是对的..我们可以使用 x.509 证书连接 iot 节点,但我应该为 1000 个节点管理 1000 个证书吗?..如何使用 aws 最佳实践方式管理单个证书..
    • @SeanMcCarthy 我实际上想做类似的事情 - 事情最终将是多个 kubernetes pod - 所以可能会有副本 - 每个集合都是一个东西 - 我需要尝试一下
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我同意这是可能的。我们在 AWS IoT 上只有一个“东西”,有一组证书。我们在现场的所有设备都使用相同的证书集。他们每个人都有自己的“客户 ID”,所以我们可以分辨出哪个是哪个。我并不是说这是最佳实践,只是说它确实是可能的。
      【解决方案4】:

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

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

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

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

      我希望这会有所帮助。

      谢谢

      【讨论】:

      • 我同意这是可能的。我们在 AWS IoT 上只有一个“东西”,有一组证书。我们在现场的所有设备都使用相同的证书集。他们每个人都有自己的“客户 ID”,所以我们可以分辨出哪个是哪个。我并不是说这是最佳实践,只是说它确实是可能的。
      • 我同意。这不是最佳做法。理想情况下,一切都应该不同。以便为每台设备创建不同的数字孪生。
      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2020-05-07
        • 2016-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-27
        • 1970-01-01
        • 2021-04-28
        • 2019-11-13
        相关资源
        最近更新 更多