Skip to content

Repositório que contém o material do TP de Sensorização e Ambiente. Consiste numa aplicação android cujo objetivo é dividir custos de uma viagem de forma rápida e eficiente.

Notifications You must be signed in to change notification settings

jbtescudeiro16/TripMates

Repository files navigation

TripMates

Objetivos

No âmbito da Unidade curricular de Sensorização e Ambiente, inserida no perfil de Sistemas Inteligentes do 1º ano do Mestrado em Engenharia Informática do ano letivo 2023/2024, foi-nos proposto a construção de uma aplicação que utilizasse como base dados recolhidos por sensores.

Decidimos construir um projeto, cujo objetivo principal ́é a construção de uma aplicaçao móvel que permita aos utilizadores registar despesas de viagem, calcular automaticamente os custos com base nos dados do carro e no preço atual dos combustíveis, e atribuir uma nota à viagem com base na qualidade da condução. O TripMates permite integrar sensores físicos, como o acelerometro do dispositivo movel, e sensores virtuais, como o acesso ao telefone durante a viagem, para avaliar a qualidade da viagem de forma automática.

A nossa aplicação foi desenvolvida em Java+Kotlin , utilizando a ferramenta AndroidStudio. O armazenamento dos dados foi feito utilizando o Google Firebase.

Sensores Utilizados

O TripMates utiliza um conjunto de sensores como :

  1. Localização (Físico)- O TripMates- utiliza o sensor de localização físico do dispositivo móvel para rastrear a rota da viagem realizada. Essa informação é crucial para calcular a distância percorrida, a duração da viagem e outras métricas relacionadas à viagem. O cálculo da distância percorrida é feito através da soma acumulada das distâncias entre as posições registadas sempre que o dispositivo deteta uma mudança de posição. Isso permite que a App acompanhe continuamente o movimento do utilizador e forneça informações precisas sobre a rota e a distância total percorrida.

  2. Acelerómetro (Físico)- A aplicação utiliza o acelerómetro físico do dispositivo para avaliar a qualidade da condução. O acelerómetro deteta os movimentos do veículo, a cada 5 segundos, como acelerações e desacelerações e analisa esses dados para determinar a suavidade da condução. Com base nos dados do acelerómetro, o TripMates classifica a qualidade da condução em três categorias:

    1. Leve: Movimentos leves, no intervalo de 18 a 22 unidades de aceleração.Isso pode incluir pequenas acelerações e desacelerações suaves.
    2. Normal: Movimentos normais, no intervalo de 22 a 25 unidades de aceleração. Isso pode incluir acelerações moderadas e desacelerações controladas.
    3. Forte: Movimentos fortes, com mais de 25 unidades de aceleração. Isso pode incluir acelerações bruscas, travagens repentinas ou curvas acentuadas.
  3. Desbloqueio da Tela do dispositivo (Virtual)- O TripMates utiliza o sensor virtual de desbloqueio da tela do dispositivo para determinar se o utilizador está ativamente envolvido com a App durante a viagem. Isso ajuda a identificar se o utilizador utiliza o dispositivo enquanto dirige, o que pode afetar a segurança da viagem.

  4. Registo dos Pre ̧cos dos Combust ́ıveis (Virtual)-A app utiliza um Web scraper para registar os preços atuais dos combustíveis,capturando os dados sobre o preço médio dos combustíveis presentes na tabela disponível em Mais Gasolina - Preço dos combustíveis.

Modo de Funcionamento

Recolha dos Dados

A recolha de dados no TripMates é realizada principalmente através dos sensores do dispositivo móvel. Isso inclui o sensor de localização para rastrear a rota da viagem, o sensor de desbloqueio da tela e o acelerómetro para avaliar a qualidade da condução. Os dados são continuamente capturados durante a viagem para fornecer uma análise detalhada da experiência do utilizador. Além disso, é importante destacar que ́e possível registar todos os parâmetros durante toda a viagem. Quando o utilizador inicia uma viagem, o serviço do TripMates passa para um Foreground Service, garantindo que a aplicação permaneça em primeiro plano e tenha prioridade, mesmo quando o dispositivo estiver a executar outras tarefas em segundo plano. Isso permite uma recolha contínua e confiável de dados, garantindo uma análise precisa e completa da viagem.

Armazenamento dos dados

Criamos 3 coleções para o armazenamento dos dados:

  1. fuel prices:esta coleção mantém informações atualizadas sobre os preços dos combustíveis em Portugal.
  2. trips:aqui são armazenados os detalhes de cada viagem realizada pelos utilizadores.
  3. users: nesta coleção, são mantidos os perfis dos utilizadores.

Fluxogramas

De seguida esão apresentados dois diagramas.

Abaixo podemos observar o diagrama que mostra a aruitetura da aplicação, bem como os componentes essenciais à realização da mesma.

Arquitetura TripMates


Em baixo encontra-se a imagem que mostra o fluxo na aplicação, que um utilizador pode tomar, mediante as ações selecionadas.

Utilizacao TripMates

Layout da aplicação

Nesta secção serão apresentados os layouts finais da aplicação. Os layouts foram construídos utilizando a ferramenta Canva, que facilitou muito o trabalho.

Página Inicial

Assim que o utilizador entra na páginal inicial, é-lhe apresentada a figura da imagem abaixo. O utilizador tem a possibilidade de fazer login com as suas credenciais armazenadas na base de dados, ou caso ainda não possua uma conta, tem a possibilidade de fazer um novo registo que está mencionado na figura da subseção Registo.

Página Inicial do TripMates


Registo

Na página de registo é possível criar uma nova conta, inserindo os dados do nome de utilizador, e-mail, password e confirmação da password. Após estes dados serem inseridos, e quando o utilizador cria no botão de registo, e automaticamente criada uma nova entrada na base de dados com estes dados, e o utilziador fica válido.

Página de Registo


Página principal do utilizador

Depois da autenticação de um utilziador acontecer na sua normalidade, é apresentada uma página em que são listadas as viagens de um utilizador, da mais recente para a mais antiga, com os respetivos dados. É também apresentado o nome do utilizador em cima, bem como um botão que, quando clicado, vai para a página apresentada em Começar Viagem.

Página do utilizador


Começar Viagem

Assim que um utilizador seleciona iniciar uma nova viagem, surge a página em que é possível escolher o número de viajantes entre 1 e 10, o combustível que o carro consome, bem como o consumo médio do veículo por 100 km. Caso um utilzador não pretenda preencher estes dados, os mesmos são completados com os da última viagem.

Página de início de viagem


Viagem a decorrer

Quando é iniciada uma viagem, é iniciado um serviço que lança uma notificação, como podemos ver na figura abaixo, que fica a correr em backgroud, garantindo que mesmo sem a aplicação estar aberta em primeiro plano, os sensores continuam a funcionar na sua normalidade.

Página de início de viagem


Fim de viagem

Quando o utilizador termina a viagem, é mostrada uma página igual à apresentada em baixo, que contém informações sobre a duração, distância percorrida, custo total da viagem, custo por indivíduo e o rating da viagem, calculado através do acelerómetro do telemóvel.

Página de início de viagem

Os dados calculados são enviados para a base de dados e serão mostrados na lista de viagens realizadas pelo utilizador que fica na Pagina Principal do Utilizador.

About

Repositório que contém o material do TP de Sensorização e Ambiente. Consiste numa aplicação android cujo objetivo é dividir custos de uma viagem de forma rápida e eficiente.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published