使用进行OTA更新的先决条件 MQTT - 免费 RTOS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用进行OTA更新的先决条件 MQTT

本节介绍使用MQTT执行 over-the-air(OTA更新)的一般要求。

最低要求

  • 设备固件必须包含必要的免费RTOS库(核心MQTT代理、OTA更新及其依赖项)。

  • 需要免费RTOS版本 1.4.0 或更高版本。但是,我们建议您尽可能使用最新的版本。

配置

从 201912.00 版本开始,Free RTOS OTA 可以使用HTTP或MQTT协议将固件更新映像从 AWS IoT 设备传输到设备。如果您在 Free 中创建OTA更新时同时指定了两种协议RTOS,则每台设备都将决定用于传输映像的协议。请参阅使用进行OTA更新的先决条件 HTTP了解更多信息。

默认情况下,中的OTAota_config.h协议配置将使用该MQTT协议。

设备特定的配置

无。

内存使用量

当MQTT用于数据传输时,MQTT连接不需要额外的内存,因为它在控制和数据操作之间共享。

设备策略

使用接收OTA更新的每台设备都MQTT必须注册为事物, AWS IoT 并且该设备必须附有类似于此处列出的政策。您可以在 AWS IoT 核心策略操作AWS IoT 核心操作资源中找到有关 "Action""Resource" 对象中项目的更多信息。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:partition:iot:region:account:client/${iot:Connection.Thing.ThingName}" }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:partition:iot:region:account:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/streams/*", "arn:partition:iot:region:account:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:partition:iot:region:account:topic/$aws/things/${iot:Connection.Thing.ThingName}/streams/*", "arn:partition:iot:region:account:topic/$aws/things/${iot:Connection.Thing.ThingName}/jobs/*" ] } ] }
注意
  • 这些iot:Connect权限允许您的设备通过连接到 AWS IoT MQTT。

  • AWS IoT 任务主题的iot:Subscribeiot:Publish权限 (.../jobs/*) 允许连接的设备接收作业通知和作业文档,并发布任务执行的完成状态。

  • AWS IoT OTA直播主题的iot:Subscribeiot:Publish权限 (.../streams/*) 允许连接的设备从中获取OTA更新数据 AWS IoT。这些权限是执行固件更新所必需的MQTT。

  • 这些iot:Receive权限 AWS IoT Core 允许将有关这些主题的消息发布到连接的设备。每次MQTT发送消息时都会检查此权限。您可以使用此权限,撤消对当前订阅主题的客户端的访问权限。