Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Requisitos previos para las actualizaciones de OTA mediante HTTP
En esta sección se describen los requisitos generales para usar HTTP para realizar actualizaciones over-the-air (OTA). A partir de la versión 201912.00, FreeRTOS OTA puede usar el protocolo HTTP o MQTT para transferir imágenes de actualización de firmware de los dispositivos a otros. AWS IoT
nota
-
Aunque se puede usar el protocolo HTTP para transferir la imagen del firmware, la biblioteca de agentes de CoreMQTT sigue siendo necesaria debido a otras interacciones con el AWS IoT Core uso de la biblioteca de agentes de CoreMQTT, como el envío o la recepción de notificaciones de ejecución de tareas, documentos de tareas y actualizaciones del estado de ejecución.
-
Cuando se especifican los protocolos MQTT y HTTP para el trabajo de actualización de OTA, la configuración del software del Agente OTA en cada dispositivo determina el protocolo utilizado para transferir la imagen de firmware. Para cambiar el agente OTA del método de protocolo MQTT predeterminado al protocolo HTTP, puede modificar los archivos de encabezado utilizados para compilar el código fuente de FreeRTOS para el dispositivo.
Requisitos mínimos
-
El firmware del dispositivo debe incluir las bibliotecas de FreeRTOS necesarias (agente coreMQTT, HTTP, Agente de OTA y sus dependencias).
-
Se requiere la versión 201912.00 o posterior de FreeRTOS para cambiar la configuración de los protocolos de OTA para habilitar la transferencia de datos de OTA a través de HTTP.
Configuraciones
Consulte la siguiente configuración de los protocolos OTA en el archivo \vendors\boards\
board
\aws_demos\config_files\ota_config.h
Habilitación de la transferencia de datos de OTA a través de HTTP
-
Cambie
configENABLED_DATA_PROTOCOLS
aOTA_DATA_OVER_HTTP
. -
En las actualizaciones OTA, puede especificar ambos protocolos para que se pueda utilizar el protocolo MQTT o HTTP. Puede establecer el protocolo principal utilizado por el dispositivo en HTTP cambiando
configOTA_PRIMARY_DATA_PROTOCOL
porOTA_DATA_OVER_HTTP
.
nota
HTTP solo se admite para operaciones de datos de OTA. Para operaciones de control, debe utilizar MQTT.
Configuraciones específicas del dispositivo
- ESP32
-
Debido a una cantidad limitada de RAM, debe desactivar BLE cuando habilite HTTP como protocolo de datos OTA. En el archivo
vendors/espressif/boards/esp32/aws_demos/config_files/aws_iot_network_config.h
, cambie configENABLED_NETWORKS
porAWSIOT_NETWORK_TYPE_WIFI
solamente./** * @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 )
Uso de memoria
Cuando se utiliza MQTT para la transferencia de datos, no se requiere memoria de montón adicional para la conexión MQTT porque se comparte entre operaciones de control y datos. Sin embargo, para habilitar los datos a través de HTTP se requiere memoria de montón adicional. A continuación, se muestran los datos de uso de memoria de montón para todas las plataformas compatibles, calculados mediante la API xPortGetFreeHeapSize
de FreeRTOS. Debe asegurarse de que hay suficiente RAM para usar la biblioteca OTA.
- Texas Instruments 0SF-LAUNCHXL CC322
-
Operaciones de control (MQTT): 12 KB
Operaciones de datos (HTTP): 10 KB
nota
TI usa mucha menos memoria RAM porque aplica SSL en el hardware, por lo que no usa la biblioteca mbedtls.
- Microchip PIC32 Curiosity MZEF
-
Operaciones de control (MQTT): 65 KB
Operaciones de datos (HTTP): 43 KB
- Espressif ESP32
-
Operaciones de control (MQTT): 65 KB
Operaciones de datos (HTTP): 45 KB
nota
El BLE ESP32 ocupa unos 87 KB de RAM. No hay suficiente RAM para habilitarlos todos, lo que se menciona en las configuraciones específicas del dispositivo anteriores.
- Simulador de Windows
-
Operaciones de control (MQTT): 82 KB
Operaciones de datos (HTTP): 63 KB
- Nordic nrf52840-dk
-
No se admite HTTP.
Política de dispositivos
Esta política le permite utilizar MQTT o HTTP para las actualizaciones de OTA.
Cada dispositivo que reciba una actualización OTA utilizando HTTP debe estar registrado como una cosa en AWS IoT y debe tener una política adjunta como la que se muestra aquí. Puede encontrar más información acerca de los elementos de los objetos "Resource"
y "Action"
en las Acciones de la política principal de AWS IoT y en los recursos de acciones principales de 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}/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:partition
:iot:region
:account
:topic/$aws/things/${iot:Connection.Thing.ThingName}/jobs/*" ] } ] }
Notas
-
Los permisos
iot:Connect
permiten que su dispositivo se conecte a AWS IoT a través de MQTT. -
Los
iot:Subscribe
iot:Publish
permisos relacionados con los AWS IoT trabajos (.../jobs/*
) permiten al dispositivo conectado recibir notificaciones y documentos de trabajo, y publicar el estado de finalización de la ejecución de un trabajo. -
Los
iot:Receive
permisos permiten AWS IoT Core publicar mensajes sobre esos temas en el dispositivo conectado actual. Este permiso se verifica en cada entrega de un mensaje MQTT. Puede utilizar este permiso para revocar el acceso a los clientes que están actualmente suscritos a un tema.