Skip to content

L-A-N-E/TrackVision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

TrackVision 🏎️

banner

Outros Idiomas

PortuguêsInglês

Índice 📃

Descrição do projeto 📝

Introdução 🥇

Nós, da L.A.N.E., desenvolvemos um sistema de cronometragem de corridas utilizando o ESP32, um microcontrolador avançado com conectividade Wi-Fi embutida. O objetivo é criar um dispositivo IoT que captura os tempos de volta em tempo real e envia essas informações para a nuvem, permitindo monitoramento e análise de desempenho.

ESP32 📟

O ESP32 é um microcontrolador que facilita a conexão com a Internet, possibilitando a coleta e o envio de dados de maneira bidirecional. Utilizamos tecnologias como o Fiware para gerenciamento de dados e a plataforma Docker no Microsoft Azure para orquestração e execução de containers. O Fiware fornece uma infraestrutura robusta para construir aplicações inteligentes, enquanto o Docker permite o gerenciamento de ambientes escaláveis. A Microsoft Azure hospeda e escala esses serviços, garantindo alta disponibilidade e performance.

Para monitorar e visualizar o fluxo de dados do ESP32, utilizamos o Postman, uma ferramenta que facilita a execução de requisições HTTP e a análise de respostas. Com o Postman, testamos as APIs, verificamos a integração dos dados e garantimos que a comunicação entre o dispositivo e o servidor funcione conforme o esperado.

Objetivos do Projeto 🎯

O objetivo principal do projeto TrackVision é desenvolver um sistema de cronometragem de corridas que seja eficiente e fácil de usar. As metas específicas incluem:

  • 1. Captura de Voltas em Tempo Real:

    • 1.1 Implementar a capacidade de capturar os tempos de volta em tempo real, utilizando o ESP32 e sensores adequados.
  • 2. Transmissão de Dados:

    • 2.1 Criar uma infraestrutura para enviar os dados de volta para a nuvem, permitindo o monitoramento em tempo real e a análise posterior.
  • 3. Interface Amigável:

    • 3.1 Desenvolver uma interface de usuário que seja intuitiva e forneça informações claras sobre o desempenho dos corredores.
  • 4. Escalabilidade:

    • 4.1 Garantir que o sistema possa ser facilmente escalado para atender a diferentes tipos de corridas e número de participantes.
  • 5. Robustez e Confiabilidade:

    • 5.1 Assegurar que o sistema funcione de maneira consistente em diferentes condições de corrida e ambientes.

Acesso ao projeto 📁

Você pode acessar o código do projeto ou a simulação feita no Wokwi

Arquitetura do TrackVision 🧾

arquitetura_do_TrackVision

Ferramentas utilizadas 🛠️

  • Arduino IDE

Bibliotecas utilizadas 📚

  • LiquidCrystal_I2C
  • IRremote
  • Wire
  • RTClib
  • WiFi
  • PubSubClient

Componentes necessários 🧰

Componente Quantidade
Cabos 10
ESP32 1
IR Receiver 1
IR Remote 1
LCD 16x2 com módulo I2C 1
Real Time Clock - RTC 1
Cabo USB 1

Montagem 🔧

Imagem da Montagem imagem-montagem

Cuidados durante a montagem ⚠️

Atenção! Lembrar de conectar os terminais negativos e positivos com o esp32 para passar a corrente!

  • 1. Conectando LCD:

    • 1.1. Atenção! Estamos utilizando um LCD 16x2 com um módulo I2C!;

    • 1.2. Conecte o VCC no terminal positivo (5V), GND no terminal negativo (GND), o SDA no pino 21 e o SCL no pino 22;

    • 1.3. Teste para ver se o display está funcionando, se tiver problemas com o display, pode ser algumas dessas possibilidades: o LCD está quebrado, com mal contato ou o contraste está baixo;

      • 1.3.1. Para aumentar o contraste do display basta girar o trimpot de ajuste do contraste no sentido anti-horário. Por sua vez, para diminuir o contraste gire no sentido horário.
      Imagem de onde fica o trimpot de ajuste do contraste Terminais do DHT11
  • 2. Conectando o RTC:

    • 2.1. Conecte o SCL no pino 22 (junto com o SCL do LCD) do arduino, o SDA no pino 21 (junto com o SDA do LCD), o 5V no terminal positivo do breadboard e o GND no terminal negativo do breadboard.
    • 2.2. O RTC é um componente delicado. Manipule com cuidado para evitar danos.
    • 2.3. Certifique-se de que o RTC esteja configurado com a hora correta. Uma configuração incorreta pode levar a erros no funcionamento do seu projeto.
    • 2.4. Verifique se o RTC está recebendo a alimentação adequada. Uma alimentação insuficiente ou excessiva pode danificar o RTC ou afetar seu funcionamento.
  • 3. Conectando o IR-receiver:

    • 3.1. Conecte o 5V no terminal positivo do breadboard e o GND no terminal negativo do breadboard e o DATA conecte no pino 15.
    • 3.2. O IR-receiver é um componente delicado manipule o com cuidado.
    • 3.3. Verifique se o IR-receiver está recebendo a alimentação adequada.
  • 4. Utilizando o IR-remote:

    • 4.1. Confira os comandos que são enviados em cada botão do controle na documentação.

Reprodução ⚙️

  • 1. Após a montagem do projeto, é necessário inserir o código por meio de um computador que possui o programa Arduino IDE instalado;

  • 2.Ao abrir a IDE, é necessário fazer algumas coisas para selecionar o ESP32:

    • 2.1. Clique em Arquivo > Preferências.
    • 2.2. Clique em Ferramentas > Placas > Gerenciar Placas.
      • 2.2.1. Na janela que se abre, digite ESP32 na caixa de pesquisa;
      • 2.2.2. Selecione a plataforma esp32 da lista e clique em Instalar;
    • 2.3. Após a instalação, vá novamente em Ferramentas > Placas.
      • 2.3.1. Você verá uma nova opção para selecionar as placas ESP32. Escolha a placa específica que você está usando;
  • 3. Baixe as bibliotecas necessárias no Arduino IDE;

  • 4. Faça as devidas modificações no código disponível:

      const char* default_SSID = "SUA_INTERNET"; // Nome da rede Wi-Fi 
      const char* default_PASSWORD = "SENHA_DA_SUA_INTERNET"; // Senha da rede Wi-Fi 
      const char* default_BROKER_MQTT = "IP_PÚBLICO"; // IP do Broker MQTT 
    • 4.1. Substitua a "SUA_INTERNET" pelo nome de sua internet;
    • 4.2. Substitua a "SENHA_DA_SUA_INTERNET" pela senha de sua internet;
    • 4.3. Substitua o "IP_PÚBLICO" pelo ip do servidor do Cloud Service de sua preferência:
      • 4.3.1. Não disponibilizamos o IP por motivos de segurança. Para testar este código, você precisará de um serviço de nuvem, como Azure ou AWS. Além disso, será necessário instalar o FIWARE e o Docker nesse serviço e, por fim, abrir as portas necessárias.
  • 5. Transferir o código do computador para o ESP32 por meio do Cabo USB;

  • 6. Teste o sistema para verificar se ele está recebendo instruções e enviando dados via Postman;

  • 7. Com tudo montado e pronto, é necessário levá-lo para o ambiente em que será implementado e ligá-lo á uma fonte;

OBS: Se o ESP32 for uma versão mais antiga, pode ser necessário pressionar o botão BOOT na placa durante a transferência do código

Como reproduzir o Dashboard Dinâmico 📈

  • 1. Ligue a máquina virtual (VM) de sua escolha e abra a porta 8050.

  • 2. Abra o terminal Linux.

  • 3. Siga os passoas a seguir:

    • 3.1. Crie uma pasta e entre dentro dela:

        mkdir dashboard
        cd dashboard
    • 3.2. Crie um arquivo python e dentro do arquivo copie o código em python disponível neste repositório:

      • 3.2.1. No arquivo, substitua o IP_ADDRESS = "PUBLIC_IP" pelo IP do servidor do Cloud Service de sua preferência.
        nano dashboard.py
    • 3.4. Crie uma pasta assets e entre dentro dela:

        mkdir assets
        cd assets
    • 3.5. Crie um arquivo css e dentro do arquivo copie o código disponível neste repositório:

        nano styles.css
  • 4. Após os passos a cima, instale as depêndencias (como o Dash):

       cd ..
       pip install dash
  • 4. Inicie o código em Python:

       python3 dashboard.py
  • 5. Por fim, abra seu navegador e pesquise: PUBLIC_IP:8050

Como utilizar o TrackVision 📌

  • 1. Espere a conexão com a internet, checando o monitor serial.
  • 2. Clique no POWER, e espere a conexao com o MQTT.
  • 3. Cada clique no POWER contará uma volta e mostrará o tempo dela.
  • 4. Na penúltima volta, aperte o 0 uma vez, após apertar o 0, o proximo clique no POWER encerrará a corrida.
  • 5. Mensagem final será mostrada com o tempo total da corrida.
  • 6. Se por acaso, voce iniciou a corrida sem querer, para voltar ao MENU, aperte MENU no IR-Controller.

Pessoas Desenvolvedoras do Projeto 🌐


Alice Santos Bulhões

Eduardo Oliveira Cardoso Madid

Lucas Henzo Ide Yuki

Nicolas Haubricht Hainfellner
RM:554499 RM:556349 RM:554865 RM:556259

About

Dispositivo IoT para contabilizar as voltas de um carro em uma pista.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •