Voraussetzungen für OTA-Updates mit HTTP - FreeRTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Voraussetzungen für OTA-Updates mit HTTP

In diesem Abschnitt werden die allgemeinen Anforderungen für die Verwendung von HTTP zur Durchführung von over-the-air (OTA-) Updates beschrieben. Ab Version 201912.00 kann FreeRTOS OTA entweder das HTTP- oder das MQTT-Protokoll verwenden, um Firmware-Update-Images von auf Geräte zu übertragen. AWS IoT

Anmerkung
  • Obwohl das HTTP-Protokoll für die Übertragung des Firmware-Images verwendet werden kann, ist die CoreMQTT-Agentenbibliothek dennoch erforderlich, da andere Interaktionen die CoreMQTT-Agentenbibliothek AWS IoT Core verwenden, einschließlich des Sendens oder Empfangens von Benachrichtigungen zur Jobausführung, Jobdokumenten und Ausführungsstatus-Updates.

  • Wenn Sie für den OTA-Aktualisierungsauftrag sowohl das MQTT- als auch das HTTP-Protokoll festlegen, bestimmt das Setup der OTA-Agent-Software auf jedem einzelnen Gerät, welches Protokoll für die Übertragung des Firmware-Images verwendet wird. Um für den OTA-Agent von der standardmäßigen MQTT-Protokollmethode zum HTTP-Protokoll zu wechseln, können Sie die Header-Dateien ändern, die zum Kompilieren des FreeRTOS-Quellcodes für das Gerät verwendet werden.

Mindestanforderungen

  • Die Gerätefirmware muss die erforderlichen FreeRTOS-Bibliotheken (CoreMQTT Agent, HTTP, OTA Agent und deren Abhängigkeiten) enthalten.

  • FreeRTOS Version 201912.00 oder höher ist erforderlich, um die Konfiguration der OTA-Protokolle zu ändern, um die OTA-Datenübertragung über HTTP zu ermöglichen.

Konfigurationen

In der Datei \vendors\boards\board\aws_demos\config_files\ota_config.h finden Sie die folgende Konfiguration der OTA-Protokolle.

So aktivieren Sie die OTA-Datenübertragung über HTTP
  1. Ändern Sie configENABLED_DATA_PROTOCOLS zu OTA_DATA_OVER_HTTP.

  2. Bei OTA-Updates können Sie beide Protokolle angeben, so dass als Protokoll entweder MQTT oder HTTP verwendet werden kann. Sie können als primäres Protokoll für das Gerät HTTP festlegen, indem Sie configOTA_PRIMARY_DATA_PROTOCOL in OTA_DATA_OVER_HTTP ändern.

Anmerkung

HTTP wird nur für OTA-Datenvorgänge unterstützt. Für Steuerungsvorgänge müssen Sie MQTT verwenden.

Gerätespezifische Konfigurationen

ESP32

Aufgrund einer begrenzten Menge an RAM müssen Sie BLE deaktivieren, wenn Sie HTTP als OTA-Datenprotokoll aktivieren. Ändern Sie in der Datei vendors/espressif/boards/esp32/aws_demos/config_files/aws_iot_network_config.h nur configENABLED_NETWORKS zu AWSIOT_NETWORK_TYPE_WIFI.

/** * @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 )

Speicherauslastung

Wenn MQTT für die Datenübertragung verwendet wird, ist kein zusätzlicher Heap-Speicher für die MQTT-Verbindung erforderlich, da sie von Steuerungs- und Datenvorgängen gemeinsam genutzt wird. Das Aktivieren von Daten über HTTP erfordert jedoch zusätzlichen Heap-Speicher. Im Folgenden finden Sie die Daten zur Heap-Speichernutzung für alle unterstützten Plattformen, berechnet mit der xPortGetFreeHeapSize FreeRTOS-API. Sie müssen sicherstellen, dass genügend RAM zur Verwendung der OTA-Bibliothek vorhanden ist.

Texas Instruments 0SF-LAUNCHXL CC322

Steuerungsvorgänge (MQTT): 12 KB

Datenvorgänge (HTTP): 10 KB

Anmerkung

TI verbraucht deutlich weniger RAM, da es SSL auf Hardware ausführt und somit die mbedtls-Bibliothek nicht verwendet.

Mikrochip PIC32 Curiosity MZEF

Verwaltungsvorgänge (MQTT): 65 KB

Datenvorgänge (HTTP): 43 KB

Espressif ESP32

Verwaltungsvorgänge (MQTT): 65 KB

Datenvorgänge (HTTP): 45 KB

Anmerkung

BLE on ESP32 benötigt etwa 87 KB RAM. Das RAM reicht nicht aus, um alle von ihnen zu aktivieren, was in den gerätespezifischen Konfigurationen oben erwähnt wird.

Windows Simulator

Verwaltungsvorgänge (MQTT): 82 KB

Datenvorgänge (HTTP): 63 KB

Nordic nrf52840-dk

HTTP wird nicht unterstützt.

Geräterichtlinie

Mit dieser Richtlinie können Sie entweder MQTT oder HTTP für OTA-Updates verwenden.

Jedes Gerät, das ein OTA-Update über HTTP erhält, muss als Objekt in AWS IoT registriert sein, und das Objekt muss über eine angehängte Richtlinie wie die hier aufgelistete verfügen. Weitere Informationen zu den Elementen finden Sie unter den "Action"- und "Resource"-Objekten der AWS IoT Core-Richtlinienaktionen und AWS IoT Core-Aktionsressourcen.

{ "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/*" ] } ] }
Hinweise
  • Mit den iot:Connect-Berechtigungen kann Ihr Gerät über MQTT eine Verbindung mit AWS IoT herstellen.

  • Die iot:Publish Berechtigungen iot:Subscribe und zu den Themen AWS IoT Jobs (.../jobs/*) ermöglichen es dem verbundenen Gerät, Auftragsbenachrichtigungen und Auftragsdokumente zu empfangen und den Abschlussstatus einer Auftragsausführung zu veröffentlichen.

  • Die iot:Receive Berechtigungen ermöglichen es AWS IoT Core , Nachrichten zu diesen Themen auf dem aktuell verbundenen Gerät zu veröffentlichen. Diese Berechtigung wird bei jeder Zustellung einer MQTT-Nachricht überprüft. Sie können diese Berechtigung verwenden, um den Zugriff auf Clients zu widerrufen, die derzeit ein Thema abonniert haben.