Conditions préalables aux mises à jour OTA via MQTT - FreeRTOS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Conditions préalables aux mises à jour OTA via MQTT

Important

Il s'agit d'une version archivée du guide de l'utilisateur de FreeRTOS à utiliser avec la version 202012.00 de FreeRTOS. Pour obtenir la dernière version de ce document, consultez le guide de l'utilisateur de FreeRTOS.

Cette section décrit les exigences générales relatives à l'utilisation de MQTT à des fins d'exécution over-the-air (mises à jour OTA).

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :

Configuration requise

  • Le microprogramme de l'appareil doit inclure les bibliothèques FreeRTOS nécessaires (CoreMQTT, OTA Agent et leurs dépendances).

  • La version 1.4.0 ou ultérieure de FreeRTOS est requise. Cependant, nous vous recommandons d'utiliser la dernière version dans la mesure du possible.

Configurations

À partir de la version 201912.00, FreeRTOS OTA peut utiliser le protocole HTTP ou MQTT pour transférer les images de mise à jour du microprogramme depuis les appareils. AWS IoT Si vous spécifiez les deux protocoles lorsque vous créez une mise à jour OTA dans FreeRTOS, chaque appareil déterminera le protocole utilisé pour transférer l'image. Pour plus d’informations, consultez Conditions préalables aux mises à jour OTA via HTTP.

Par défaut, la configuration des protocoles OTA dans aws_ota_agent_config.h consiste à utiliser le protocole MQTT :

/** * @brief The protocol selected for OTA control operations. * This configuration parameter sets the default protocol for all the OTA control * operations like requesting OTA job, updating the job status etc. * * Note - Only MQTT is supported at this time for control operations. */ #define configENABLED_CONTROL_PROTOCOL ( OTA_CONTROL_OVER_MQTT ) /** * @brief The protocol selected for OTA data operations. * This configuration parameter sets the protocols selected for the data operations * like requesting file blocks from the service. * * Note - Both MQTT and HTTP are supported for data transfer. This configuration parameter * can be set to the following - * Enable data over MQTT - ( OTA_DATA_OVER_MQTT ) * Enable data over HTTP - ( OTA_DATA_OVER_HTTP) * Enable data over both MQTT & HTTP ( OTA_DATA_OVER_MQTT | OTA_DATA_OVER_HTTP ) */ #define configENABLED_DATA_PROTOCOLS ( OTA_DATA_OVER_MQTT ) /** * @brief The preferred protocol selected for OTA data operations. * * Primary data protocol will be the protocol used for downloading files if more than * one protocol is selected while creating OTA job. Default primary data protocol is MQTT * and the following update here switches to HTTP as primary. * * Note - use OTA_DATA_OVER_HTTP for HTTP as primary data protocol. */ #define configOTA_PRIMARY_DATA_PROTOCOL ( OTA_DATA_OVER_MQTT )

Configurations spécifiques aux périphériques

Aucune.

Utilisation de la mémoire

Lorsque le protocole MQTT est utilisé pour le transfert de données, aucune mémoire supplémentaire n'est requise pour la connexion MQTT, car elle est partagée entre les opérations de contrôle et de données.

Politique en matière d'appareils

Chaque appareil qui reçoit une mise à jour OTA à l'aide de MQTT doit être enregistré en tant qu'objet AWS IoT et doit être associé à une politique similaire à celle répertoriée ici. Vous trouverez plus d'informations sur les éléments dans les objets "Action" et "Resource" dans Actions de stratégie AWS IoT et Ressources d'action 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/*" ] } ] }
Remarques
  • Les iot:Connect autorisations permettent à votre appareil de se connecter AWS IoT via MQTT.

  • Les iot:Publish autorisations iot:Subscribe et sur les sujets des AWS IoT tâches (.../jobs/*) permettent à l'appareil connecté de recevoir des notifications de tâches et des documents relatifs aux tâches, et de publier l'état d'achèvement de l'exécution d'une tâche.

  • Les iot:Publish autorisations iot:Subscribe et sur le thème des flux AWS IoT OTA (.../streams/*) permettent à l'appareil connecté de récupérer les données de mise à jour OTA à partir de AWS IoT. Ces autorisations sont requises pour effectuer des mises à jour du firmware sur MQTT.

  • Les iot:Receive autorisations permettent AWS IoT Core de publier des messages sur ces sujets sur l'appareil connecté. Cette autorisation est vérifiée à chaque remise d'un message MQTT. Vous pouvez utiliser cette autorisation pour révoquer l'accès aux clients actuellement abonnés à une rubrique.