Índice:
- Etapa 1: Configuração Do AndroidManifest
- Etapa 2: Entendendo As Classes De Serviço "PavimentoIrregularBackgroundService"
- Etapa 3: Entendendo As Classes De Serviço "GeoBackgroundService"
- Etapa 4: Entendendo As Classes De Serviço "FirebaseBackgroundService"
- Passo 5: Atividade Entendendo "MapaActivity"
- Etapa 6: Firebase
- Etapa 7: Conclusão Do Projeto Final
Vídeo: Minha Via IOT: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Pós Graduação em Desenvolvimento de Aplicações para dispositivos móveisPUC Contagem
Alunos: Gabriel André e Leandro Reis
Os pavimentos das principais rodovias federais, estaduais e das vias públicas das cidades possuem algum tipo de defeito, causado por vários fatores, o que gera um grande impacto no custo operacional do transporte. A partir deste problema, o presente trabalho tem como objetivo a apresentação de um aplicativo para smartphone com sistema operacional Android que identifica como irregularidades na pavimentação dos logradouros das cidades utilizando os sensores acelerômetro e GPS. Os tipos de irregularidade mais comuns encontrados são: remendos em processo de afundamento ou remendos com elevação acima do pavimento regular, afundamentos, trincas, ondulações e buracos. Abaixo segue os passos para o conhecimento da construção da aplicação.
Etapa 1: Configuração Do AndroidManifest
No arquivo AndroidManifest.xml é realizado como configurações de permissão e funcionamento do aplicativo com os conceitos de base.
-
ClassDetalhamos abaixo como requisito do aplicativo e os motivos do uso de cada configuração.
- Permissão de LocalizaçãoPermissão do aplicativo para encontrar uma localização configuramos duas tags, sendo elas:
- Permissão para identificação de Inicialização e Reinicialização do AplicativoPermissão do aplicativo para "escutar" um evento de inicialização e reinicialização do sistema Android, com objetivo de iniciar os serviços que irá monitorar a busca de pavimentos irregulares, sendo ela:
- Permissão de acesso a InternetPermissão para o aplicativo utilizar uma internet com o objetivo de sincronizar os dados com o servidor firebase, sendo ela:
-
Serviços2.1) Serviço de Pavimento Irregular
Na tag Service que aponta para uma classe "PavimentoIrregularBackgroundService" tem como objetivo captar informações dos pavimentos irregulares e armazenar no banco de dados do aparelho smartphone para o aplicativo.
2.2) Serviço de GeoLocalização Na tag service que visa a classe "GeoBackgroundService" tem como objetivo tratar as informações de pavimento irregular e busca a sua localização de logradouro, bairro, cidade, unidade federativa para agrupar os dados de pavimento irregular por logradouro de uma cidade.
2.3) Serviço de Sincronização de dados com Firebase Na tag serviço que aponta para uma classe "FirebaseBackgroundService" tem como objetivo enviar as informações de pavimento irregular encontrado pelo aparelho de Smartphone, somando com as demais informações encontradas por outras pessoas que usam o aplicativo mesmo.
-
Configuração da API do MAPS
Para a configuração da API do Maps, precisamos registrar uma chave para o aplicativo, conforme tutorial (Configurar API MAPS Android).
A chave obtida deve ser colocada em "android: value" na tag "meta-data" do 'android: name = "com.google.android.geo. API_KEY"', conforme exemplo abaixo:
-
ReceiverReceiver neste projeto irá escutar como ações de inicialização e reinicialização do sistema para captar como informações de pavimento irregular.4.1) Receiver de Pavimento Irregular
A classe "AlarmReceive" é chamada toda vez que a inicialização do sistema operacional android, conforme configuração da tag "". Após esta chamada, dentro da classe há um agendador para uma execução do serviço "PavimentoIrregularBackgroundService" que fica avaliado se houver pavimento irregular.
4.2) Receiver de GeoLocalização A classe "AlarmGeoReceive" é chamada toda vez que a inicialização do sistema operacional android, conforme configuração da tag"
4.3) Receiver do Firebase A classe "AlarmFirebaseReceive" é chamada toda vez que a inicialização do sistema operacional android, conforme configuração da tag "". Após esta chamada, dentro da classe há um agendador para uma execução do serviço "FirebaseBackgroundService" que fica avaliado se registros com todos os dados de logradouro disponíveis para envio ao servidor de firebase.
Etapa 2: Entendendo As Classes De Serviço "PavimentoIrregularBackgroundService"
A classe "PavimentoIrregularBackgroundService" é utizada para capturar informações dos sensores acelerômetro e GPS. Com base nas informações ele tem um algoritmo específico no método "onLocationChanged" que avalia se o pavimento é irregular, no qual é inserido em uma tabela de banco de dados da própria aplicação. A classe possui algumas tratativas específicas para identificar se o aparelho está com a bateria baixa com objetivo de encerrar o serviço sem que haja prejuízo na coleta das informações e contribuir com o funcionamento do aparelho para o usuário. Outras tratativas previsões que o encerramento da aplicação, pausa da aplicação, etc.
Etapa 3: Entendendo As Classes De Serviço "GeoBackgroundService"
A classe "GeoBackgroundService" é responsável por buscar pavimentação irregular e complementar as informações de endereço da latitude e longitude encontradas para que haja o envio dessas informações pelo serviço de Firebase. Basicamente ele busca a informação e atualiza complementando que está no método "updateAddress".
Etapa 4: Entendendo As Classes De Serviço "FirebaseBackgroundService"
A classe "FirebaseBackgroundService" é responsável pelo envio dos dados de endereço de pavimento irregular para o servidor Firebase da aplicação.
Após a sincronização das informações, os dados no banco de dados da aplicação é limpado para prover espaço de armazenamento ao aparelho Smartphone. O método "enviarPavimentoIrregular" é o principal responsável pela sincronização das informações necessárias. E para configurar o Firebase ao seu projeto em android, você deve seguir o tutorial em (Configurando Firebase para Android) para vincular sua base de informações com o seu banco no Firebase.
Passo 5: Atividade Entendendo "MapaActivity"
MapaActivity é a principal Activity do system, pois ela é responsavel pela exibição dos pavimentos irregulares encontrados nas cidades e suas informações é exibida por um mapa de calor, onde a maior ocorrência de pavimento irregular aparece em destaque de vermelho no mapa.
Etapa 6: Firebase
No arquivo "minhaviaiot-export.json" exportado do Firebase, segue um exemplo da estrutura dos dados armazenados pela aplicação, conforme detalhado abaixo:
Cada logradouro pode ter mais de um pavimento irregular. Cada Cidade pode ter mais de um logradouro com pavimento irregular. E assim por diante até chegar no país de origem do logradouro problemático.
Etapa 7: Conclusão Do Projeto Final
Em anexo a este instructables segue todo o projeto Android compactado. Com este projeto é possível ter uma visão dos conceitos de base aplicada em um problema que não tem em nenhum sistema de tempo real. Com este projeto é possível chegar na realidade de cada cidade e identificar onde deve ser aplicado os investimentos para um novo asfalto ou uma correção de curto prazo. Para quaisquer dúvidas e contato segue meu e-mail: [email protected]
Recomendado:
Minha CR10 New Life: SKR Mainboard e Marlin: 7 etapas
Minha CR10 New Life: SKR Mainboard e Marlin: Minha placa MELZI padrão estava morta e eu precisava de uma substituição urgente para trazer meu CR10 vivo. Primeiro passo, escolha uma placa de substituição, então escolhi Bigtreetech skr v1.3 que é uma placa de 32 bits, com drivers TMC2208 (com suporte para modo UART
Como fiz minha própria máquina de boxe ?: 11 etapas (com fotos)
Como fiz minha própria máquina de boxe ?: Não há nenhuma história incrível por trás desse projeto - eu apenas sempre gostei das máquinas de boxe, que estavam localizadas em vários lugares populares. Resolvi construir o meu
ELEGOO Kit Lab ou Como tornar minha vida como desenvolvedor mais fácil: 5 etapas (com imagens)
ELEGOO Kit Lab ou Como Facilitar Minha Vida Como Desenvolvedor: Objetivos do projetoMuitos de nós temos problemas com o mock-up em torno dos controladores UNO. Freqüentemente, a fiação dos componentes se torna difícil com muitos componentes. Por outro lado, a programação em Arduino pode ser complexa e pode exigir muito
Minha primeira síntese: 29 etapas (com imagens)
Meu primeiro sintetizador: o sintetizador infantil surgiu enquanto eu me sentava curvado sobre uma confusão emaranhada de fios de sintetizador. Meu amigo Oliver se aproximou, avaliou a situação e disse: "Você sabe que conseguiu fazer o brinquedo infantil mais complicado do mundo". Enquanto meu r inicial
Minha tentativa na melodia da campainha do botão do Arduino: 11 etapas
Minha tentativa na melodia da campainha do botão do Arduino: Neste tutorial, mostrarei como um botão pode iniciar uma melodia. Durante o ano letivo, muitas de nossas vidas são regidas por sinos ou tons que nos avisam quando é hora de partir ou de ir embora. A maioria de nós raramente para e pensa sobre como essas diferentes