Índice:

EAL - Coleta de dados GPS da indústria 4.0 no carro Rc: 4 etapas
EAL - Coleta de dados GPS da indústria 4.0 no carro Rc: 4 etapas
Anonim
EAL - Coleta de dados GPS da indústria 4.0 no carro Rc
EAL - Coleta de dados GPS da indústria 4.0 no carro Rc
EAL - Coleta de dados GPS da indústria 4.0 no carro Rc
EAL - Coleta de dados GPS da indústria 4.0 no carro Rc

Neste Instructable, vamos falar sobre como configuramos um módulo GPS em um carro RC e postamos os dados coletados em uma página da web para facilitar o monitoramento. Fizemos anteriormente uma instrução de como fabricamos nosso carro RC, que pode ser encontrada aqui. Isso está usando a mesma construção, embora tenhamos decidido descartar os sensores de ultrassom e aplicar o módulo GPS em seu lugar. No projeto, configuramos um banco de dados que contém os dados do GPS e construímos uma página da web onde os dados podem ser encontrados, bem como aplicamos em um mapa, para que você possa ver onde o carro esteve. Visite Joerha.dk para visualizar a página da web.

No fluxograma na parte superior, você pode ter uma visão geral das tecnologias que foram usadas neste projeto. Para obter o máximo deste Instructable, você precisa ter familiaridade com algumas, senão com todas as tecnologias utilizadas. Ele está vinculado de acordo com o uso. Compreender o Github também ajudará, pois vinculamos nossos repositórios ao github.

Lista de utilitários:

  • Github
  • Raspberry PI / Raspbian

    Pitão

  • Node.js

    • Express.js
    • Sequelize.js
    • MySQL
  • HTML, CSS, JS

    Bootstrap

Etapa 1: configuração do banco de dados

Configuração do banco de dados
Configuração do banco de dados

Neste segmento, falaremos sobre como construímos o sistema de banco de dados do qual nossos dados GPS são extraídos. O banco de dados é construído em MySQL conforme figura acima, onde temos duas tabelas - “Usuários” e “GPSEntries”. Em usuários, temos “Id” como nossa chave primária. Ele é usado como um identificador exclusivo. “Nome” é o nome do usuário atualmente logado. “Apikey” é a chave exclusiva dada ao usuário para acessar a API. “Ativo” é para verificar se o usuário está ativo, podemos desativar o usuário, para que ele não consiga acessar o banco de dados. “CreatedAt” e “UpdatedAt” é feito pelo processo que usamos para construir o banco de dados.

Na tabela “GPSEntries” temos todos os atributos contendo dados do módulo GPS. “Hora” é a hora atual do módulo GPS, usamos para mostrar a hora da postagem. Então temos a posição em coordenadas, bem como “velocidade” e “rumo”. Também temos muitos atributos de erro, que mostram se há um erro nos dados do GPS, fx nas coordenadas. Nós os adicionamos ao banco de dados, mas não os mostramos na página da web. “UserId” é uma chave estrangeira que contém o “id” da tabela de usuários. Isso é usado para mostrar qual usuário postou os dados.

Etapa 2: API

API
API

Neste segmento, falaremos sobre a API que controla o banco de dados e cola os dados nele. A API da web é construída com Node.js, que utiliza Express.js e Sequalize.js.

O Node.js é usado para executar JavaScript no lado do servidor, onde normalmente é usado principalmente para scripts do lado do cliente em uma página da web.

Express.js é a estrutura que usamos para construir a API.

Sequalize.js é usado para fazer os links entre os dados Gps e os atributos do banco de dados. Ele usa um método chamado ORM (Mapeamento Objeto-Relacional) para fazer isso. É aqui também que “CreatedAt” e “UpdatedAt” são criados (mostrado na etapa 1).

A API pode ser usada visitando api.joerha.dk. Em seguida, adicione / gps ao url, que mostrará todos os dados do banco de dados no formato JSON. Para controlar quantas entradas você deseja, você pode adicionar / 2 (o usuário) e / x (número de entradas) à url. Fx api.joerha.dk/gps/2/10 mostrará as 10 entradas mais recentes. Uma saída dos dados formatados é mostrada na imagem acima.

O código pode ser encontrado aqui: Github

Etapa 3: Aplicativo GPS / Python

Aplicativo GPS / Python
Aplicativo GPS / Python
Aplicativo GPS / Python
Aplicativo GPS / Python
Aplicativo GPS / Python
Aplicativo GPS / Python

Neste segmento falaremos sobre o script que roda no raspberryand coleta os dados GPS e os envia para a API.

Para coletar os dados do GPS estamos usando um daemon chamado gpsd (Figura 1). É aqui que coletamos os dados que postamos no banco de dados e a base para nossa tabela GPSEntries. O script que extrai os dados do gpsd e os posta na API é escrito em python.

O aplicativo inicializa um thread, para que possa executar gpsd e nosso programa ao mesmo tempo. Os dados Gpsd estão sendo transmitidos continuamente enquanto o GPS está ativo (Figura 2).

Em seguida, fazemos um loop while que envia continuamente sua carga útil para a API que contém os dados de GPS. Os dados são formatados como JSON. A carga útil consiste nos atributos vistos no GPSD. A tag.fix atua como um instantâneo dos dados atuais e os envia para a API. Isso é feito por request.post e usa o url e a chave de API. Print (r.status_code) é enviado ao usuário, para saber se os dados foram transmitidos corretamente. Time.sleep (0,5) é a frequência com que os dados são postados (Figura 3)

O código pode ser encontrado aqui: Github

Etapa 4: página da web do projeto

Página do Projeto
Página do Projeto

Neste segmento vamos falar sobre como fizemos nossa página que mostra os dados, e outras informações sobre o projeto. O site é construído com HTML, css e JS. Para começar, usamos o Bootstrap 4.0, que é uma biblioteca para HTML, css e JS. Ele vem com várias funções que o ajudam a construir seu site. Nós o usamos para a barra de navegação no topo, bem como para a configuração de linha e coluna com a qual o site é construído. Em seguida, temos outro pequeno script css controlando as cores do plano de fundo e dos cabeçalhos. Além disso, utilizamos uma biblioteca chamada lightbox, para que você clique nas imagens e elas aparecerão. O conteúdo do site contém um mapa do google, uma tabela de dados, um vídeo do carro em ação e um link para esta página.

O mapa do google é o mais interessante. O mapa é carregado por meio de uma API do google, onde uma chave de API exclusiva é inserida para que ele funcione. Os dados são transmitidos ao mapa em um intervalo de 500 ms. Fizemos uma função onde os últimos 100 pontos de dados no banco de dados são mostrados como marcadores, para que você possa acompanhar por onde o carro esteve. Isso é feito por meio do que é chamado de chamada AJAX.

Os conjuntos de dados na tabela de dados GPS são solicitados da mesma forma. Na tabela você pode ver as últimas 10 entradas, atualizadas em tempo real quando o GPS está ativo. Recuperamos dados do banco de dados em um intervalo de 500 ms.

O código pode ser encontrado aqui: Github

Recomendado: