- Descrição do Projeto
- Objetivos do Projeto
- Acesso ao projeto
- Arquitetura do TrackVision
- Ferramentas utilizadas
- Bibliotecas utilizadas
- Componentes necessários
- Montagem
- Reprodução
- Como reproduzir o Dashboard Dinâmico
- Como utilizar o TrackVision
- Pessoas Desenvolvedoras do Projeto
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.
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.
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.1Implementar a capacidade de capturar os tempos de volta em tempo real, utilizando o ESP32 e sensores adequados.
-
2.Transmissão de Dados:2.1Criar 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.1Desenvolver uma interface de usuário que seja intuitiva e forneça informações claras sobre o desempenho dos corredores.
-
4.Escalabilidade:4.1Garantir que o sistema possa ser facilmente escalado para atender a diferentes tipos de corridas e número de participantes.
-
5.Robustez e Confiabilidade:5.1Assegurar que o sistema funcione de maneira consistente em diferentes condições de corrida e ambientes.
Você pode acessar o código do projeto ou a simulação feita no Wokwi
Arduino IDE
LiquidCrystal_I2CIRremoteWireRTClibWiFiPubSubClient
| 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 |
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.
-
-
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.
-
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.1.1.No campo URLs Adicionais para Gerenciadores de Placas, adicione o seguinte link: https://dl.espressif.com/dl/package_esp32_index.json;
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
-
1.Ligue a máquina virtual (VM) de sua escolha e abra a porta8050. -
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 oIP_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
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.
Alice Santos Bulhões |
Eduardo Oliveira Cardoso Madid |
Lucas Henzo Ide Yuki |
Nicolas Haubricht Hainfellner |
|---|---|---|---|
| RM:554499 | RM:556349 | RM:554865 | RM:556259 |



