Requisitos previos para las actualizaciones de OTA mediante HTTP
En esta sección se describen los requisitos generales para utilizar HTTP para realizar actualizaciones vía inalámbrica (OTA). A partir de la versión 201912.00, OTA de FreeRTOS puede utilizar el protocolo HTTP o MQTT para transferir imágenes de actualización de firmware desde AWS IoT a dispositivos.
nota
-
Aunque el protocolo HTTP puede utilizarse para transferir la imagen de firmware, la biblioteca de agente coreMQTT sigue siendo necesaria porque otras interacciones con AWS IoT Core utilizan esta biblioteca, incluido el envío o recepción de notificaciones de ejecución de trabajos, documentos de trabajo y actualizaciones de 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_PROTOCOLSaOTA_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_PROTOCOLporOTA_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_NETWORKSporAWSIOT_NETWORK_TYPE_WIFIsolamente./** * @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 CC3220SF-LAUNCHXL
-
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.
- Curiosity PIC32MZEF de Microchip
-
Operaciones de control (MQTT): 65 KB
Operaciones de datos (HTTP): 43 KB
- ESP32 de Espressif32
-
Operaciones de control (MQTT): 65 KB
Operaciones de datos (HTTP): 45 KB
nota
BLE en ESP32 usa alrededor de 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.
Notas
-
Los permisos
iot:Connectpermiten que su dispositivo se conecte a AWS IoT a través de MQTT. -
Los permisos
iot:Subscribeyiot:Publishen los temas de trabajos de AWS IoT (.../jobs/*) permiten que el dispositivo conectado reciba notificaciones de trabajo y documentos de trabajo, y publique el estado de finalización de una ejecución de trabajo. -
Los permisos
iot:Receivepermiten a 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.