首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure IOT Central -使用MQTT的云到设备消息

Azure IOT Central -使用MQTT的云到设备消息
EN

Stack Overflow用户
提问于 2020-02-24 15:34:59
回答 2查看 949关注 0票数 1

我的物联网设备已连接到物联网中心,并且能够通过导出选项接收数据。现在我想向我的设备发送一些命令,例如,在订阅的URL'devices/....ba50621/messages/devicebound/#‘上发送设备心跳的json数据

代码语言:javascript
运行
复制
{ "action": "heartBeat", 
  "requestId": "b2c3d4e5-3424-4dca-32dc-12b73290cfed"
}

我参考下面的链接创建了服务应用程序,以发送云到设备的消息,

Stackoverlow ansSample app

使用连接字符串as,

代码语言:javascript
运行
复制
"HostName=asdasdas.azure-devices.net;DeviceId=asdasdasda50621;SharedAccessKey=nXmyveEPrV....pmo9jULvDtik="

此连接字符串是在设备通过dps注册时收到的。我在服务应用程序上使用了这个连接。我不知道这是否正确。

当应用程序尝试发送消息时,我得到了未经授权的错误。在上面的文档中,链接表示从物联网集线器的共享访问策略中获取连接字符串。但我使用的是iot central和上面的连接字符串。

金德尔帮我修好它。

EN

回答 2

Stack Overflow用户

发布于 2020-02-24 16:07:14

云到设备消息传递在IoT中心的工作方式与普通的IoT集线器略有不同。您必须使用IoT Central REST API,而不是将服务客户端连接到您的IoT集线器。

您可以向设备发送命令,也可以更新属性。包括示例在内的完整文档是here。您可以找到将命令发送到设备here的文档。

票数 1
EN

Stack Overflow用户

发布于 2020-02-24 21:54:43

如果您的IoTC应用程序不是遗留应用程序,您可以使用预览IoTC应用程序(这是一种CapabilityModel驱动的模型类型)以及REST API支持来调用您的设备。目前的预览版没有你正在尝试实现的功能,比如向设备发送C2D消息。

IoTC预览仅支持调用设备方法- Execute Command。以下屏幕片段演示了此功能。在本例中,我使用我的Azure IoT Hub Tester,其中的虚拟设备使用MQTT协议直接连接到IoT中央应用程序的底层IoT集线器。

我已经使用IoT ESP32模板创建了一个免费的Azure中心应用,为device1注册和配置,并从AzureKit IoT集线器测试器连接:

  1. 显示命令echo PnP模型:

  1. 通过REST POST调用调用命令回显。请注意,授权存储必须在管理/应用编程接口令牌页面中创建。

  1. device1收到了直接调用,然后发布了响应(请注意,由于响应时间限制较短,此屏幕未被截断)。下面的屏幕片段显示了与device1的完全同步REST调用。注意,这个预览版本没有处理基于提到的文档和PnP模型的响应负载。

  1. 最后,此屏幕片段通过REST显示此命令操作的历史记录:

请注意,还缺少来自设备的响应对象,如CapabilityModel模式中所述。

更新

当echo方法被调用时,我在设备端添加了缺失的屏幕片段:

如上图所示,设备收到了REST POST有效负载,并根据PnP模型模式将其发布的响应返回给调用者。

更新2

下面的屏幕片段演示了如何调用device4的升级命令。请注意,device4是根据模板SmartConnect FM-201 IoT网关创建的PnP设备。

device4将响应发送回调用者和IoTC应用程序。下图显示了它的历史记录:

再次注意,REST响应和IoTC应用程序中都缺少响应对象。我希望,这是这个预览版中的一个错误,它将很快修复它,以跟进CapabilityModel模式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60371317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档