FleetHive

Participantes:

Igor de Moura Philippini
Augusto Sales de Queiroz
Rodrigo Beltrão Valença

Resumo do projeto:

O projeto tem como objetivo auxiliar na gestão e manutenção de frotas através do monitoramento e leitura de dados do veículo remotamente.

Descrição do projeto:

O projeto tem como objetivo auxiliar na gestão e manutenção de frotas, através do monitoramento e leitura de dados do veículo de forma a possibilitar o rastreamento de forma constante e  visualização de dados importantes do veículo que não seriam acessíveis ao gestor durante as horas de forma automatizada, como velocidade do veículo, nível do combustível e quilometragem atual. Para isso, faremos uso do protocolo OBD para obtenção de dados do veículo, assim como um módulo GPS para localização e um módulo de comunicação sem fio para conexão com a internet.

Uma versão posterior do projeto consistia na ideia de detectar o roubo de combustível para frotas de caminhões, porém, ao conversamos com clientes em potencial, foi percebida a necessidade de um sistema similar em termos de tecnologia para frotas de carros comuns, capaz de automatizar o gerenciamento de manutenções e rastreamentos de mais de 500 veículos simultaneamente. A necessidade do mercado por tal produto pode ser confirmada através de alguns players existentes atualmente, porém ou não estão presentes no nosso país, ou não são detentoras da tecnologia, fazendo apenas importar o produto para uso de forma não-ótima.

Histórico do desenvolvimento:

1ª Semana | 12/08/2018 – 18/08/2018

  • Assinatura dos contratos
  • Análise de mercado e produtos concorrentes.
  • Recebimento da placa da Telit.


2ª Semana | 19/08/2018 – 25/08/2018

  • Reunião para definição de metas e organização geral do projeto.
  • Pesquisa de mercado com um responsável por oficina mecânica.
    • Entrevistas para definir necessidades e possíveis utilidades no nosso produto na área, de forma a detectar problemas em veículos.
  • Pesquisa de mercado com um gerente de frotas.
    • Entrevista com dono de uma grande locadora local para analisar reais necessidades de um possível cliente, assim como definir prioridades no que deveremos fornecer no nosso produto.
  • Inicio dos trabalhos com relação ao front-end.
  • Organização das atividades no Trello.
  • Primeiro webinar para esclarecimento de dúvidas.
  • Liberação de materiais sobre uso da placa da Telit.
  • Liberação de acesso para edição de página do contest.

 

3ª Semana | 26/08/2018 – 01/09/2018

  • Reunião para definição de metas e sprints da semana.
  • Compra de materiais para confecção de placa base própria.
  • Criação de grupo dentre usuários das placas Telit para troca de informações.
  • Recebimento dos materiais para confecção de placa base e carregamento de baterias.

4ª Semana | 02/09/2018 – 08/09/2018

  • Despedida da nossa placa de comunicação OBD original por motivos técnicos
  • Definição e formalização das arquiteturas de back-end, front-end e sistema embarcado.
  • Reunião para definição de metas e organização de tempo até o final do evento.
  • Compra de novos cabos para conexão OBD.
  • Tentativa de comprar chips com suporte a NB-IoT/CAT-M1
    • Sem sucesso algum, m̶a̶s̶ ̶t̶i̶v̶e̶m̶o̶s̶ ̶o̶ ̶p̶r̶a̶z̶e̶r̶ ̶d̶e̶ ̶v̶e̶r̶ ̶a̶ ̶c̶a̶r̶a̶ ̶d̶e̶ ̶c̶o̶n̶f̶u̶s̶ã̶o̶ ̶d̶o̶s̶ ̶v̶e̶n̶d̶e̶d̶o̶r̶e̶s̶ ̶a̶o̶ ̶o̶u̶v̶i̶r̶e̶m̶ ̶t̶a̶i̶s̶ ̶n̶o̶m̶e̶s̶.
  • Liberação de mais documentações sobre a placa da Telit, desta vez com esquemas elétricos.
  • Criação de protótipo inicial da placa base (ainda não funcional)
  • Tentativa de utilização inicial da ME910 (sem sucesso).
  • Segunda tentativa de fazer a placa base funcionar, dessa vez com sucesso
    • A placa pode ser alimentada tanto por uma célula 18650 ou por uma fonte de bancada.
  • Recebimento de novos cabos OBD e testes dos mesmos

 

5ª Semana | 09/09/2018 – 15/09/2018

  • Reunião para verificar progresso e dificuldades encontradas até o momento
  • Segundo webinar para esclarecimento de prazos e feedbacks.
  • Discussões sobre mudanças no nosso stack de tecnologia (possível migração do Postgresql para Firebase).

 

6ª Semana | 16/09/2018 – 22/09/2018

  • Reunião para atualização dos prazos conforme novo deadline fornecido do webinar
  • Esboço inicial de estrutura de dados no firebase
  • Estudo e adequação ao firebase

 

7ª Semana | 23/09/2018 – 29/09/2018

  • Mock-up de dados no firebase
  • Rotinas para envio e recepção de dados no firebase
  • Problemas com comunicação com a placa da telit, buscando ajuda no fórum.

8ª Semana | 30/09/2018 – 06/10/2018

  • Reunião para atualizarmos novamente o cronograma devido a problemas encontrados
  • Comunicação com a placa via USB, envio e recebimento de dados para um servidor próprio via HTTP
  • Tentativa de fazer um divisor de tensão (3.3v -> 1.8v) na nossa placa base para comunicação via microcontrolador externo
  • Ainda não conseguimos fazer uso do GPS da placa, e até o momento seguimos sem respostas da equipe da Telit sobre isso.

9ª Semana | 07/10/2018 – 13/10/2018

  • Contato com nossa operadora (Hologram) sobre informações relacionadas a CAT-M1 e NB-IoT no Brasil
  • Mais tentativas de uso do GPS da placa sem sucesso, nos forçando a usar um GPS externo.

10ª Semana | 14/10/2018 – 20/10/2018

  • Definição de arquitetura e distribuição de atividades para reta final
  • Comunicação da placa Telit com microcontrolador externo
  • Updates no front para incluir posições dos carros, rotas e status individuais

Última Semana | 21/10/2018 – 28/10/2018

  • Definição de atividades para sprint final
  • Sprint final
  • Impossibilidade de criptografia com o firmware atual da placa da Telit
  • Leitura de dados in loco
  • Finalização da placa base para comunicação da placa da ME910 com microcontrolador externo
  • Testes de leitura de dados no veículo e gravação de dados em um cartão SD

 

Instructables:

https://www.instructables.com/id/FleetHive/

Hardware:

  • Placa Telit ME910c1-ww para comunicação via Cat-M1/NB-IoT
  • Placa para comunicação OBD-II contendo um clone do ELM327
  • Bateria 18650 para alimentação da placa da Telit
  • Microcontrolador STM32F103C8T6, na placa Blue Pill
  • Módulo de GPS XM37-1612
  • Módulo de MicroSD da Catalex

 

Software/Firmware:

  • Firmware próprio no sistema embarcado em C++ utilizando as bibliotecas da mbed para o STM32.
  • Front-end em TypeScript utilizando a framework Angular.
  • Back-end escrito em Go, hospedado na Google Cloud.
  • Banco de dados PostgreSQL para informações persistentes e relacionais.
  • Firebase para informações não-relacionais e de tempo real.

 

Referências:

  • https://en.wikipedia.org/wiki/OBD-II_PIDs
  • https://www.st.com/en/microcontrollers/stm32f103c8.html
  • https://os.mbed.com/docs/latest/reference/index.html
  • https://y1cj3stn5fbwhv73k0ipk1eg-wpengine.netdna-ssl.com/wp-content/uploads/2017/10/Telit_ME910C1_AT_Commands_Reference_Guide_r2.pdf
  • https://y1cj3stn5fbwhv73k0ipk1eg-wpengine.netdna-ssl.com/wp-content/uploads/2014/09/Telit-xE910-Global-Form-Factor-Application-Note-r17.pdf
  • https://y1cj3stn5fbwhv73k0ipk1eg-wpengine.netdna-ssl.com/wp-content/uploads/2017/11/1VV0301351_ME910C1_HW_User_Guide_r7.pdf
  • https://contest.embarcados.com.br/wp-content/uploads/2018/08/ME910C1-WW_Interface_Electric_Diagram.pdf