Pré-requisitos para atualizações de OTA usando MQTT - FreeRTOS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Pré-requisitos para atualizações de OTA usando MQTT

Importante

Esta é uma versão arquivada do Guia do usuário do FreeRTOS para usar com a versão 202012.00 do FreeRTOS. Para obter a versão mais recente deste documento, consulte o Guia do usuário do FreeRTOS.

Esta seção descreve os requisitos gerais para o uso do MQTT para executar over-the-air (atualizações OTA).

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:

Requisitos mínimos

  • O firmware do dispositivo deve incluir as bibliotecas do FreeRTOS necessárias (coreMQTT, agente OTA e suas dependências).

  • A versão 1.4.0 ou posterior do FreeRTOS é necessária. Recomendamos usar a versão mais recente sempre que possível.

Configurações

A partir da versão 2019.12.00, o FreeRTOS OTA pode usar o protocolo HTTP ou MQTT para transferir imagens de atualização de firmware para dispositivos. AWS IoT Se você especificar os dois protocolos ao criar uma atualização OTA no FreeRTOS, cada dispositivo determinará o protocolo usado para transferir a imagem. Consulte Pré-requisitos para atualizações de OTA usando HTTP para obter mais informações.

Por padrão, a configuração de protocolos OTA em aws_ota_agent_config.h é usar o 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 )

Configurações específicas do dispositivo

Nenhum.

Uso de memória

Quando o MQTT for usado para transferência de dados, não será necessária nenhuma memória adicional para a conexão MQTT, pois ela é compartilhada entre operações de controle e de dados.

Política de dispositivo

Cada dispositivo que recebe uma atualização OTA usando o MQTT deve ser registrado como um item AWS IoT e deve ter uma política anexada, como a listada aqui. Você pode encontrar mais informações sobre os itens nos objetos "Resource" e "Action" em Ações da política principal do AWS IoT e Recursos da ação principal do 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/*" ] } ] }
Observações
  • As iot:Connect permissões permitem que seu dispositivo se conecte AWS IoT ao MQTT.

  • As iot:Publish permissões iot:Subscribe e sobre os tópicos de AWS IoT trabalhos (.../jobs/*) permitem que o dispositivo conectado receba notificações e documentos de trabalho e publique o estado de conclusão da execução de um trabalho.

  • As iot:Publish permissões iot:Subscribe e sobre os tópicos de fluxos AWS IoT OTA (.../streams/*) permitem que o dispositivo conectado busque dados de atualização do OTA de. AWS IoT Essas permissões são necessárias para executar atualizações de firmware pelo MQTT.

  • As iot:Receive permissões AWS IoT Core permitem publicar mensagens sobre esses tópicos no dispositivo conectado. Essa permissão é verificada em cada entrega de uma mensagem de MQTT. Você pode usar essa permissão para revogar o acesso a clientes que estão inscritos em um tópico atualmente.