使用 MQTT 的 OTA 更新的先决条件 - FreeRTOS

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

此部分介绍了使用 MQTT 执行无线 (OTA) 更新的一般要求。

最低要求

  • 设备固件必须包含必要的 FreeRTOS 库(coreMQTT 代理、OTA 更新及其依赖项)。

  • 要求安装 FreeRTOS 1.4.0 版或更高版本。但是,我们建议您尽可能使用最新的版本。

配置

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

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

设备特定的配置

无。

内存使用量

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

设备策略

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

备注
  • 利用 iot:Connect 权限,您的设备可以通过 MQTT 连接到 AWS IoT。

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

  • 利用 iot:Subscribe OTA 流 (iot:Publish) 主题的 AWS IoT 和 .../streams/* 权限,连接的设备能够从 AWS IoT 中提取 OTA 更新数据。在通过 MQTT 执行固件更新时,需要这些权限。

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