Índice:

O Mapeador de Caminho: 6 etapas
O Mapeador de Caminho: 6 etapas

Vídeo: O Mapeador de Caminho: 6 etapas

Vídeo: O Mapeador de Caminho: 6 etapas
Vídeo: 05 - MAPEAMENTO DE PROCESSOS 2024, Novembro
Anonim
O Mapeador de Caminho
O Mapeador de Caminho
O Mapeador de Caminho
O Mapeador de Caminho
O Mapeador de Caminho
O Mapeador de Caminho

Neste projeto de IoT, conectamos um NEO-6M (módulo GPS) para entregar dados de localização por meio do Arduino a uma planilha Excel que será salva no computador. Depois, com o Tableau Public, criamos uma visualização de dados desses dados para mapear o caminho que tomamos. Embora essa seja uma forma de coletar e apresentar dados em tempo real em uma visualização de dados altamente correlacionada, esse processo também pode ser aplicado a outros projetos orientados a dados.

Etapa 1: Adquirindo Materiais

Aquisição de materiais
Aquisição de materiais

Para este projeto, você precisará do seguinte:

  • Módulo NEO-6M GPS
  • Arduino Uno
  • Fios de jumper macho / macho (você precisará de 4 fios)
  • Cabo USB 2.0 Tipo A a B
  • Computador com estes programas: Tableau Public, Arduino IDE (com TinyGPS ++) e Processing

Etapa 2: Configurando os Dispositivos

Configurando os Dispositivos
Configurando os Dispositivos
Configurando os Dispositivos
Configurando os Dispositivos

Primeiro, precisamos configurar o módulo GPS com o Arduino UNO para que o Arduino nos forneça uma interface para mostrar os dados. Cada um dos quatro fios conectados ao NEO-6M corresponde a portas específicas. Se o NEO-6M não vier com os fios, você terá que conectá-lo diretamente com os fios de jumper. No diagrama acima, o vermelho corresponde à alimentação (VCC), o preto ao aterramento (GND), o amarelo à transmissão de dados (TxD) e o branco à recepção de dados (RxD). Conectamos esses fios a fios de jumper macho / macho para que possamos conectá-los ao Arduino. Seguindo o diagrama acima, conectamos o fio terra ao pino digital GND no Arduino, o fio TxD a 4, o fio RxD a ~ 3 e o fio VCC a 5V para tensão. Em uma etapa futura, precisaremos definir TxD e RxD com os números corretos no SoftwareSerial.

Assim que os dois dispositivos estiverem conectados um ao outro, precisamos fornecer uma fonte de alimentação. Conecte o cabo USB 2.0 ao seu laptop e a luz do NEO-6M deve acender.

Etapa 3: codificando o Arduino para extrair dados

Codificando o Arduino para extrair dados
Codificando o Arduino para extrair dados

Agora que temos os dispositivos configurados para coletar dados de GPS dos satélites, escreveremos o código para analisar os dados de GPS que desejamos. Supondo que você captou um sinal (meu módulo GPS piscaria em azul), o NEO-6M por padrão imprime dados brutos no monitor serial na forma de mensagens NMEA, que se parecem com $ GP seguido por mais letras e uma série de números. A imagem acima dá uma ideia geral do que deve ser mostrado em seu monitor serial depois que o código básico do Arduino for inserido.

Para explicar o código que anexei (ou se você gostaria de tentar codificá-lo você mesmo), você precisa primeiro incluir as bibliotecas SoftwareSerial e TinyGPS ++ (para a última, Sketch> Incluir> Adicionar biblioteca. ZIP). SoftwareSerial nos permite ter uma conexão serial; O TinyGPS ++ nos dá uma ferramenta fácil para imprimir as informações desejadas de uma forma legível. Certifique-se de inicializar o objeto SoftwareSerial com os pinos correspondentes no Arduino. Na função de configuração, usamos 9600 como a taxa de transmissão.

Para os fins deste instrutível, imprimiremos apenas sete tipos de dados na função de loop: latitude (graus), longitude (graus), velocidade (km), curso (graus), altitude (km), número de satélites em usar e hdop. Você pode pesquisar a sintaxe para imprimir essas informações na biblioteca Arduiniana. A forma geral é Serial.print (). Por exemplo, para imprimir a longitude, digitaríamos Serial.print (gps.location.lng (), 6). O 6 representa quantos dígitos queremos à direita da vírgula decimal.

Meu código tem caracteres extras impressos para uma regex facilmente formatada na próxima etapa. Se quiser parar nesta etapa, no entanto, sinta-se à vontade para formatar os dados de maneira diferente para facilitar a visualização no monitor serial.

Etapa 4: Utilizando Processamento para Ouvir

Utilizando Processamento para Ouvir
Utilizando Processamento para Ouvir

Embora tenhamos o código para o IDE do Arduino configurado, temos o problema de salvar esses dados. A partir de agora, só podemos visualizar os dados no monitor serial enquanto os coletamos. Há muitas maneiras de registrar esses dados, mas escolhi o Processing principalmente porque sua interface imita o IDE do Arduino e usa Java, uma linguagem com a qual estou familiarizado (observe que você também pode controlar a placa do Arduino com o Processing se baixar o Firmata). O processamento escuta na porta conectada ao Arduino e tem a capacidade de manipular os dados que são lidos no monitor serial. Para encontrar o nome desta porta, consulte seu arquivo Arduino IDE e verifique em Ferramentas> Porta.

Eu forneci o código de processamento, mas aqui está uma visão geral rápida de como o código funciona.

Antes da função de configuração, certifique-se de ter variáveis para a porta, a tabela resultante, a linha com a qual trabalharemos e o nome do arquivo. Em seguida, na função de configuração, existem parâmetros para definir o tamanho da janela Executar, mas esses números não afetam nossa funcionalidade (por exemplo, defina-os para (500, 500)). Ao inicializar a porta, use o nome da porta no formato String e uma taxa de transmissão de 9600. Por último, crie as nove colunas (para as sete categorias de GPS, hora e data) para inicializar a tabela.

Na função de desenho, usamos as funções internas de data e hora para acompanhar quando cada conjunto de dados GPS é extraído. Agora, para ler o fluxo de dados do Arduino e colocá-los nos cabeçalhos apropriados com a hora e data corretas, utilizamos expressões regulares.

Eu uso regex para analisar os dados exatos com a função matchAll que procura qualquer expressão entre o sinal de igual e o ponto-e-vírgula (os delimitadores que coloquei em meu código do Arduino). Isso subsequentemente coloca todas as tags correspondentes, os dados numéricos, em uma matriz bidimensional. Podemos então recorrer a esses índices de matriz para colocá-los sob os cabeçalhos da planilha do Excel.

Para salvar o novo arquivo.csv, usamos um pressionamento de tecla para fechar a janela Executar. Quanto mais você esperar para pressionar uma tecla, mais dados coletará. Seguindo a maneira de outro guia, também decidi salvar o arquivo na pasta de dados com a data e a hora como nome do arquivo.

Etapa 5: Exibir dados no Tableau Public

Exibindo dados no Tableau Public
Exibindo dados no Tableau Public
Exibindo dados no Tableau Public
Exibindo dados no Tableau Public
Exibindo dados no Tableau Public
Exibindo dados no Tableau Public

A etapa final envolve alguma visualização de dados. Existem muitos programas para criar e exibir visualizações de dados, ou seja, Plotly, mas para este projeto usaremos o Tableau. Abra o Tableau Public e abra o arquivo do Excel salvo como um arquivo de texto. Para criar uma planilha, clique na Planilha 1 no canto inferior esquerdo.

Como estamos trabalhando com dados GPS, usaremos um mapa para representar nossas informações. Na coluna da esquerda onde está escrito Medidas, arrastaremos a Longitude para as Colunas e a Latitude para as Linhas no topo. O Tableau padroniza ambas as medidas para AVG, então clique no menu suspenso ao lado dos termos e altere ambos para Dimensão. Agora o mapa deve ter um caminho exibido usando os valores de latitude e longitude coletados.

Para eliminar erros em seus dados (o que também pode ser feito antes de abrir o Tableau), você pode optar por excluir alguns círculos de local clicando neles e selecionando a opção. Meu módulo GPS não é 100% preciso, pois algumas partes do meu caminho não foram localizadas, mas o caminho geral foi registrado.

Etapa 6: Refinando a Viz

Refinando o Viz
Refinando o Viz

A última parte é tornar esses dados mais legíveis. Se você quiser o contexto da rua, pode ir para Mapa> Camada do mapa> Ruas e rodovias. Sinta-se à vontade para experimentar outras marcas. Arrastei Velocidade sobre Cor para mostrar como a intensidade da cor aumenta quando a velocidade aumenta. Também usei Detalhe em vez de Rótulo para o curso porque o Rótulo exibiria os números no mapa, enquanto eu só queria que as informações aparecessem quando você passa o mouse sobre os pontos de localização.

Agora que você já experimentou todo o processo de coleta de dados e exibição do que tem em uma visualização de dados, pode aplicar isso a outros projetos!

por Pingdi Huang, verão de 2018

Recomendado: