【问题标题】:Send and receive iot-hub messages发送和接收 iot-hub 消息
【发布时间】:2021-08-24 08:56:39
【问题描述】:

我正在开发一个基于 azure sphere 套件的项目,我想从 Web 应用程序控制电机。我设法将命令发送到 iot 集线器,内置监视器显示消息已被 iot 集线器接收。现在,我的问题是:我怎样才能将此消息转发给董事会?不得不提的是,这是我第一次使用 iot-hub,所以如果这是一个愚蠢的问题,请不要评判我。:) Here is the confirmation that the message is received by the iothub

【问题讨论】:

标签: azure-iot-hub


【解决方案1】:

如果您想从 Azure IoT 中心与您的 Azure Sphere 进行通信,那么您就是在谈论云到设备的通信。有三种不同的方式来进行这种沟通:

  • 直接方法
  • 设备孪生所需的属性
  • 云到设备 (C2D) 消息

Microsoft 记录了它们 here。本文档还列出了这三种方法的不同注意事项。

要转发您在问题中提到的 IoT 中心消息,一个好的开始是编写一个 Azure 函数来侦听 IoT 中心的输出,并使用上述三种方法之一将其发送到设备。您可以找到 Azure Function IoT Hub 触发器的示例here

【讨论】:

    【解决方案2】:

    在这种情况下为上述响应添加一些更详细的选项。

    场景 1:您可能有兴趣将您的设备从后端服务配置为您的 Web 应用程序。要在设备和 IoT 中心之间同步状态信息,请使用 device twinsdesired 属性由后端应用程序设置并由设备读取。 reported 属性由设备设置并由后端应用程序读取。 tag 由后端应用程序设置,永远不会发送到设备。您使用标签来组织您的设备。 旨在将设备置于某个所需状态的长时间运行命令。例如,将遥测发送间隔设置为 30 分钟。 这样就完成了您的 E2E 状态同步方案:Web-ApplicationIoT DeviceRef Link

    问题: 如何将此消息转发给董事会?

    场景 2:您可能对直接方法感兴趣,以控制连接到 IoT 中心的设备。您可以使用直接方法远程更改连接到 IoT 中心的设备的行为。需要立即确认的命令,例如打开风扇。

    要求:

    -->IoT 设备:为了接收直接方法调用,IoT 设备上运行的应用程序连接到您的 IoT 中心上的设备特定端点。 p>

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}
    

    -->Web 应用程序:要在设备上调用直接方法,您的 Web 应用程序连接到 IoT 中心上的服务端端点

    HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}
    

    直接方法调用:需要注意的点。请访问链接:detailed comparison of the various cloud-to-device communication options.

    • 直接方法负载的最大大小为 128 KB。
    • 断开的设备不会被联系。通知解决方案后端设备未连接。 Ref Link

    如果您在这件事上需要进一步的帮助,请在下面的部分发表评论,我们很乐意在这个论坛上为您提供帮助。

    【讨论】:

    • 我设法使用 DEVICE_TWIN_UPDATE_STATE 从双胞胎中读取了所需的属性,但问题是该过程非常缓慢。设备接收消息需要半分钟以上。我做错了什么还是设备孪生方法的缺点?
    • 设备收到消息半分钟以上是需要排查的,这是不正常的。您是否有 Azure Monitor 或任何记录这些长时间延迟的日志\指标?
    • 另外,请参阅Operation throttles
    • MVP-Roman Kiss 很好回答的另一个 MSDN 相关问题,值得一读,IOT HUB, C2D messages sent from Device Manager are very slow
    猜你喜欢
    • 2019-02-27
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 2017-06-29
    • 2019-04-24
    • 2011-03-09
    相关资源
    最近更新 更多