You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Azure的设备到设备通信方案咨询(含IoT Hub适配场景)

问题描述

我正尝试实现两台设备(设备A和设备B)之间的通信,目前了解到两种实现方式:

  • 使用IoT Hub连接设备→设备A发送遥测数据至IoT Hub→通过Function Apps路由数据→借助IoT Hub的设备到客户端功能发送至设备B
  • 使用支持MQTT和HTTP的Azure服务Event Grid,以其作为MQTT代理实现发布/订阅机制

我已借助Azure SDK for C完成ESP8266设备的数据发送,现需找到订阅机制将数据回传至另一台ESP8266或Python模块。

问题1

我已基于IoT Hub实现设备遥测数据发送且不愿改动该部分,如何实现可扩展的设备到设备通信?是否必须切换至Event Grid,或是有其他方案?

问题2

若不使用IoT Hub,实现该通信架构的最佳方案是什么?


回答

针对问题1:无需切换到Event Grid,基于现有IoT Hub即可实现可扩展通信

基于已有的IoT Hub遥测管道,可通过以下几种方案实现可扩展的设备间通信:

  1. IoT Hub + Azure Functions + 云到设备(C2D)消息

    • 保留设备A到IoT Hub的遥测发送流程,通过IoT Hub路由将目标遥测数据转发至Azure Functions
    • 在Function中完成数据处理(如过滤、格式转换)后,调用IoT Hub的C2D API将消息推送给设备B
    • 扩展性优势:Functions支持横向扩展应对高并发,IoT Hub的C2D机制自带批量发送、消息过期、送达反馈等能力,适配不同规模的设备集群
  2. IoT Hub + 路由到Service Bus主题 + 设备直接订阅

    • 将设备A的遥测数据通过IoT Hub路由到Azure Service Bus主题
    • 设备B可通过MQTT/AMQP协议直接订阅该主题(需配置设备身份认证)
    • 适配场景:适合多设备订阅同一份数据的需求,Service Bus的主题订阅模型天然支持扩展,可轻松添加更多接收设备
  3. IoT Hub数字孪生 + 属性变更订阅

    • 若设备间传递的是状态类数据,可将设备A的遥测数据同步至其数字孪生的属性中
    • 设备B通过订阅数字孪生的属性变更事件,获取设备A的状态更新
    • 适配场景:适合设备状态同步、联动控制的场景,数字孪生自带规则引擎与事件路由能力,扩展性较强

针对问题2:不使用IoT Hub时的推荐方案

如果完全不依赖IoT Hub,推荐以下两种方案:

  1. Azure Event Grid MQTT代理

    • 直接使用Event Grid的MQTT代理功能,让设备A作为发布者、设备B作为订阅者,基于主题实现发布/订阅通信
    • 支持MQTT 3.1.1和5.0协议,适配ESP8266这类MQTT设备,Python模块也可通过MQTT客户端快速接入
    • 自带消息持久化、身份认证、权限控制,适合构建轻量且可靠的设备间通信架构
  2. Azure Service Bus

    • 利用Service Bus的主题/订阅模型,设备A将消息发送至主题,设备B订阅对应主题接收消息
    • 支持MQTT、AMQP、HTTP多种协议,适配不同设备类型;同时具备死信队列、消息重试等特性,确保消息可靠传递
    • 适配场景:适合需要复杂消息路由、高可靠性要求的场景,扩展性强,可支持大规模设备接入

内容的提问来源于stack exchange,提问作者Sai Kalyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:25:49