を使用したOTA更新の前提条件 MQTT - 無料RTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用したOTA更新の前提条件 MQTT

このセクションでは、 MQTTを使用して (OTA 更新) を実行する over-the-airための一般的な要件について説明します。

最小要件

  • デバイスファームウェアには、必要な無料RTOSライブラリ (コアMQTTエージェント、OTA更新、およびそれらの依存関係) を含める必要があります。

  • 無料RTOSバージョン 1.4.0 以降が必要です。ただし、可能な場合は最新バージョンを使用することをお勧めします。

Configurations

バージョン 201912.00 以降、FreeRTOS OTAは HTTP または MQTTプロトコルを使用して、ファームウェア更新イメージを からデバイスに転送 AWS IoT できます。Free でOTA更新を作成するときに両方のプロトコルを指定するとRTOS、各デバイスはイメージの転送に使用されるプロトコルを決定します。詳細については、「を使用したOTA更新の前提条件 HTTP」を参照してください。

デフォルトでは、 のOTAプロトコルの設定ota_config.hは、MQTTプロトコルを使用することです。

デバイス固有の設定

なし。

メモリ使用量

MQTT がデータ転送に使用される場合、コントロールオペレーションとデータオペレーション間で共有されるため、MQTT接続に追加のメモリは必要ありません。

デバイスポリシー

を使用してOTA更新を受信する各デバイスは、 にモノとして登録MQTTする必要があり AWS IoT 、モノには、ここにリストされているようなポリシーがアタッチされている必要があります。"Action" および "Resource" オブジェクトの項目の詳細については、AWS IoT Core ポリシーアクションAWS IoT Core アクションリソースを参照してください。

{ "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 OTAトピックに対する iot:Subscribeおよび アクセスiot:Publish許可により、接続されたデバイスは からOTA更新データを取得できます AWS IoT。これらのアクセス許可は、 でファームウェアの更新を実行するために必要ですMQTT。

  • アクセスiot:Receive許可により AWS IoT Core 、 はこれらのトピックに関するメッセージを接続されたデバイスに発行できます。このアクセス許可は、MQTTメッセージの配信ごとにチェックされます。このアクセス許可を使用して、トピックに現在サブスクライブしているクライアントへのアクセスを取り消すことができます。