- 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.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.
Você pode acessar o código do projeto ou a simulação feita no Wokwi
Arduino IDE
LiquidCrystal_I2C
IRremote
Wire
RTClib
WiFi
PubSubClient
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 |