Construindo um protótipo físico de carro conectado com serviços AWS IoT


A indústria automotiva está passando por uma transformação notável. Impulsionado pela inovação de software program, o conceito de carro transcendeu seu papel tradicional como meio de transporte. Os veículos estão evoluindo para máquinas inteligentes com sistemas avançados de assistência ao motorista (ADAS), infoentretenimento sofisticado e recursos de conectividade. Para potenciar estas capacidades avançadas, as empresas automóveis precisam de gerir dados de diferentes fontes, o que requer uma solução para recolha de dados em escala. É aqui que os serviços AWS IoT entram em ação. Ter os dados na nuvem abre novas possibilidades, como criar ferramentas de análise de dados, permitir manutenção preditiva ou usar os dados para potencializar serviços generativos de IA para o usuário closing.

Visão geral da solução

Esta postagem irá guiá-lo no uso de um modelo de carro com Raspberry Pi para construir uma arquitetura escalonável e pronta para uso empresarial para coletar dados de uma frota de veículos para atender aos diferentes casos de uso mostrados na figura 1.

Construindo um protótipo físico de carro conectado com serviços AWS IoT

Figura 1 – Casos de uso

Arquitetura geral

A Figura 2 mostra uma visão geral abrangente da arquitetura completa:

arquitetura geral

Figura 2 – Arquitetura geral

{Hardware} e controlador native

Para o {hardware}, você usará este conjunto simples que fornece todos os componentes mecânicos e eletrônicos que você precisa. Um Raspberry Pi também é necessário. As instruções para construir e testar o equipment estão disponíveis no web site do fabricante web site e não será descrito nesta postagem do weblog.

Kit veicular inteligente para Raspberry Pi

Figura 3 – Package veicular inteligente para Raspberry Pi

O veículo é controlado por meio de uma interface net escrita em React usando WebSocket. No aplicativo net native, é possível visualizar o fluxo da câmera, ajustar a velocidade, controlar a direção do movimento e controlar as luzes. Também é possível usar um controlador de jogo para uma melhor experiência de direção.

controlador de carro local

Figura 4 – Controlador native do carro

A utilização do protótipo físico permite simular de forma eficaz as capacidades dos serviços descritos acima, demonstrando de forma prática a sua aplicabilidade aos casos de uso.

Coleta e visualização de dados

Os dados gerados pelo veículo são enviados para a nuvem by way of AWS IoT FleetWise usando um digital PODE interface.

Cada métrica de dados é então processada por um regra para AWS IoT e armazenado em Fluxo de tempo da Amazon. Todos os dados são exibidos em um painel usando Grafana gerenciada pela Amazon.

Coleta de dados

Figura 5 – Coleta de dados

Passo a passo

Todas as etapas detalhadas e o código completo estão disponíveis neste GitHub repositório. Recomendamos que você baixe o repositório completo e siga a abordagem passo a passo descrita no arquivo Readme.md. Neste artigo descrevemos a arquitetura geral e fornecemos os comandos para as etapas principais.

Pré-requisitos

  • Uma conta AWS
  • AWS CLI instalado
  • Carro inteligente conjunto para Framboesa Pi
  • Framboesa PI
  • Conhecimento básico de Python e JavaScript

Etapa 1: {Hardware} e controlador native

Você instalará o software program para controlar o carro e o Edge Agent para AWS IoT FleetWise no Raspberry Pi concluindo as etapas a seguir. Instruções detalhadas estão no acompanhamento repositório no ponto 6 do arquivo Readme.md.

  1. Configure a interface CAN digital
  2. Crie e instale seu Edge Agent para AWS IoT FleetWise
  3. Instale o servidor e o aplicativo para dirigir e controlar o carro

Arquitetura após a Etapa 1

Figura 6 – Arquitetura após Passo 1

Passo 2: Infraestrutura básica em nuvem

AWS CloudFormation é usado para implantar todos os recursos necessários para Amazon Timestream e Amazon Managed Grafana. O modelo pode ser encontrado no anexo repositório dentro da pasta Cloud.

Arquitetura após a Etapa 2

Figura 7 – Arquitetura após passo 2

Implantar o Amazon Managed Grafana (AWS CLI)

O primeiro componente que você implantará é o Amazon Managed Grafana, que hospedará o painel que mostra os dados coletados pelo AWS IoT FleetWise.

No repositório, na pasta “Cloud/Infra” você usará o CloudFormation 01-Grafana-Occasion.yml modelo para implantar os recursos usando o seguinte comando:

aws cloudformation create-stack 
--stack-name macchinetta-grafana-instance 
--template-body file://01-Grafana-Occasion.yml 
--capabilities CAPABILITY_NAMED_IAM

Assim que o CloudFormation atingir o estado CREATE_COMPLETE, você deverá ver o novo espaço de trabalho do Grafana.

Espaço de trabalho Grafana gerenciado pela Amazon

Figura 8 – Espaço de trabalho Amazon Managed Grafana

Implantar o Amazon Timestream (AWS CLI)

Fluxo de tempo da Amazon é um banco de dados de série temporal totalmente gerenciado, capaz de armazenar e analisar trilhões de pontos de dados de série temporal por dia. Este serviço será o segundo componente implantado que armazenará dados coletados pelo AWS IoT FleetWise.

No repositório, na pasta “Cloud/Infra” você utilizará o 02-Timestream-DB.yml modelo para implantar os recursos usando o seguinte comando:

aws cloudformation create-stack 
--stack-name macchinetta-timestream-database 
--template-body file://02-Timestream-DB.yml
--capabilities CAPABILITY_NAMED_IAM

Depois que o CloudFormation atingir o estado CREATE_COMPLETE, você deverá ver a nova tabela Timestream, banco de dados e função relacionada que será usada pelo AWS IoT FleetWise.

Etapa 3: configurar a frota do AWS IoT

Agora que configuramos a infraestrutura, é hora de definir os sinais para coletar e configurar o AWS IoT FleetWise para receber seus dados. Sinais são estruturas básicas que você outline para conter dados do veículo e seus metadados.

Por exemplo, você pode criar um sinal que represente a voltagem da bateria do seu veículo:

Sign definition
-	Sort: 				 Sensor
-	Knowledge sort: 			 float32
-	Title: 				 Voltage
-	Min:				 0 		
-	Max:				 8
-	Unit:				 Volt 
-	Full certified identify: Automobile.Battery.Voltage

Este sinal é usado como padrão em aplicações automotivas para comunicar informações semanticamente bem definidas sobre o veículo. Modele seu protótipo de carro de acordo com o VSS especificação. Esta é a estrutura que você usará no protótipo. Esta estrutura é codificada como json no sinais.json arquivo no Nuvem/Frota pasta no repositório.

Modelo do veículo em formato VSS

Figura 9 – Modelo do veículo em formato VSS

Passo 1: Crie o catálogo de sinais (AWS CLI)

  1. Use o comando a seguir usando a estrutura codificada em sign.json conforme descrito acima.
aws iotfleetwise create-signal-catalog --cli-input-json file://alerts.json

  1. Copie o ARN retornado pelo comando.

Se você abrir o console AWS na página AWS IoT FleetWise e selecionar o Catálogo de sinais seção do painel de navegação, você deverá ver o catálogo Sign recém-criado.

Catálogo de Sinais

Figura 10 – Catálogo de sinais

Passo 2: Crie o modelo do veículo

O modelo de veículo isso ajuda a padronizar o formato dos seus veículos e impõe informações consistentes em vários veículos do mesmo tipo.

  1. Abra o arquivo JSON e substitua o variável com o ARN copiado no comando anterior.
  2. Execute o comando:
    aws iotfleetwise create-model-manifest --cli-input-json file://mannequin.json

  3. Copie o ARN retornado pelo comando.
  4. Execute o comando:
    aws iotfleetwise update-model-manifest --name   --status ACTIVE

Se você abrir o console AWS na página AWS IoT FleetWise e selecionar o Modelos de veículos seção do painel de navegação, você deverá ver o modelo de veículo recém-criado.

Modelo do veículo: Sinais

Figura 11 – Modelo do veículo: Sinais

Etapa 3: crie o manifesto do decodificador

O manifesto do decodificador permite que a decodificação de sinais binários do veículo seja decodificada em um formato legível por humanos. Nosso protótipo usa o Protocolo de barramento CAN. Esses sinais devem ser decodificados de um PODE DBC (banco de dados CAN), que é um arquivo de texto contendo informações para decodificar dados brutos do barramento CAN.

  1. Abra o arquivo decoder.json e substitua o variável com o ARN copiado no comando anterior.
  2. Execute o comando para criar o modelo:
    aws iotfleetwise create-model-manifest --cli-input-json file://mannequin.json

  3. Execute o comando para habilitar o decodificador:
    aws iotfleetwise update-decoder-manifest --name  --status ACTIVE

Se você abrir o console AWS na página AWS IoT FleetWise e selecionar o Modelos de veículos seção do painel de navegação, você deverá ver o manifesto do decodificador recém-criado.

Modelo do veículo: Sinais

Figura 12 – Modelo do veículo: Manifesto SignalsDecoder

Etapa 4: Crie o(s) veículo(s)

O AWS IoT FleetWise tem sua própria construção de veículo, mas o recurso subjacente é um Coisa do AWS IoT Coreque é uma representação de um dispositivo físico (seu veículo) que contém metadados estáticos sobre o dispositivo.

  1. Abra o console AWS no Página AWS IoT FleetWise
  2. No painel de navegação, escolha Veículo
  3. Escolher Criar veículo
  4. Selecione o modelo do veículo e o manifesto associado nas caixas de listagem

Propriedades do veículo

Figura 13 – Propriedades do veículo

Etapa 5: criar e implantar uma campanha

Uma campanha instrui o software program AWS IoT FleetWise Edge Agent sobre como selecionar e coletar dados e onde transmiti-los na nuvem.

  1. Abra o console AWS na página AWS IoT FleetWise
  2. No painel de navegação, escolha Campanhas
  3. Escolher Criar campanha
  4. Para Tipo de esquema, escolha Baseado em tempo
  5. Para a duração da campanha, escolha um período consistente
  6. Para Período de tempo digite 10.000
  7. Para Nome do sinal selecione o Velocidade actual do veículo
  8. Para Amostra máxima contar selecionar 1
  9. Repita as etapas 7 e 8 para todos os outros sinais
  10. Para Destino selecione Fluxo de tempo da Amazon
  11. Para Nome do banco de dados Timestream selecione MacchinettaDB
  12. Para Nome da tabela de fluxo de tempo selecione macchinettaTable
  13. Escolher Próximo
  14. Para Nome do veículo selecione Macchinetta
  15. Escolher Próximo
  16. Revise e escolha Criar

Figura 14 – Criar e implantar uma campanha

Depois de implantado, após alguns segundos, você deverá ver os dados dentro da tabela Amazon Timestream

Amazon TimeStream

Figura 15 – Tabela Amazon Timestream

Depois que os dados são armazenados no Amazon Timestream, eles podem ser visualizados usando o Amazon Managed Grafana.

O Amazon Managed Grafana é um serviço totalmente gerenciado para Grafana, uma well-liked plataforma de análise de código aberto que permite consultar, visualizar e alertar sobre suas métricas.

Você o usa para exibir dados relevantes e detalhados de um único veículo em um painel:

Amazônia Grafana

Figura 16 – Amazon Managed Grafana

Limpar

Instruções detalhadas estão no repositório que acompanha no closing do Leiame.md arquivo.

Conclusão

Esta solução demonstra o poder do AWS IoT na criação de uma arquitetura escalável para coleta e gerenciamento de dados de frotas de veículos. Começando com um protótipo de carro movido a Raspberry Pi, mostramos como abordar os principais casos de uso da indústria automotiva. No entanto, isto é apenas o começo, o protótipo foi projetado para ser modular e ampliado com novas capacidades. Aqui estão algumas maneiras interessantes de expandir a solução:

Aplicativo Internet de gerenciamento de frota: Desenvolva um aplicativo net abrangente usando o AWS Amplify para monitorar uma frota inteira de veículos. Este aplicativo pode fornecer uma visão de alto nível do estado de saúde de cada veículo e permitir uma análise detalhada do veículo particular person.

Transmissão de vídeo ao vivo: Integre bibliotecas do Amazon Kinesis Video Streams ao aplicativo Raspberry Pi para permitir feeds de vídeo em tempo actual de veículos.

Manutenção Preditiva: Aproveite os dados coletados por meio do AWS IoT FleetWise para criar modelos de manutenção preditiva, aumentando a confiabilidade da frota e reduzindo o tempo de inatividade.

Integração de IA generativa: Discover o uso de serviços generativos de IA, como o Amazon Bedrock, para gerar conteúdo personalizado, prever o comportamento do usuário ou otimizar o desempenho do veículo com base nos dados coletados.

Pronto para levar sua solução de veículo conectado para o próximo nível? Convidamos você a:

  • Discover mais: aprofunde-se nos serviços AWS IoT e em suas aplicações na indústria automotiva. Visite o Documentação do AWS IoT para saber mais.
  • Coloque a mão na massa: tente construir este protótipo sozinho usando as instruções detalhadas em nosso GitHub repositório.
  • Conecte-se com especialistas: tem dúvidas ou precisa de orientação? Entre em contato com nossos especialistas em AWS IoT.
  • Junte-se à comunidade: compartilhe suas experiências e aprenda com outras pessoas no AWS IoT Fórum Comunitário.

Sobre os Autores

Leonardo Fenu é um arquiteto de soluções que ajuda clientes da AWS a alinhar sua tecnologia com seus objetivos de negócios desde 2018. Quando não está caminhando nas montanhas ou passando tempo com sua família, ele gosta de mexer em {hardware} e software program, explorando as mais recentes tecnologias de nuvem, e encontrar maneiras criativas de resolver problemas complexos.

Eduardo Randazzo é arquiteto de soluções especializado em DevOps e governança de nuvem. Em seu tempo livre, ele gosta de construir dispositivos IoT e mexer em devices, seja como um caminho potencial para o próximo grande sucesso ou simplesmente como uma desculpa para comprar mais Lego.

Luca Pallini é arquiteto sênior de soluções de parceiros na AWS, ajudando parceiros a se destacarem no setor público. Ele atua como membro da Technical Area Group (TFC) da AWS, com especialização em bancos de dados, principalmente Oracle Database. Antes de ingressar na AWS, ele acumulou mais de 22 anos de experiência em design de banco de dados, arquitetura e tecnologias de nuvem. Nas horas vagas, Luca gosta de passar o tempo com a família, fazer caminhadas, ler e ouvir música.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *