Conditions préalables aux mises à jour OTA via HTTP - 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 HTTP

Cette section décrit les exigences générales relatives à l'utilisation du protocole HTTP pour effectuer des mises à jour over-the-air (OTA). À 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

Note
  • Bien que le protocole HTTP puisse être utilisé pour transférer l'image du microprogramme, la bibliothèque de l'agent CoreMQTT est toujours requise car d'autres interactions AWS IoT Core utilisent la bibliothèque de l'agent CoreMQTT, notamment l'envoi ou la réception de notifications d'exécution de tâches, de documents de tâche et de mises à jour du statut d'exécution.

  • Lorsque vous spécifiez les deux protocoles MQTT et HTTP pour la tâche de mise à jour OTA, la configuration du logiciel de l'agent OTA sur chaque périphérique détermine le protocole à utiliser pour transférer l'image du microprogramme. Pour remplacer la méthode de protocole MQTT par défaut de l'agent OTA par le protocole HTTP, vous pouvez modifier les fichiers d'en-tête utilisés pour compiler le code source FreeRTOS pour le périphérique.

Configuration requise

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

  • La version 201912.00 ou ultérieure de FreeRTOS est requise pour modifier la configuration des protocoles OTA afin de permettre le transfert de données OTA via HTTP.

Configurations

Veuillez consulter la configuration suivante des protocoles OTA dans le fichier \vendors\boards\board\aws_demos\config_files\ota_config.h.

Pour activer le transfert de données OTA via HTTP
  1. Remplacez configENABLED_DATA_PROTOCOLS par OTA_DATA_OVER_HTTP

  2. Lorsque de la mise à jour OTA, vous pouvez spécifier les deux protocoles afin que le protocole MQTT ou HTTP puisse être utilisé. Pour définir le protocole principal utilisé par le périphérique sur HTTP, remplacez configOTA_PRIMARY_DATA_PROTOCOL par OTA_DATA_OVER_HTTP.

Note

HTTP n'est pris en charge que pour les opérations de données OTA. Pour les opérations de contrôle, vous devez utiliser MQTT.

Configurations spécifiques aux périphériques

ESP32

En raison d'une quantité limitée de RAM, vous devez désactiver BLE lorsque vous activez HTTP comme protocole de données OTA. Dans le fichier vendors/espressif/boards/esp32/aws_demos/config_files/aws_iot_network_config.h, remplacez configENABLED_NETWORKS par AWSIOT_NETWORK_TYPE_WIFI uniquement.

/** * @brief Configuration flag which is used to enable one or more network interfaces for a board. * * The configuration can be changed any time to keep one or more network enabled or disabled. * More than one network interfaces can be enabled by using 'OR' operation with flags for * each network types supported. Flags for all supported network types can be found * in "aws_iot_network.h" * */ #define configENABLED_NETWORKS ( AWSIOT_NETWORK_TYPE_WIFI )

Utilisation de la mémoire

Lorsque MQTT est utilisé pour le transfert de données, aucune mémoire de segment 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. Toutefois, l'activation de données via HTTP nécessite une mémoire de segment supplémentaire. Voici les données d'utilisation de la mémoire par segment de mémoire pour toutes les plateformes prises en charge, calculées à l'aide de l'API FreeRTOSxPortGetFreeHeapSize. Assurez-vous de disposer de suffisamment de RAM pour utiliser la bibliothèque OTA.

Texas Instruments CC322 0SF-LAUNCHXL

Opérations de contrôle (MQTT) : 12 Ko

Opérations de données (HTTP) : 10 Ko

Note

TI utilise beaucoup moins de RAM, car il utilise le protocole SSL sur le matériel. Il n'a donc pas recours à la bibliothèque mbedtls.

Microchip Curiosity MZEF PIC32

Opérations de contrôle (MQTT) : 65 Ko

Opérations de données (HTTP) : 43 Ko

Espressif ESP32

Opérations de contrôle (MQTT) : 65 Ko

Opérations de données (HTTP) : 45 Ko

Note

Le mode BLE ESP32 nécessite environ 87 Ko de RAM. La quantité de RAM ne suffit pas pour toutes les opérations, ce qui est mentionné dans les configurations spécifiques aux périphériques ci-dessus.

Simulateur Windows

Opérations de contrôle (MQTT) : 82 Ko

Opérations de données (HTTP) : 63 Ko

Nordic nrf52840-dk

HTTP n'est pas pris en charge.

Politique en matière d'appareils

Cette stratégie vous permet d'utiliser MQTT ou HTTP pour les mises à jour OTA.

Chaque appareil qui reçoit une mise à jour OTA via le protocole HTTP doit être enregistré en tant qu'objet dans AWS IoT et l'objet doit avoir une stratégie attachée comme 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}/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:partition:iot:region:account:topic/$aws/things/${iot:Connection.Thing.ThingName}/jobs/*" ] } ] }
Remarques
  • Les autorisations iot:Connect permettent à votre appareil de se connecter à AWS IoT via MQTT.

  • Les iot:Publish autorisations iot:Subscribe et relatives aux 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:Receive autorisations permettent AWS IoT Core de publier des messages sur ces sujets sur l'appareil actuellement 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.