Requisitos previos para las actualizaciones de OTA mediante MQTT - FreeRTOS

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 MQTT

importante

Esta es una versión archivada de la Guía del usuario de FreeRTOS para su uso con la versión 202012.00 de FreeRTOS. Para obtener la última versión de este documento, consulte la Guía del usuario de FreeRTOS.

En esta sección se describen los requisitos generales para utilizar MQTT con fines de ejecución over-the-air (actualizaciones OTA).

Para dar acceso, agregue permisos a los usuarios, grupos o roles:

Requisitos mínimos

  • El firmware del dispositivo debe incluir las bibliotecas de FreeRTOS necesarias (coreMQTT, Agente de OTA y sus dependencias).

  • Se necesita la versión 1.4.0 o posterior de FreeRTOS. Sin embargo, le recomendamos que utilice la versión más reciente cuando sea posible.

Configuraciones

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 Si especifica ambos protocolos al crear una actualización OTA en FreeRTOS, cada dispositivo determinará el protocolo utilizado para transferir la imagen. Para obtener más información, consulte Requisitos previos para las actualizaciones de OTA mediante HTTP.

De manera predeterminada, la configuración de los protocolos OTA en aws_ota_agent_config.h es utilizar el protocolo 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 )

Configuraciones específicas del dispositivo

Ninguna.

Uso de memoria

Cuando se utiliza MQTT para la transferencia de datos, no se requiere memoria adicional para la conexión MQTT porque se comparte entre operaciones de control y datos.

Política de dispositivos

Cada dispositivo que reciba una actualización OTA mediante MQTT debe estar registrado AWS IoT y tener una política adjunta como la que se indica 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}/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/*" ] } ] }
Notas
  • Los iot:Connect permisos permiten que el dispositivo se conecte a AWS IoT 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:Publish permisos iot:Subscribe y los permisos sobre los temas de las transmisiones AWS IoT OTA (.../streams/*) permiten al dispositivo conectado obtener datos de actualización de AWS IoT la OTA. Estos permisos son necesarios para realizar actualizaciones de firmware sobre MQTT.

  • Los iot:Receive permisos permiten AWS IoT Core publicar mensajes sobre esos temas en el dispositivo conectado. 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.