本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 進行OTA更新的先決條件 MQTT
本節說明使用 MQTT 執行 over-the-air (OTA 更新) 的一般需求。
最低需求
-
裝置韌體必須包含必要的免費RTOS程式庫 (核心MQTT代理程式、OTA更新及其相依性)。
-
需要免費RTOS 1.4.0 版或更新版本。不過,我們建議您儘可能使用最新版本。
組態
從 201912.00 版開始,免費RTOSOTA可以使用 HTTP或 MQTT通訊協定,將韌體更新映像從 傳輸 AWS IoT 到 裝置。如果您在 免費 中建立OTA更新時指定這兩個通訊協定RTOS,則每個裝置都會決定用於傳輸映像的通訊協定。如需更多資訊,請參閱使用 進行OTA更新的先決條件 HTTP。
依預設, 中的OTA通訊協定組態ota_config.h
裝置特定的組態
無。
記憶體用量
當 MQTT 用於資料傳輸時,MQTT連線不需要額外的記憶體,因為其在控制和資料操作之間共用。
裝置政策
使用 接收OTA更新的每個裝置MQTT都必須在 中註冊為物件, AWS IoT 且物件必須具有如此處列出的附加政策。如需 "Action"
和 "Resource"
物件中的項目的詳細資訊,請參閱 AWS IoT
核心政策動作和 AWS IoT 核心動作資源。
{ "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 任務 (
.../jobs/*
) 主題的iot:Subscribe
和iot:Publish
許可允許連接的裝置接收任務通知和任務文件,並發佈任務執行的完成狀態。 -
串流 (
.../streams/*
) 主題的 AWS IoT OTAiot:Subscribe
和iot:Publish
許可允許連接的裝置從 擷取OTA更新資料 AWS IoT。需要這些許可才能透過 執行韌體更新MQTT。 -
iot:Receive
許可允許 AWS IoT Core 將這些主題上的訊息發佈到連接的裝置。每次傳送訊息時都會檢查此許可MQTT。您可以使用此許可來撤銷目前訂閱主題之用戶端的存取權。