0

我是微软 Azure IoT Hub 和 MQTT/AMQP 通信的新手,我正在尝试在我的树莓派和我的计算机上运行的 Ubunutu VM 之间建立简单的通信。我打算使用我的 pi by 作为客户端将消息发布到在我的 VM 上运行的服务,该服务只是将消息内容回显到标准输出。在阅读了 Azure 网站/github 页面上的所有文献后,我无法找出最好的方法来做到这一点。是否可以在本地网络上托管服务?SDK 上的 iotHub 服务客户端示例是用作服务还是用作与 Azure 上的现有服务(SQL 数据库、Web 服务器等)进行通信的客户端?我能够使用 azure-iot-sdk-c/iothub_client/samples/iothub_client_sample_mqtt 将消息发送到我的 IoT 中心门户。c 示例,但无法确定将我的消息发布到的主题的位置。我真的很感激任何帮助/意见。

谢谢

4

2 回答 2

2

Azure IoT设备SDK 旨在构建设备应用程序,这些应用程序将与位于 Azure 云中的 Azure IoT 中心服务连接并通信。

Azure IoT服务SDK 旨在构建应用程序,这些应用程序将用于配置、监视 Azure 云中运行的 Azure IoT Hub 服务实例并与之交互。

如果您正在寻找一种利用 MQTT 建立本地设备到设备或设备到服务器通信的简单解决方案,您可以查看 MQTT 代理解决方案。

现在,如果您想利用物联网云来管理设备、轻松保护设备并对其进行身份验证、以高吞吐量将遥测数据上传到云并利用云中的高级分析服务(大数据、机器学习等),那么 Azure IoT Hub 就适合你。

于 2017-03-17T21:49:10.273 回答
0

Azure IoT Hub 只是一个消息通道,它不处理消息。

对于设备端(树莓派),您使用设备 SDK 通过 MQTT 发送 D2C 消息,并且可以正常工作。对于服务端(Ubuntu VM),您需要Event Hub SDK来接收树莓派发送的 D2C 消息(Why Event Hub? https://blogs.msdn.microsoft.com/zhqqitest/2017/03/18/do-not-把它弄得一团糟,为什么在 iot-hub/ 中有这么多端点)。

此外,IoT Hub 仅支持设备端的 MQTT,也就是说,您无法使用服务端的 MQTT(Ubuntu VM)连接到 IoT Hub,但您需要 AMQP。

你可能还有一个问题,那么在服务端监听 D2C 消息的 AMQP 主题是什么?是/<compatibleName>/ConsumerGroups/<ConsumerGroups>/Partitions/<PartitionID>

  • compatibleName:IoT Hub 事件中心兼容名称(真是一团糟:-S),您可以从 Azure 门户中找到它(端点 - 内置端点 - 事件)
  • $DefaultConsumerGroups:默认情况下,您可以从 Azure 门户中找到它
  • PartitionID:分区ID,用AMQP连接Event Hub时可以得到,是一个数字,一般从0

如果您不想直接调用 AMQP,您可以简单地在 Ubuntu VM 上使用带有 IoT Hub 连接字符串的 Event Hub SDK(不是 Event Hub 兼容端点或 Event Hub 兼容名称,Event Hub SDK 将为您执行此操作) .

于 2017-03-20T08:52:16.910 回答