• Nenhum resultado encontrado

Bike-UFF: Um sistema de compartilhamento para o transporte verde

N/A
N/A
Protected

Academic year: 2021

Share "Bike-UFF: Um sistema de compartilhamento para o transporte verde"

Copied!
54
0
0

Texto

(1)

Universidade Federal Fluminense

Instituto de Computa¸

ao

Departamento de Ciˆ

encia da Computa¸

ao

Bike-UFF

Um sistema de compartilhamento para o transporte verde

Jorge da Silva Junior

Victor da Silva Rempto

Niter´

oi-RJ

2017

(2)

ii JORGE DA SILVA JUNIOR

VICTOR REMPTO

Bike-UFF

Um sistema de compartilhamento para o transporte verde

Trabalho submetido ao Curso de Bacharelado em Ciˆencia da Computa¸c˜ao na Universidade Federal Fluminense como requisito parcial para a obten¸c˜ao do t´ıtulo de Bacharel em Ciˆencia da Computa¸c˜ao.

Orientador: Prof. Eugene F. Vinod Rebello

Niter´oi-RJ 2017

(3)

Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF

S586 Silva Junior, Jorge da

Bike-UFF: um sistema de compartilhamento para o transporte verde / Jorge da Silva Junior, Victor Rempto. – Niterói, RJ : [s.n.], 2017.

55 f.

Projeto Final (Bacharelado em Ciência da Computação) – Universidade Federal Fluminense, 2017.

Orientador: Eugene F. Vinod Rebello.

1. Aplicativo móvel. 2. Mobilidade urbana. 3. Transporte urbano. I. Rempto, Victor. II. Título.

(4)

JORGE DA SII」VA JUNIOR

VICTOR DA SIINA REMPTO

Bike-UFF

Um sis七ema de compartilhamen七o para o transporte verde

Trabalho submetido ao Curso de Bacharelado em Ci合ncia da Computapao

na Universidade Ftderal Fluminense como

requisito parcial para a obtenc肴o do titulo

de Bacharel em Ci合ncia da Computac各o.

四囲

Aprovado por:

Prof. Eugene F. Vinod Rebe11o, Ph.D. - Orientador

- 生霊梁島豊s。

- ,偽繁粂曲B。。r。S, Ph。

UFF

Niter6i-RJ

(5)

v

“Em algum lugar, alguma coisa incr´ıvel est´a esperando para ser descoberta”. (Carl Sagan)

(6)

vi

Agradecimentos

Agradecemos aos nossos familiares e amigos pelo suporte em todas as horas, a todos os professores que fizeram parte da nossa forma¸c˜ao e ao professor Eugene Francis Vinod Rebello, pela orienta¸c˜ao, apoio e confian¸ca.

(7)

vii

Resumo

“Computadores s˜ao como bicicletas para nossas mentes” Steve Jobs.

A mobilidade urbana vem se tornando uma quest˜ao cada vez mais importante no planeja-mento das cidades. O cresciplaneja-mento de cidades vem sendo acompanhado com um auplaneja-mento de custos em termos de trˆansito, engarrafamentos e polui¸c˜ao. Por isso, encontrar solu¸c˜oes vi´aveis que aperfei¸coem deslocamentos de forma sustent´avel se tornou um tema de prim´ a-ria importˆancia para governantes nos ´ultimos anos. Os modais de transporte tradicionais tem se mostrado particularmente ineficazes para deslocamentos curtos, se tornando um problema financeiro para a popula¸c˜ao de menor poder aquisitivo e de log´ıstica para o Estado, respons´avel pela gest˜ao do sistema.

Este projeto tem como objetivo apresentar um sistema piloto cuja finalidade ´e de melhorar a mobilidade do corpo discente de universidades em campi grandes ou que tem aulas em campi diferentes numa cidade, como ´e o caso de muitos alunos da Universidade Federal Fluminense, por meio de um modal de transporte de compartilhamento de bici-cletas. Supondo a disponibilidade de bicicletas ou convˆenio, como no caso de Bike Rio da Prefeitura do Rio de Janeiro com o banco Ita´u, neste projeto tamb´em ser´a discutido tecnologias de suporte e uma implementa¸c˜ao para quest˜oes de autentica¸c˜ao, seguran¸ca e controle de usu´arios, dentre as quais foi adotado a plataforma Arduino e identifica¸c˜ao por radiofrequˆencia.

Palavras-chave: Mobilidade urbana, Transporte urbano, Aluguel de bicicletas, Arduino, Web, Dispositivos M´oveis.

(8)

viii

Abstract

“Computers are like a bicycle for our minds” Steve Jobs.

Urban mobility has become an increasingly important issue in city planning. The rapid growth of cities has been followed by increasing costs in terms of travel times, traffic jams and pollution. Thus finding practical solutions that optimize travel in a sustainable way has become a key issue for politicians in recent years. Traditional modes of transport have proved to be particularly ineffective for short commutes, creating a disproportio-nate financial burden for the lower-income population, and a logistics nightmare for the organizations responsible for the management of the transportation system.

This project aims to present a pilot system whose purpose is to improve the mobility of the students at universities located within a large campus, or those with classes at different campi within a city, as is the case for many students at the Fluminense Federal University, through a bicycle loan scheme. The project will also discusses technologies to support the implementation of authentication, security and user control mechanisms, including the use of the Arduino platform and radio frequency identification.

Keywords: Urban Mobility, Urban transportation, Bicycle hire, Arduino, Web, Mobile Devices.

(9)

Sum´

ario

Resumo vii

Abstract viii

Lista de Figuras xi

Lista de Tabelas xii

1 Introdu¸c˜ao 1 1.1 Descri¸c˜ao do problema . . . 2 1.2 Motiva¸c˜ao e Objetivo . . . 2 1.3 Organiza¸c˜ao da monografia . . . 3 2 Trabalhos Relacionados 4 2.1 Bike Rio . . . 4 2.2 Citi Bike . . . 6 2.3 Resumo do cap´ıtulo . . . 6 3 Arquitetura proposta 8 3.1 Estudo de caso . . . 8 3.1.1 A Institui¸c˜ao de Ensino . . . 8 3.1.2 Situa¸c˜ao atual . . . 9 3.2 Solu¸c˜ao Proposta . . . 10 3.3 Arquitetura do Sistema . . . 11 3.4 Requisitos do Sistema . . . 13 3.4.1 Requisitos Funcionais . . . 15 3.4.2 Requisitos N˜ao Funcionais . . . 18 ix

(10)

x 3.5 Resumo do cap´ıtulo . . . 19 4 Tecnologias Relevantes 20 4.1 Arduino . . . 20 4.2 NFC . . . 21 4.3 REST . . . 22 4.4 RFID . . . 23 4.5 Resumo do cap´ıtulo . . . 23 5 Implementa¸c˜ao 24 5.1 Banco de dados . . . 24 5.2 M´odulo Arduino . . . 26 5.2.1 Arduino Mega . . . 26 5.2.2 Teclado Matricial 4x4 . . . 27 5.2.3 LCD 16x2 I2C . . . 29 5.2.4 M´odulo RFID . . . 30 5.2.5 esp8266 . . . 31 5.3 Interfaces Web . . . 33 5.3.1 Interface Aluno . . . 33 5.3.2 Interface Administrativa . . . 34

5.4 An´alise de requisitos atendidos . . . 35

6 Conclus˜ao 37

Gloss´ario 39

Siglas 40

(11)

xi

Lista de Figuras

2.1 Tela inicial do aplicativo BikeRio . . . 5

2.2 Tela inicial do aplicativo Citi Bike . . . 7

3.1 Modelo de esta¸c˜ao para retirada de bicicletas proposto . . . 11

3.2 Casos de uso do m´odulo Arduino . . . 13

3.3 Casos de uso da aplica¸c˜ao WEB . . . 14

5.1 Modelo Entidade Relacionamento do Banco de Dados . . . 25

5.2 Prot´otipo do m´odulo Arduino . . . 27

5.3 Diferen¸ca na quantidade de portas entre Arduinos UNO e MEGA . . . 27

5.4 Schema do teclado matricial . . . 28

5.5 LCD 16x2 . . . 30

5.6 M´odulo RFID . . . 30

5.7 Esquema do m´odulo esp8266 . . . 32

5.8 Home Page . . . 33

5.9 Mapa com bicicletas dispon´ıveis . . . 34

5.10 Tela para relatar problemas com as bicicletas . . . 35

5.11 Tela com o Hist´orico de um aluno. . . 36

(12)

xii

Lista de Tabelas

5.1 Pinos do Teclado Matricial. . . 28

5.2 Pinagem do LCD . . . 29

5.3 Pinagem do RFID . . . 31

5.4 Pinagem do m´odulo Wifi . . . 32

(13)

Cap´ıtulo 1

Introdu¸

ao

“ A pol´ıtica de mobilidade urbana tem, deste modo, objeto mais amplo que os servi¸cos de transportes urbanos: trata-se, na verdade, da rela¸c˜ao dos deslo-camentos de pessoas e bens com a pr´opria cidade e de seu planejamento para o desenvolvimento de suas fun¸c˜oes sociais, proporcionando o acesso universal dos cidad˜aos `as oportunidades que a vida na urbe oferece.” (IPEA, 2008)

A mobilidade urbana est´a ligada ao estado do deslocamento de uma popula¸c˜ao no espa¸co geogr´afico da cidade, analisando a garantia `a livre circula¸c˜ao de pessoas entre diferentes ´areas. O termo normalmente ´e empregado em rela¸c˜ao ao trˆansito de ve´ıculos e pessoas no meio urbano.

´

Areas urbanas s˜ao localidades que possuem altas concentra¸c˜oes de atividades econˆ o-micas, al´em disso, s˜ao complexas estruturas espaciais apoiadas por sistemas de transporte. Quanto maior a cidade, maior a complexidade e o potencial para desvios, particularmente quando tal complexidade n˜ao ´e devidamente gerenciada.

No Brasil, foi adotado a partir da d´ecada de 1950 o sistema rodovi´ario como o principal modelo de transporte. A prevalˆencia deste modal teve como objetivo incenti-var a entrada da ind´ustria automobil´ıstica no pa´ıs, entretanto, quando foi adotada tal pol´ıtica, a popula¸c˜ao encontrava-se em sua maior parte nas regi˜oes interioranas, situa¸c˜ao que se alterou rapidamente nas d´ecadas a seguir, chegando ao seu ponto de invers˜ao na d´ecada de 1970. Esta urbaniza¸c˜ao levou consigo um aumento no n´umero de carros nas vias, entretanto, n˜ao foi acompanhada por investimentos de infraestrutura necess´arios, acarretando a deteriora¸c˜ao das estradas, assim como dos servi¸cos p´ublicos de transporte.

(14)

2 A Universidade Federal Fluminense, sediada em Niter´oi, possui diversos Campi espalhados pela cidade, para realizar deslocamentos de um campus a outro, os alunos fazem uso de ˆonibus, carros e bicicletas particulares ou andam por distˆancias que podem chegar a 3 quilˆometros.

1.1

Descri¸

ao do problema

Como apresentado na se¸c˜ao anterior, muitos alunos da UFF sofrem do problema da mo-bilidade entre diferentes campi durante o per´ıodo letivo. O tempo gasto em translados `

a p´e pode se tornar um fator prejudicial ao bom aproveitamento das disciplinas cursa-das, outras op¸c˜oes como o linhas de ˆonibus municipais ou o BusUFF podem se tornar respectivamente onerosos em demasia, do ponto de financeiro, e superlotados.

Os alunos se encontram com limitadas op¸c˜oes: Deslocarem-se `a p´e entre campi, correndo o risco de perder seus compromissos; utilizar do transporte coletivo, o qual pode n˜ao estar dentro das possibilidades financeiras do aluno ou se encontrar superlotado, impedindo a entrada do mesmo; ou para aqueles alunos os que possuam, fazer uso de um carro ou de uma bicicleta pr´oprias. Surge da´ı a necessidade de se pensar em um novo modo de transporte p´ublico.

A cidade de Niter´oi possui uma cultura forte para o uso de bicicletas. Desde o ano de 2014, incentivos para a cria¸c˜ao de novas ciclofaixas foram disponibilizados pela prefeitura, entretanto, a cidade de Niter´oi possui uma malha ciclovi´aria subutilizada, a qual seria capaz de comportar um aumento grande de ciclistas.

1.2

Motiva¸

ao e Objetivo

Como j´a descrito na se¸c˜ao anterior, as observa¸c˜oes feitas revelaram um sistema de trans-porte p´ublico n˜ao condizente com as necessidades dos estudantes, verifica-se tamb´em um potencial n˜ao explorado para o uso da malha ciclovi´aria urbana da cidade.

A aplica¸c˜ao BikeUFF tem como objetivo ser a plataforma de um Sistema de bi-cicletas p´ublicas para alunos da Universidade Federal Fluminense. Promovendo o acesso r´apido e gratuito dos estudantes a bicicletas por um servi¸co de empr´estimo, utilizando a carteira da UFF para valida¸c˜ao. O software conta tamb´em com um site para que os estu-dantes tenham acesso a informa¸c˜oes das localidades dos biciclet´arios e sobre a quantidade

(15)

3 de bicicletas dispon´ıveis.

1.3

Organiza¸

ao da monografia

Esta monografia est´a dividida em 6 cap´ıtulos e organizada da maneira descrita a seguir: O Cap´ıtulo 2 traz informa¸c˜oes sobre trabalhos relacionados ao presente projeto. O Cap´ıtulo 3 mostra a arquitetura proposta para o presente projeto. O Cap´ıtulo 4 tem como objetivo apresentar as tecnologias relevantes. O Cap´ıtulo 5 cont´em informa¸c˜oes sobre a implemen-ta¸c˜ao do projeto-piloto. E, finalmente, no Cap´ıtulo 6, s˜ao apresentadas as conclus˜oes do trabalho e sugest˜oes para trabalhos futuros.

(16)

Cap´ıtulo 2

Trabalhos Relacionados

Este cap´ıtulo busca oferecer uma vis˜ao de trabalhos relacionadas ao tema deste projeto, visando dar uma base para compara¸c˜oes com as proposi¸c˜oes que foram colocadas ao longo deste trabalho. Com o objetivo de organizar as compara¸c˜oes, o cap´ıtulo as divide em cinco se¸c˜oes. As duas primeiras citam sistemas que englobam o mesmo tema desta monografia, a terceira apresenta uma compara¸c˜ao com o projeto apresentado nesta monografia e a ´

ultima oferece uma revis˜ao do cap´ıtulo.

2.1

Bike Rio

“Bike Rio ´e um projeto de sustentabilidade da Prefeitura do Rio de Janeiro executado atrav´es de Termo de Concess˜ao de Uso da Serttel em parceria com o banco Ita´u e o sistema de bicicletas SAMBA.” [Mobilicidade, 2017].

O Bike Rio foi desenvolvido pela empresa Serttel como iniciativa da Prefeitura do Rio de Janeiro com apoio do banco Ita´u. O sistema possui esta¸c˜oes inteligentes espa-lhadas pela cidade que s˜ao conectadas via rede wireless `a central de opera¸c˜oes. Usu´arios cadastrados podem retirar e devolver bicicletas entre as diferentes esta¸c˜oes

(17)

5

Figura 2.1: Tela inicial do aplicativo BikeRio

Os usu´arios se cadastram pelo aplicativo m´ovel, informando n´umero de telefone e CPF e em seguida escolhem um plano de pagamentos. Para retirar a bicicleta devem ligar para o n´umero da central de opera¸c˜oes, digitar o n´umero da esta¸c˜ao que se encontram e o n´umero da posi¸c˜ao da bicicleta escolhida. Para realizar uma devolu¸c˜ao o usu´ario deve apenas encaixar a bicicleta em uma posi¸c˜ao, em qualquer esta¸c˜ao.

Pontos positivos do sistema:

• Informa a quantidade de bicicletas dispon´ıveis por esta¸c˜ao em um mapa via aplica-tivo ;

(18)

6 • A retirada n˜ao exige do usu´ario cadastrado uma conex˜ao com a internet ;

Pontos negativos do sistema:

• Caso o usu´ario que deseja se cadastrar n˜ao possua smartphone, ele deve se cadastrar previamente em um computador, o que prejudica a celeridade do processo;

• o usu´ario necessita de um telefone para liberar uma bicicleta para retirada;

2.2

Citi Bike

O Citi Bike foi desenvolvido pela empresa Motivate como iniciativa da Prefeitura de Nova Iorque com apoio do banco Citibank. Um modelo parecido tem sido adotado em in´umeras cidades ao redor do mundo, por exemplo, em Londres, Paris, etc.

Os usu´arios se cadastram pelo aplicativo m´ovel e escolhem um plano de paga-mentos. Para retirada o usu´ario deve inserir uma chave inteligente na posi¸c˜ao da bicicleta escolhida. Ap´os a valida¸c˜ao da chave, a posi¸c˜ao ´e destravada. Para realizar uma devolu¸c˜ao o usu´ario deve apenas encaixar a bicicleta em uma posi¸c˜ao, em qualquer esta¸c˜ao.

Ap´os a retirada, os usu´arios podem utilizar a bicicleta por 30 minutos seguidos. Pontos positivos do sistema:

• a valida¸c˜ao por chave elimina a dependˆencia de outras formas de comunica¸c˜ao, como internet e telefone;

• a aplica¸c˜ao funciona na web, o que facilita a consulta dos dados em tempo real.

2.3

Resumo do cap´ıtulo

Neste cap´ıtulo foram apresentados dois sistemas que est˜ao relacionados ao tema do tra-balho descrito nesta monografia. O primeiro sistema apresentado foi desenvolvido pela empresa Serttel e utiliza plataformas web e mobile, entretanto, faz obrigat´orio o uso de aparelho celular para seu uso di´ario. O sistema apresentado na segunda se¸c˜ao foi de-senvolvido pela companhia privada Motivate e faz uso de autentica¸c˜ao por RFID (Radio Frequency Identification). A visualiza¸c˜ao das informa¸c˜oes armazenadas ´e feita por meio de interfaces web e mobile.

(19)

7

Figura 2.2: Tela inicial do aplicativo Citi Bike

O pr´oximo cap´ıtulo descreve a arquitetura do sistema proposto, definindo o con-texto e estruturas relacionadas ao problema que se prop˜oe a resolver. Apresenta detalhes sobre o estudo de caso, defini¸c˜ao de requisitos e estabelecimento da estrutura necess´aria ao projeto. ’

(20)

Cap´ıtulo 3

Arquitetura proposta

O cap´ıtulo anterior apresentou sistemas implantados e em desenvolvimento que est˜ao buscando solucionar o mesmo problema do projeto de sistema sugerido neste trabalho.

3.1

Estudo de caso

Este projeto tem como finalidade principal desenvolver um sistema que permita os alunos da Universidade Federal Fluminense utilizar bicicletas p´ublicas, retirando e devolvendo-as em esta¸c˜oes espalhadas pelos campi da UFF, com valida¸c˜ao a partir da carteira de estu-dante. O sistema tamb´em deve prover informa¸c˜oes sobre a disponibilidade de bicicletas nas esta¸c˜oes em tempo real.

O sistema foi desenvolvido de tal forma a permitir sua extens˜ao, sendo assim pos-s´ıvel acoplar `a solu¸c˜ao outras funcionalidades e an´alises futuras. Mesmo vislumbrando a possibilidade de expans˜ao, o foco deste trabalho ´e descrever um prot´otipo que visa a auxiliar o deslocamento de alunos entre os diferentes campi da UFF.

Esta se¸c˜ao descreve o cen´ario as is da Universidade Federal Fluminense em Niter´oi, que foi definida como cliente alvo deste trabalho, apontando as principais dificuldades enfrentadas atualmente, seguido da solu¸c˜ao proposta que visa resolver essas dificuldades.

3.1.1

A Institui¸

ao de Ensino

Neste per´ıodo de desenvolvimento foi utilizado como cliente-alvo deste trabalho os alunos da Universidade Federal Fluminense que cursam a universidade em Niter´oi. Atualmente,

(21)

9 a universidade possui aproximadamente cinquenta e um mil discentes sendo que, aproxi-madamente trinta mil cursam aulas presencias.

Apesar de possuir iniciativas para melhorar a mobilidade dos seus alunos e a cons-tru¸c˜ao de pr´edios novos que podem facilitar o deslocamento entre as aulas, a UFF, que foi criada a partir da uni˜ao de diversas faculdades diferentes, tem como caracter´ıstica ter seus campi espalhados pela cidade de Niter´oi. Essa dispers˜ao de campi dificulta o acesso `

as aulas e pode prejudicar a frequˆencia e a pontualidade dos alunos.

3.1.2

Situa¸

ao atual

Como foi informado na sess˜ao anterior, a UFF tem como caracter´ıstica a distˆancia entre os seus campi podendo gerar caminhadas de at´e 5km. Outro fator inerente a existˆencia da universidade ´e a grande quantidade de alunos que vem por dia do Rio de Janeiro usando catamar˜a e barcas, estes al´em de chegar no em Niter´oi ainda tem que deslocar at´e o campi. A universidade tem um sistema de ˆonibus, o BusUFF que presta apoio aos seus discentes no deslocamento di´ario para assistir as aulas. Muito elogiado quando foi im-plantado o sistema de ˆonibus entre campi possui dois itiner´arios, a Rota 1 e a Rota 2. Com ˆonibus de 25 em 25 minutos na Rota 1 e 45 em 45 minutos na Rota 2[UFF, 2016], o principal problema enfrentado hoje pelos alunos que optam por usar o BusUFF para se locomover no dia a dia ´e a lota¸c˜ao dos ˆonibus, principalmente nos hor´arios que coincidem com o t´ermino ou in´ıcio das aulas. Outro problema enfrentado pelos alunos ´e o recorrente atraso dos ˆonibus, o que normalmente ocorre nas horas do rush. Ainda que os problemas de lota¸c˜ao e hor´ario do BusUFF fossem resolvidos, ainda ter´ıamos a necessidade de buscar alternativas de locomo¸c˜ao. O ˆonibus, mesmo sendo um meio de transporte coletivo (o que concede a ele uma posi¸c˜ao favor´avel ao carro, por exemplo), vendo sobre o ponto de vista ambiental ´e um desastre que libera mon´oxido e di´oxido de carbono na atmosfera (ˆonibus com um motor eletrico poderia resolver).

Ent˜ao mesmo auxiliando o aluno no deslocamento di´ario, o BusUFF n˜ao atende como uma solu¸c˜ao sustent´avel para transporte universit´ario, pois n˜ao atende a demanda, tem problemas com atrasos e n˜ao ´e ecologicamente saud´avel.

(22)

10

3.2

Solu¸

ao Proposta

A proposta consiste no desenvolvimento de sistema para localiza¸c˜ao e loca¸c˜ao de bicicletas no ambiente universit´ario e de um terminal com controle sobre a libera¸c˜ao das bicicletas.

Os problemas a serem resolvidos s˜ao:

• Criar um meio de transporte seguro para os Alunos; • Criar um m´etodo que de transporte que evite atrasos;

• Dar visibilidade ao aluno quanto a disponibilidade de meios transporte; • Garantir que somente alunos ter˜ao acesso ao meio de transporte universit´ario; • Criar uma solu¸c˜ao de transporte que n˜ao agride o meio ambiente.

Visando resolver os problemas anteriores e aliar tecnologia ao dia a dia dos alunos. Propomos para a retirada de bicicletas o seguinte:

1 O usu´ario verifica a disponibilidade de uma bicicleta em sua proximidade. 2 Em um terminal o usu´ario escolhe a bicicleta que deseja pegar.

3 O usu´ario se autentica no terminal usando sua carteira de estudante. 4 O terminal envia para o servidor uma requisi¸c˜ao de retirada de bicicleta

5 O Sistema verifica se o aluno possui matr´ıcula ativa, em seguida verifica se h´a alguma pendˆencia no aluguel da bicicleta.

6 Se n˜ao houver pendˆencias, o sistema verifica se h´a alguma avaria relatada na bi-cicleta, n˜ao havendo nada o sistema retorna para o terminal uma mensagem de sucesso, caso contr´ario o sistema retorna uma mensagem de erro.

7 O terminal lˆe a mensagem recebida pelo servidor, caso sucesso libera a bicicleta selecionada, caso contr´ario avisa ao usu´ario que houve um problema.

8 O Usu´ario faz o translado com a bicicleta e identifica o terminal que deseja devolver a bicicleta.

(23)

11 10 O m´odulo lˆe o c´odigo RFID da bicicleta e a posi¸c˜ao que ela foi devolvida e agradece

o aluno.

11 O sistema identifica qual bicicleta esta sendo devolvida e, em seguida, faz uma requisi¸c˜ao de devolu¸c˜ao informando qual ´e o terminal, a posi¸c˜ao que a bicicleta foi devolvida e o identificador da bicicleta.

12 O servidor lˆe a requisi¸c˜ao, identifica qual aluno devolveu a bicicleta e atualiza a o status da bicicleta, liberando ela para novas retiradas e tira a pendˆencia de devolu¸c˜ao do usu´ario.

Figura 3.1: Modelo de esta¸c˜ao para retirada de bicicletas proposto O sistema tem restri¸c˜oes a serem consideradas para perfeito funcionamento: • Um usu´ario n˜ao deve conseguir retirar uma bicicleta se n˜ao devolveu a ´ultima

bi-cicleta que retirou. Ou seja se houver uma retirada sem devolu¸c˜ao o aluno fica impossibilitado de fazer uma nova retirada enquanto n˜ao quitar a sua pendˆencia. • Fica restrita a retirada de bicicletas apenas por usu´arios que possuam carteira de

estudante.

3.3

Arquitetura do Sistema

A arquitetura planejada para o sistema ´e dividida em trˆes partes:

1 Aplica¸c˜ao Web que conta com uma API (Application Programming Interface) para comunica¸c˜ao com outros sistemas, web services e DAO’s (Data Access Objects) para comunica¸c˜ao com o Sistema de Gerenciamento de Banco de Dados (SGBD);

(24)

12 2 M´odulo em Arduino, que conta com um leitor de NFC para ler as carteiras de estudante, um teclado e uma antena para conex˜ao com a internet, al´em de uma tela LCD. O m´odulo Arduino ficar´a em uma esta¸c˜ao com uma quantidade de leitores RFID, que pode variar de esta¸c˜ao para esta¸c˜ao. A quantidade de leitores limita a quantidade de bicicletas por esta¸c˜ao, pois cada uma ocupar´a um slot de leitura. 3 Base de dados para armazenamento das informa¸c˜oes.

A aplica¸c˜ao Web usa o padr˜ao de projeto DAO para abstrair e encapsular os mecanismos de acesso aos dados. O padr˜ao de projeto DAO permite criar as classes de dados independentemente do tipo de modelagem da base de dados. Todos os acessos aos dados devem ser por meio das classes DAO. Isto garante que haja separa¸c˜ao entre as duas partes importantes da aplica¸c˜ao que n˜ao devem conhecer muito uma da outra e devem evoluir de forma independente. Al´em disso usamos o padr˜ao de projeto de projeto Business Objetc para fazer as regras de neg´ocio da ferramenta. O padr˜ao de projeto Business Object garante maior desacoplamento ao projeto, assim mantendo o c´odigo mais limpo e refator´avel. Todas as regras de neg´ocio s˜ao escritas nas classes Business assim melhorando o reuso de c´odigo.

O modelo de banco de dados escolhido para o desenvolvimento do sistema foi o modelo relacional. Para se escolher o sistema de gerenciamento de banco de dados (SGBD) mais adequado para cada aplica¸c˜ao, deve-se levar em conta quais os dados ser˜ao acessados e como estes se ralacionam entre si. Como os dados utilizados no desenvolvimento do sistema s˜ao dados estruturados, ou seja, as entidades do modelo de dados se relacionam de maneira estruturada com uma ordem e grau, um SGBD relacional se faz necess´ario. Outro ponto importante a ser analisado na escolha do SGBD ´e se h´a controle de concorrˆencia, que tenta evitar transa¸c˜oes feitas acessando a mesma informa¸c˜ao por usu´arios distintos ao mesmo tempo.

O m´odulo Arduino ser´a desenvolvido para fazer interface com os usu´arios finais do sistema. A intera¸c˜ao com o sistema deve ser projetada de forma a ser intuitiva, segura e funcional. Com inten¸c˜ao de reduzir o trafego de dados na rede, o m´ınimo de requisi¸c˜oes devem ser trocadas entre o m´odulo arduino e a aplica¸c˜ao web, dessa maneira uma parte do processamento e da valida¸c˜ao deve ser feita no pr´oprio m´odulo, a fim de evitar requisi¸c˜oes desnecess´arias ao sistema web.

(25)

13 A escolha de pe¸cas e componentes para o m´odulo deste sistema foi feita visando a redu¸c˜ao do custo total de implanta¸c˜ao. Para isto projetamos um m´odulo controlando um conjunto de 8 bicicletas ou mais bicicletas, embora uma op¸c˜ao com 1 (um) leitor de cart˜ao para cada bicicleta seja mais simples, pois evita que o usu´ario tenha a intera¸c˜ao de informar qual bicicleta deseja.

3.4

Requisitos do Sistema

No contexto do presente projeto, foi identificado apenas uma intera¸c˜ao entre o usu´ario final e o sistema. Assim, fica descrito na imagem 3.2 as intera¸c˜oes entre o usu´ario e a esta¸c˜ao arduino.

(26)

14 As intera¸c˜oes dos usu´arios com o m´odulo web s˜ao descritas pela figura 3.3. Neste caso de uso existem dois usu´arios, o Aluno e o Administrador do sistema, que possui todas as atividades do aluno e mais as atividades de cadastro e edi¸c˜ao.

Figura 3.3: Casos de uso da aplica¸c˜ao WEB

Para estabelecer a prioridade dos requisitos nas se¸c˜oes 3.4.1 e 3.4.2, foram adotadas as denomina¸c˜oes “essencial”, “importante” e “desej´avel”:

• Essencial ´e o requisito sem o qual o sistema n˜ao entra em funcionamento. Requi-sitos essenciais s˜ao requisitos imprescind´ıveis, que devem que ser implementados impreterivelmente;

• Importante ´e o requisito sem o qual o sistema entra em funcionamento, mas de forma n˜ao satisfat´oria. Requisitos importantes devem ser implementados, mas, se n˜ao forem, o sistema poder´a ser implantado e usado mesmo assim; e

• Desej´avel ´e o requisito que n˜ao compromete as funcionalidades b´asicas do sistema, isto ´e, o sistema pode funcionar de forma satisfat´oria sem ele. Requisitos desej´aveis podem ser deixados para vers˜oes posteriores do sistema, caso n˜ao haja tempo h´abil para implement´a-los na vers˜ao que est´a sendo especificada.

(27)

15

3.4.1

Requisitos Funcionais

Para o funcionamento desejado do sistema ´e necess´ario que os seguintes requisitos sejam preenchidos:

FR01 - Selecionar Bicicleta check-in. Ator(es): Aluno.

Descri¸c˜ao: Usu´ario seleciona a bicicleta desejada Prioridade: Essencial.

Pr´e-condi¸c˜oes: N˜ao h´a pr´e-condi¸c˜oes.

P´os-condi¸c˜oes: O ator ser´a encaminhado para a autentica¸c˜ao. FR02 - Validar usu´ario.

Ator(es): Aluno portador da carteirinha. Descri¸c˜ao: Autentica o usu´ario no sistema. Prioridade: Essencial.

Pr´e-condi¸c˜oes: O ator deve ter selecionado a bicicleta que deseja. P´os-condi¸c˜oes: O ator ter´a ser´a informado se pode retirar sua bicicleta. FR03 - Devolver a Bicicleta. Ator(es): Aluno.

Descri¸c˜ao: Devolve uma bicicleta para uma esta¸c˜ao. Prioridade: Essencial.

Pr´e-condi¸c˜oes: N˜ao h´a pr´e-condi¸c˜oes

P´os-condi¸c˜oes: Dever´a ser exibido na tela uma mensagem de agradecimento. FR04 - Visualizar bicicletas dispon´ıveis.

Ator(es): Aluno.

Descri¸c˜ao: Aciona uma tela que indica a localiza¸c˜ao das bicicletas dispon´ıveis. Prioridade: Importante.

Pr´e-condi¸c˜oes: N˜ao h´a pr´e-condi¸c˜oes

P´os-condi¸c˜oes: Dever´a ser exibido na tela um mapa com a posi¸c˜ao de cada esta¸c˜ao e a quantidade de bicicletas dispon´ıveis.

(28)

16 Ator(es): Aluno.

Descri¸c˜ao: O ator pode informar que uma bicicleta esta com problemas. Prioridade: Desej´avel.

Pr´e-condi¸c˜oes: O ator deve estar autenticado no sistema.

P´os-condi¸c˜oes: O uma notifica¸c˜ao criada informando a avaria da bicicleta e esta n˜ao poder´a ser locada.

FR06 - Liberar bicicleta. Ator(es): Administrador.

Descri¸c˜ao: Ap´os o conserto da bicicleta disponibiliz´a-la novamente para uso mobile. Prioridade: Desej´avel.

Pr´e-condi¸c˜oes: O ator deve estar logado no sistema.

P´os-condi¸c˜oes: A bicicleta ficar´a dispon´ıvel novamente para loca¸c˜ao FR07 - Visualizar hist´orico de loca¸c˜oes.

Ator(es): Aluno.

Descri¸c˜ao: Visualizar o hist´orico de bicicleta retiradas. Prioridade: Desej´avel.

Pr´e-condi¸c˜oes: O ator deve estar autenticado.

P´os-condi¸c˜oes: Uma lista com as bicicletas que o usu´ario j´a alugou ser´a disponibili-zada.

FR08 - Visualizar rotas para uma esta¸c˜ao. Ator(es): Aluno.

Descri¸c˜ao: Visuzizar uma rota para uma esta¸c˜ao selecionada. Prioridade: Desej´avel.

Pr´e-condi¸c˜oes: N˜ao h´a pr´e-condi¸c˜oes.

P´os-condi¸c˜oes: Uma rota com o menor caminho entre a localiza¸c˜ao do usu´ario e a esta¸c˜ao selecionada deve ser exibida.

FR09 - Cadastrar Aluno. Ator(es): Administrador.

Descri¸c˜ao: Cadastrar alunos no sistema. Prioridade: Essencial.

(29)

17 P´os-condi¸c˜oes: As informa¸c˜oes do aluno s˜ao salvas no banco de dados.

FR10 - Cadastrar bicicletas. Ator(es): Administrador.

Descri¸c˜ao: Cadastrar uma nova bicicleta no sistema. Prioridade: Essencial.

Pr´e-condi¸c˜oes: O ator deve estar autenticado

P´os-condi¸c˜oes: As informa¸c˜oes da nova bicicleta ser˜ao salvas no banco de dados. FR11 - Cadastrar esta¸c˜oes.

Ator(es): Administrador.

Descri¸c˜ao: Cadastrar uma nova esta¸c˜ao com uma capacidade escolhida pelo ator Prioridade: Essencial.

Pr´e-condi¸c˜oes: O ator deve estar autenticado.

P´os-condi¸c˜oes: Uma nova esta¸c˜ao deve ser criada e salva no sistema. FR12 - Exclus˜ao do aluno.

Ator(es): Administrador.

Descri¸c˜ao: O adminitrador pode desativar qualquer aluno do sistema. Prioridade: Importante.

Pr´e-condi¸c˜oes: O ator deve estar autenticado

P´os-condi¸c˜oes: O aluno n˜ao conseguir´a retirar bicicletas. FR13 - Verificar pendˆencia.

Ator(es): Aluno.

Descri¸c˜ao: O ator deve visualizar se existe pendˆencia em seu nome. Prioridade: Desej´avel.

Pr´e-condi¸c˜oes: O ator deve estar autenticado

(30)

18 FR14 - Extrair relat´orio de uso.

Ator(es): Administrador.

Descri¸c˜ao: Dever´a extrair um relat´orio com as informa¸c˜oes de uso de bicicleta por esta¸c˜ao e rotas mais usadas.

Prioridade: Desej´avel.

Pr´e-condi¸c˜oes: O ator deve estar autenticado.

P´os-condi¸c˜oes: Um relat´orio ficar´a dispon´ıvel para download. FR15 - Alterar Esta¸c˜ao.

Ator(es): Administrador.

Descri¸c˜ao: Altera e corrige alguma informa¸c˜ao da esta¸c˜ao, colocando uma bicicleta ou corrigindo uma distor¸c˜ao.

Prioridade: Desej´avel.

Pr´e-condi¸c˜oes: O ator deve estar autenticado.

P´os-condi¸c˜oes: As novas informa¸c˜oes da esta¸c˜ao s˜ao salvas no banco. FR16 - Editar Bicicleta.

Ator(es): Administrador.

Descri¸c˜ao: Deve alterar as informa¸c˜oes da bicicleta, como a esta¸c˜ao salva ou o c´odigo RFID em caso de avaria.

Prioridade: Desej´avel.

Pr´e-condi¸c˜oes: O ator deve estar autenticado

P´os-condi¸c˜oes: As novas informa¸c˜oes da bicicleta devem estar dispon´ıveis.

3.4.2

Requisitos N˜

ao Funcionais

NFR01 - Usabilidade

Descri¸c˜ao: A interface com o usu´ario ´e fundamental para o sucesso do sistema, principalmente porque ser´a utilizada diariamente e o usu´ario poder´a n˜ao receber treinamento pr´evio. A intera¸c˜ao com o sistema deve ser clara e intuitiva para que usu´arios consigam usar mesmo sem aux´ılio e consigam retirar uma bicicleta com facilidade em menos de 20 segundos.

(31)

19

3.5

Resumo do cap´ıtulo

Neste cap´ıtulo foi definida a estrutura, os componentes e requisitos para implementa¸c˜ao do sistema proposto. Na Se¸c˜ao 3.1 foi feito um estudo do caso, onde foi definida a finali-dade principal do projeto, o cliente-alvo utilizado durante o per´ıodo de implementa¸c˜ao e a situa¸c˜ao em que o cliente-alvo se encontra em rela¸c˜ao ao tema desta monografia. Posteri-ormente, na Se¸c˜ao 3.2, uma solu¸c˜ao foi proposta visando sanar as dificuldades citadas. J´a na Se¸c˜ao 3.3, foi definida uma estrutura abstrata com seus componentes, visando estabe-lecer uma arquitetura para o sistema. Por fim, na Se¸c˜ao 3.4, foram levantados requisitos do sistema para implementa¸c˜ao futura.

O pr´oximo cap´ıtulo tratar´a das tecnologias relevantes utilizadas na implementa¸c˜ao do projeto piloto ou sugeridas para implementa¸c˜ao futura. Nele ser´a descrito o que ´e e como funciona cada tecnologia, em que parte do sistema deve ser utilizado e quais os motivos para utiliza¸c˜ao.

(32)

Cap´ıtulo 4

Tecnologias Relevantes

O cap´ıtulo anterior apresentou a estrutura e requisitos fundamentais para imple-menta¸c˜ao da solu¸c˜ao sugerida neste projeto. Este cap´ıtulo visa contribuir para uma melhor compreens˜ao das tecnologias contempladas por este trabalho.

4.1

Arduino

Arduino ´e uma plataforma Open Source que tem como principal valor ser f´acil de usar. As placas Arduino s˜ao capazes de ler sensores, acender luzes, ativar pequenos motores e at´e publicar algo online.[Arduino, 2017b] Para usar o Arduino, al´em de ter a placa ´e necess´ario que se tenha a IDE instalada. Arduino nasceu no Ivrea Interaction Design Institute como uma ferramenta para prototipa¸c˜ao f´acil e r´apida, e tinha como p´ublico alvo alunos sem conhecimento profundo de eletrˆonica e programa¸c˜ao. Conforme foi se espalhando, a placa Arduino foi se especializando adaptando para novas necessidades e desafios, e conseguiu-se diferenciar das outras placas 8-bits como um produto completo para aplica¸c˜oes da IoT (Internet of Things). Arduino roda em Linux, Mac e Windows e ´e f´acil de usar para iniciantes, mas tamb´em flex´ıvel o suficiente para que usu´arios avan¸cados consigam desenvolver projeto interessantes e poderosos nele. Seguem as principais vantagens de se usar Arduino:

• Barato: Placas Arduino s˜ao relativamente baratas se comparadas com outros mi-crocontroladores.

• Multi-plataforma: A IDE para desenvolver softwares para o Arduino funciona em 20

(33)

21 Windows, Macintosh OSX e Linus, enquanto a maioria dos microcontroladores fun-ciona somente no Windows.

• Simplicidade: A IDE ´e bem simples de usar

• C´odigo Livre e software extens´ıvel: O software que comp˜oe o Arduino ´e aberto. A linguagem de programa¸c˜ao do Arduino foi baseada em C e pode ser expandida por meio de bibliotecas em C++.

• Hardware Livre: todos as plantas da placa do Arduino s˜ao abertas e possuem licen¸ca que permite que vocˆe produza e modifique suas pr´oprias placas

Arduino foi escolhido para o desenvolvimento desse projeto exatamente por ser barato, possuir uma grande documenta¸c˜ao e ser bastante expans´ıvel com bibliotecas. Nas suas vers˜oes mais poderosas ´e poss´ıvel ligar leitores de cart˜ao, antenas wifi, sensores de proximidade, LEDs, telas LCD, teclados matriciais entre outros componentes. Essa flexibilidade nos permitiu desenvolver o projeto e incluir todas os componentes extras de maneira simples.

4.2

NFC

NFC (Near Field Communication) ´e uma tecnologia desenvolvida para comunica-¸c˜ao de dois dispositivos sem a utiliza¸c˜ao de fios. Criada em 2004, a partir de um f´orum que tinha como objetivo criar uma tecnologia segura e f´acil de se usar para comunica¸c˜ao sem fios. Seu principal prop´osito ´e fazer a conex˜ao entre um leitor e uma etiqueta (ou outro dispositivo qualquer que possua a teconologia NFC) a partir de radio frequˆencia.

Em 2006, no NFC Forum, foi especificado um objeto chamado de NFC Tag, que seria um pequeno objeto que conteria informa¸c˜oes que seriam compat´ıveis com dispositivos que contivessem a tecnologia NFC. Essas etiquetas s˜ao objetos de armazenamento onde dispositivos podem escrever ou ler informa¸c˜oes. A tag NFC ´e ativada pelo leitor. O dispositivo leitor emite um sinal para a tag e se estiverem pr´oximos o suficiente a tag ´e ativada ao receber o sinal. A partir de ent˜ao a tag recebe uma requisi¸c˜ao e testa se ´e v´alida. Se sim, a tag responde.

Com essa tecnologia foi poss´ıvel implementar muitas aplica¸c˜oes e uma delas ´e a identifica¸c˜ao. Um indiv´ıduo pode ser autenticado por meio de um cart˜ao lido por

(34)

22 um dispositivo programado para testar a validade dos dados lidos. No caso do sistema desenvolvido neste projeto, nossa op¸c˜ao de autentica¸c˜ao ´e a leitura da carteirinha de estudante. No caso da Universidade Federal Fluminense (UFF) os alunos tˆem carteirinhas de estudante com tecnologia NFC que pode ser utilizada nesta autentica¸c˜ao.

4.3

REST

REST ´e um acrˆonomo para Representational State Transfer, que em portuguˆes signi-fica Transferˆencia de Representa¸c˜ao de Estado. Pode ser definido como uma arquitetura para comunica¸c˜ao e foi desenvolvido por um dos criadores do protocolo HTTP, ´e lar-gamente usado no mercado e ainda ´e o protocolo padr˜ao para troca de mensagens na internet. REST foi constru´ıdo com a objetivo de utilizar de maneira eficiente as caracte-r´ısticas do HTTP, explorando principalmente a semˆantica do protocolo e como resultado acabou-se criando um protocolo mais r´apido, padronizado e eficiente para troca de men-sagens [TreinaWeb, 2017].

Para entender melhor o funcionamento do REST primeiro deve-se levar em conta algumas caracter´ısticas do protocolo HTTP que por consequˆencia tamb´em s˜ao caracter´ıs-ticas da arquitetura REST.

• ´E um protocolo cliente-servidor, por exemplo quando um navegador acessa uma p´agina, o cliente ´e o browser e o servidor ´e o site de onde os arquivos HTML ser˜ao baixados.

• A requisi¸c˜ao ´e feita em ciclos de resquest e response, e n˜ao ´e necess´ario manter uma conex˜ao ativa. O cliente faz um request e o servidor envia um response, n˜ao sendo necess´aria nenhuma outra mensagem.

• O protocolo funciona de maneira ass´ıncrona e independente, isto ´e se o cliente enviar mais do que um requests eles n˜ao precisam ser respondidos na mesma ordem que foram enviados e cada request n˜ao tem acesso a um outro que tenha sido enviado pr´evia ou posteriomente.

• O protocolo ´e stateless, como cada request ´e independente e elas s˜ao fechadas quando recebe sua response n˜ao ´e poss´ıvel guardar estados das requisi¸c˜oes.

(35)

23 • O protocolo HTTP possui uma semˆantica com verbos e os Unique Resource Locators (URLs). As URLs indicam os objetos ou resources que ser˜ao acessados e os verbos as diferentes a¸c˜oes que podem ser desempenhadas por cada request. Os principais verbos s˜ao GET, POST, DELETE e PUT e suas a¸c˜oes fazem, respectivamente: obter, inserir, apagar e atualizar um resource.

Usamos o padr˜ao REST pois ´e amplamente usado em solu¸c˜oes comerciais e escolhe-mos a linguagem Java para desenvolver o web service. Quando um web server implementa a arquitetura REST, chamamos de um servi¸co RESTful. Para facilitar o desenvolvimento do web server usamos um framework chamado Jersey, tamb´em consolidado no mercado que tem algumas ferramentas que facilitam a implementa¸c˜ao do protocolo HTTP junto com a arquitetura REST. O Jersey possui uma API e uma s´erie de ferramentas que sim-plificam o desenvolvimento de clientes e servidores Java[Jersey, 2017].

4.4

RFID

A tecnologia data da Segunda Guerra Mundial, e tem origem nos radares usados para verificar a aproxima¸c˜ao de avi˜oes com alguma antededˆencia. Entretanto o RFID s´o foi patenteado na d´ecata de 1970, quando um sistema para desbloquear portas utili-zando uma etiqueta foi desenvolvido. RFID (Radio Frequency Identification) ´e uma tecnologia que tem objetivo localizar, identificar e gerenciar produtos de diferentes na-turezas. Uma de suas principais vantagens ´e a independˆencia de campo visual para funcionar[Roberto Brauer di Renna, 2014]. Seu uso funciona com um leitor, uma eti-queta e um banco de dados e cada um desempenha sua fun¸c˜ao. As etiquetas podem ter informa¸c˜oes salvas e alteradas, e geralmente apontam para algum valor armazenado no banco. Ent˜ao o leitor lˆe o identificador na etiqueta e consulta no banco a que tipo de produto aquela etiqueta se refere.

4.5

Resumo do cap´ıtulo

Neste cap´ıtulo foram apresentadas tecnologias relevantes ao sistema a ser desenvolvido. O pr´oximo cap´ıtulo descreve os detalhes da implementa¸c˜ao de cada componente do projeto piloto. Algumas tecnologias descritas neste cap´ıtulo ser˜ao utilizadas no pr´oximo.

(36)

Cap´ıtulo 5

Implementa¸

ao

O cap´ıtulo anterior vimos tecnologias que s˜ao relevantes para o projeto proposto e definido no cap´ıtulo 3. Este cap´ıtulo consiste em detalhar o desenvolvimento implementa¸c˜ao do m´odulo Arduino e do sistema web, descrevendo linguagens e ferramentas utilizadas, entre outras informa¸c˜oes pertinentes ao desenvolvimento, utilizando tecnologias descritas no Cap´ıtulo 4.

5.1

Banco de dados

O modelo Entidade Relacionamento foi constru´ıdo utilizando a ferramenta MySQL Work-bench. O MySQL Workbench[MySQL, 2017] ´e uma ferramenta gr´afica da empresa Oracle Corporation para desenvolver e operar bancos de dados.Esta ferramenta possui funcionali-dades para auxiliar o trabalho dos profissionais que tabalham com banco de dados, desde DBAs (Database administrators), passando por arquitetos de banco, at´e desenvolvedo-res. Entre suas funcionalidades, se destacam uma interface gr´afica, que foi usada para projetar o banco deste projeto, uma interface para administrar conex˜oes com servidores, scripts SQL, ferrametas para criar e carregar backups e ferramentas de monitoramento de desempenho.

O diagrama apresentado na figura 5.1 foi definido de forma a atender os requisitos do sistema.

(37)

25

Figura 5.1: Modelo Entidade Relacionamento do Banco de Dados

O modelo relacional ´e composto por 5 tabelas: USUARIO, BICICLETA, ESTA-CAO, ESTACAOSLOT E HISTORICO. A tabela USUARIO ´e respons´avel por armazenar dados pertinentes aos usu´arios do sistema, identificados por meio da chave prim´aria IDU-SUARIO al´em disso nessa tabela est´a armazenado o c´odigo do NFC que esta na carteirinha de estudante do Aluno.

A tabela BICICLETA contem informa¸c˜oes referentes a bicicleta, incluindo o seu ID, o C´odigo RFID, respons´avel pela identifica¸c˜ao da bicicleta, e um c´odigo para controle interno. Esta tabela possui uma chave estrangeira para a tabela USUARIO, para acom-panhar qual usu´ario esta com ela locada no momento, e outra chave estrangeira para a tabela ESTACAOSLOT, de onde ´e poss´ıvel obter a informa¸c˜ao de qual esta¸c˜ao a bicicleta se encontra e qual ´e o a sua posi¸c˜ao dentro da esta¸c˜ao.

Para armazenar as informa¸c˜oes referentes as esta¸c˜oes usamos duas tabelas, ESTA-CAO e ESTAESTA-CAOSLOT. A tabela ESTAESTA-CAO armazena as informa¸c˜oes referentes a cada esta¸c˜ao de bicicleta, com um c´odigo para controle interno a latitude e a longitude al´em

(38)

26 da capacidade de cada esta¸c˜ao. J´a a tabela ESTACAOSLOT representa cada posi¸c˜ao aonde pode-se armazenar uma bicicleta dentro da esta¸c˜ao, as duas tabelas se relacionam de maneira que cada esta¸c˜ao tem a quantidade definida pelo campo capacidade de slots e cada slot pode pertencer a somente uma esta¸c˜ao.

Todas as tabelas citadas anteriormente se se relaciona com a tabela HISTORICO, para que seja poss´ıvel armazenar qual usu´ario fez uma retirada ou devolu¸c˜ao de bicicleta, se relaciona tamb´em com a tabela bicicleta

O modelo relacional para o banco de dados foi escolhido para o projeto pois nosso projeto apresenta uma conjunto de entidades que se relacionam, dessa maneira um modelo orientado a documentos n˜ao se encaixa. Ainda que fosse poss´ıvel replicar esse modelo com algumas altera¸c˜oes em um modelo NoSql, por exemplo, optamos por seguir com o modelo relacional, j´a que este garante a consistˆencia dos dados. Outro fator relevante para a ado¸c˜ao do modelo relacional foi a maior praticidade de criar um banco de dados em compara¸c˜ao com os outos modelos existentes.

5.2

odulo Arduino

Nesta se¸c˜ao apresentamos os componentes do modelo arduino e os esquemas usados para montar o m´odulo. Como foi citado no Cap´ıtulo 3, o projeto foi planejado para funcionar a partir da intera¸c˜ao entre 3 componentes independentes, o m´odulo Arduino, o Sistema Web e o Banco de Dados. O m´odulo Arduino foi desenvolvido para ser a principal interface entre o usu´ario final (Aluno) e o sistema. Suas funcionalidades consistem em retirar e devoler uma bicicleta e para que fa¸ca isso de maneira correta foram usados uma s´erie de componentes eletrˆonicos espec´ıficos para entrada, tratamento e sa´ıda de dados. Os principais componentes s˜ao: Arduino Mega, Teclado Matricial, LCD 16x2, Leitor RFID e M´odulo WiFi esp8266 [ESP8266, 2017].

A figura 5.2 mostra o prot´otipo arduino montado para o desenvolvimento deste projeto.

5.2.1

Arduino Mega

A Placa Arduino Mega pertence plataforma Arduino e tem como base o microcontrolador ATmega2560, possui 54 pinos de entradas e sa´ıdas digitais, 16 entradas anal´ogicas e 4

(39)

27

Figura 5.2: Prot´otipo do m´odulo Arduino

portas serial[Arduino, 2017a]. ´E similar a placa mais comum e simples da plataforma, a Arduino UNO, mas possui mais mem´oria, portas e suas dimens˜oes s˜ao maiores.

A placa pode ser alimentada pela USB ou por uma fonte de alimenta¸c˜ao externa. Optamos pela alimenta¸c˜ao de fonte externa no nosso projeto, usando uma fonte de 12V. Assim como a UNO, a placa MEGA consegue fornecer sa´ıda de energia com tens˜ao de 3,3V e de 5V, o que foi necess´ario para o projeto, pois temos componentes que possuem ranges de tens˜ao diferentes. A placa MEGA foi escolhida no lugar da UNO por possuir maior quantidade de portas de entradas e sa´ıdas digitais e principalmente por possuir 4 portas serial.

(a) Arduino UNO (b) Arduino MEGA

Figura 5.3: Diferen¸ca na quantidade de portas entre Arduinos UNO e MEGA

5.2.2

Teclado Matricial 4x4

O Teclado Matricial 4x4 foi escolhido como m´etodo para o usu´ario selecionar a bicicleta que deseja. ´E um componente de baixo custo com funcionamento simplificado e possui 16 bot˜oes.Utilizamos 8 portas do Arduino para liga¸c˜ao ao teclado matricial.

(40)

28

Figura 5.4: Schema do teclado matricial Pino Teclado Porta Arduino

1 23 2 25 3 27 4 29 5 31 6 33 7 35 8 37

Tabela 5.1: Pinos do Teclado Matricial.

Para controlar o teclado no sistema fizemos uso da biblioteca open source chamada keypad, pois ela simplifica a leitura de dados com fun¸c˜oes j´a pr´e carregadas. O teclado foi ligado no arduino de acordo com a tabela 5.1.

(41)

29 Pino Ligado Em

1 Ground

2 +5V

3 Pino central do Potenciˆometro 4 Pino 11 5 GND 6 Pino 9 7 Pino 4 8 Pino 5 9 Pino 6 10 Pino 7 11 +5 V 12 GND Tabela 5.2: Pinagem do LCD

5.2.3

LCD 16x2 I2C

Como dito anteriormente o m´odulo Arduino, que ´e pe¸ca principal da esta¸c˜ao para retirada de bicicletas, ´e a principal interface com o usu´ario, ent˜ao foi necess´ario projetar uma maneira de dar feedbacks para o cliente sobre o andamento do processo de retirada da bicicleta.

o LCD 16x2 I2C funciona com o protocolo I2C e seu nome ´e dado pois se trata de um display LCD de 16 caracteres por coluna com duas colunas. Ou seja, podemos gracar at´e 32 caracteres no nosso LCD 16x2. O I2C encontra-se presente no nome, pois utilizaremos o protocolo de comunica¸c˜ao I2C para envio de dados entre o Arduino e o dispositivo. Foi usado um potˆenciometro para fazer a regulagem do contraste

(42)

30

Figura 5.5: LCD 16x2

5.2.4

odulo RFID

Leitores e tags RFID (Radio Frequency Identification, ou Identifica¸c˜ao por Radiofrequˆ en-cia) costumam ser utilizados para controle de acesso e identifica¸c˜ao de pessoas e equi-pamentos, seja por meio de crach´as ou etiquetas aplicadas `a produtos. Como foi visto no cap´ıtulo 3, esta tecnologia ´e usada no dia da dia dos brasileiros e estudantes e esta empregada em dispositivos que fazem parte de nosso cotidiano, como cart˜ao de ˆonibus, cancelas do ped´agio e estacionamentos.

Figura 5.6: M´odulo RFID

As etiquetas (ou tags) RFID, podem conter v´arios dados sobre o propriet´ario do cart˜ao, como nome e endere¸co e, no caso de produtos, informa¸c˜oes sobre procedˆencia e data de validade. A carteira de estudante da UFF ´e usada como tag neste projeto, pois possui a tecnologia RFID e os alunos podem us´a-la como bilhete ´unico e m´etodo

(43)

31 Pino Arduino Pino RFID

N˜ao Conectado NC 3,3V VCC GND GND 5 RST 53 SDA 51 MOSI 50 MISO 52 SCK Tabela 5.3: Pinagem do RFID

de pagamento para o Restaurante Universit´ario. Nossa proposta ´e incluir mais um uso e possibilitar a retirada de bicicletas para usar no trajeto entre os campi da universidade.

As etiquetas (ou tags) RFID, podem conter v´arios dados sobre o propriet´ario do cart˜ao, como nome e endere¸co e, no caso de produtos, informa¸c˜oes sobre procedˆencia e data de validade.

Escolhemos um leitor de RFID Mfrc522 Mifare para este projeto, que pode ser f´acilmente adquirido em lojas online e ´e o modelo mais usado para esse tipo de prototi-pagem. Sua frequˆencia de opera¸c˜ao ´e de 13,56MHz, suficiente para ler a carteirinha de estudante da UFF. O leitor RFID tem 8 pinos e sua tens˜ao de alimenta¸c˜ao ´e de 3.3 volts. As conex˜oes entre o m´odulo d RFID e o arduino s˜ao descritas na tabela 5.3.

5.2.5

esp8266

Para que consigamos fazer a valida¸c˜ao do usu´ario e a coleta de informa¸c˜oes, precisamos estabelecer uma conex˜ao entre o Arduino e o web server. Como nos campi da UFF temos internet sem fio dispon´ıvel para todos os alunos, escolhemos fazer a conex˜ao usando wifi, atrav´es do m´odulo esp8266 [ESP8266, 2017].

Ultimamente o m´odulo esp8266 esta sendo muito usado para prot´otipos e produtos, pois o conceito de IoT (Internet of Things) est´a em alta. Como ´e um m´odulo Open Source, barato e simples de montar ganhou a preferˆencia dos desesnvolvedores. Por ter uma biblioteca grande, uma comunidade ativa para auxiliar com d´uvidas, ser f´acil de

(44)

32 ESP8266 Arduino GND GND VCC 3,3V CHPD 3,3V TXD 17 RX RXD 18 TX

Tabela 5.4: Pinagem do m´odulo Wifi

adquirir e com custo relativamente barato n´os optamos por usar este m´odulo em nosso projeto. No desenvolvimento da aplica¸c˜ao contamos com o apoio da biblioteca esp8266wifi

Figura 5.7: Esquema do m´odulo esp8266

e esp8266Rest para conectar com o servidor e enviar requisi¸c˜oes. A conex˜ao com o servidor ´e feita usando o protocolo de redes TCP/IP, para envio de pacotes com garantia de recebimento. As conex˜oes da placa esp8266 e o Arduino est˜ao descritas na tabela 5.4 Seguem algumas caracter´ısticas do m´odulo esp8266:

• Tens˜ao de entrada de 3,3V • Alcance m´edio de 91m.

• Conex˜ao `a redes padr˜ao 802.11 B/G/N

• Modos de opera¸c˜ao: Cliente, Access Point, Cliente+Access Point • Seguran¸ca: OPEN/WEP/WPAPSK/WPA2PSK/WPAWPA2PSK. • Suporta comunica¸c˜ao TCP e UDP, com at´e 5 conex˜oes simultˆaneas

(45)

33

5.3

Interfaces Web

Nesta se¸c˜ao ser´a apresentada as interfaces implementadas para o web na vers˜ao piloto. A aplica¸c˜ao possui interfaces web para o setor administrativo da ferramenta e para ao aluno. As interfaces da aplica¸c˜ao foram desenvolvidas usando HTML5 e CSS3, e executam scripts JavaScritp para o envio das requisi¸c˜oes. HTML ´e o padr˜ao utilizado para represen-tar p´aginas web e CSS ´e um stylesheet, que define o layout da p´agina em quest˜ao. Estas interfaces se comunicam com o web server por meio da API REST que foi desenvolvida. Optamos por fazer dessa maneira para garantir maior desacoplamento, desta maneira a API pode passar por modifica¸c˜oes e melhorias sem a necessidade de alterar as interfaces, e vice-versa (desde que a assinatura dos m´etodos da API n˜ao sejam modificados).

5.3.1

Interface Aluno

Desenvolvemos uma p´agina web como landing page informando sobre o projeto e suas funcionalidades. Nessa p´agina, descrita na figura 5.8, cont´em o logo do projeto e uma barra de navega¸c˜ao para utilizar as outras interfaces dispon´ıveis.

Figura 5.8: Home Page

A Figura 5.9 representa a principal interface web desenvolvida para intera¸c˜ao entre aluno e sistema. Nela vocˆe consegue verificar facilmente onde se encontram as bicicletas dispon´ıveis e os lugares vazios para devolvˆe-las.

Para verificar se existe bicicleta dispon´ıvel em uma esta¸c˜ao, o aluno deve selecionar no mapa esta¸c˜ao desejada e clicar nela. Um box se abrir´a, como indicado na figura 5.9,

(46)

34 mostrando a capacidade da esta¸c˜ao e a quantidade de bicicletas dispon´ıveis para retirada.

Figura 5.9: Mapa com bicicletas dispon´ıveis

Ainda na interface do mapa, ´e poss´ıvel calcular a rota entre a posi¸c˜ao atual do usu´ario e uma esta¸c˜ao selecionada. Basta clicar em uma esta¸c˜ao e em seguida no bot˜ao ”Tra¸car Rota”.

O feedback sobre a qualidade das bicicletas ´e importante para o funcionamento do sistema. Para facilitar a manunte¸c˜ao, criamos uma tela para o usu´ario dar feedback sobre problemas encontrados nas bicicletas . A interface pode ser verificada na imagem 5.10. Nessa tela, das funcionalidades listadas no Cap´ıtulo 3, foi conclu´ıdo o requisito funcional FR04.

5.3.2

Interface Administrativa

O projeto contempla prot´otipos de interfaces administrativas para ilustrar o que pode ser feito pelo web server RESTfull que foi desenvolvido. Foi desenvolvida uma tela para an´alise de hist´orico, aonde o respons´avel pela admnistra¸c˜ao poder´a selecionar um aluno pela matr´ıcula e consultar seu hist´orico de loca¸c˜oes. Esta tela est´a indicada na figura 5.11. Como nas outras telas do sistema, esta foi desenvolvida para ser simples e funcional, para facilitar o seu uso, mesmo sem a necessidade de manual.

Desenvolvemos uma tela de cadastro de alunos. No futuro, o ideal ´e que o sistema tenha integra¸c˜ao com o banco de dados do iduff para verificar se o aluno esta cadastrado, assim dispensando a tela de cadastro criada. Esta tela ´e demonstrada na figura 5.12.

(47)

35

Figura 5.10: Tela para relatar problemas com as bicicletas

5.4

An´

alise de requisitos atendidos

Foram definidos no cap´ıtulo 3 os requisitos que dirigiriam o desenvolvimento deste projeto. Durante o per´ıodo de evolu¸c˜ao do projeto piloto alguns destes requisitos foram atendidos e outros, por conta do prazo, n˜ao puderam sem implementados. Os requisitos atendidos ao fim do desenvolvimento do projeto foram os seguintes, de acordo com o c´odigo de iden-tifica¸c˜ao definido na Se¸c˜ao 3.4: [FR01], [FR02], [FR03], [FR04], [FR05], [FR07], [FR08], [FR09], [FR10], [FR12], [FR13].

(48)

36

Figura 5.11: Tela com o Hist´orico de um aluno.

(49)

Cap´ıtulo 6

Conclus˜

ao

O trabalho teve como objeto de pesquisa a implementa¸c˜ao de sistema de compartilhamento de bicicletas para alunos da Universidade Federal Fluminense (UFF), com intuito de prover alternativa verde, sustent´avel e eficiente aos modais de transporte existentes.

O desenvolvimento do prot´otipo para este projeto teve um custo aproximado de 350 reais. Com isto estima-se que para desenvolvimento do projeto ser´a necess´ario um investi-mento superior a 54600 reais, detalhados na tabela 6.1. O valor das bicicletas foi calculado com base numa licita¸c˜ao de 2010 e reajustado com o ´ındice IPCA do per´ıodo[FNDE, 2017]. Partindo da problem´atica da mobilidade urbana sustent´avel, foram desenvolvidas aplica¸c˜oes com objetivo de promover e facilitar o uso de bicicletas utilizando o sistema de bicicletas p´ublicas. Utilizando como ponto de partida da pesquisa as principais solu¸c˜oes em uso na atualidade, foram analisados os requisitos necess´arios para implememta¸c˜ao de um sistema semelhante, por´em adequado `a realidade da UFF. Observando as caracter´ısti-cas de outras ferramentas j´a implementas e implantadas, citadas no Cap´ıtulo 2, percebe-se que h´a uma tendˆencia a informatizar este modelo. Para tal, a utiliza¸c˜ao das tecnologias atuais, como as citadas no Cap´ıtulo 4, plataforma e RFID s˜ao aspectos fundamentais

Descri¸c˜ao Quantidade Valor Unit´ario Total Arduino Mega 13 100 1300 Componentes Eletrˆonicos 13 100 1300 Bicicletas 130 400 52000

Tabela 6.1: Tabela detalhada de custos para implanta¸c˜ao do projeto (em reais) 37

(50)

38 para a constru¸c˜ao de um sistema interativo de seguran¸ca e, ao mesmo tempo, atrativo ao p´ublico-alvo.

O intuito desta pesquisa ´e se tornar o primeiro passo na contru¸c˜ao de um sistema para utiliza¸c˜ao dos corpos discente e docente da UFF, promovendo melhores e mais efi-cientes deslocamentos entre os Campi. Com a inten¸c˜ao de facilitar o prosseguimento do desenvolvimento, todo o c´odigo-fonte da aplica¸c˜ao se encontra dispon´ıvel para download pelo link: https://github.com/vrempto/BikeUFF.

Em trabalhos futuros, seria interessante concluir a implementa¸c˜ao de todo o sis-tema, realizando testes de campo com usu´arios, para conhecer melhor o impacto sobre o usu´ario final e ser capaz de moldar o conjunto funcionalidades de forma atrativa e funcional para o corpo discente da UFF.

(51)

Gloss´

ario

API Application Programming Interface - ´E um conjunto de rotinas e padr˜oes estabele-cidos por um software para a utiliza¸c˜ao das suas funcionalidades por aplicativos que n˜ao pretendem envolver-se em detalhes da implementa¸c˜ao do software, mas apenas usar seus servi¸cos.. 11

DAO - ´E um padr˜ao de projetos que permite criar as classes de dados independentemente da base de dados ser modelada de forma relacional ou n˜ao relacional. Qualquer acesso aos dados que deseja-se fazer deve ser atrav´es das classes DAO.. 12

IDE - Integrated Development Environment. E um conjunto de ferramentas que tra-´ balham de forma integrada para auxiliar no desenvolvimento de programas.. 20, 21

IoT - Internet of Things. ´E um conceito tecnol´ogico em que todos os objetos da vida cotidiana estariam conectados `a internet, agindo de modo inteligente e sensorial.. 20, 31

SGBD - Sistema de Gerenciamento de Banco de Dados. ´E um conjunto de programas de software que permite aos usu´arios criar, editar, atualizar, armazenar e recuperar dados em tabelas de banco de dados.. 11, 12

(52)

40

Siglas

API Application Programming Interface. 11 DAO Data Access Object. 11

IoT Internet of Things. 20, 31

NFC Near Field Communication. 21, 25 REST Representational State Transfer. 22, 23

RFID Radio Frequency Identification. 6, 18, 23, 26, 30, 31, 37 SGBD Sistema de Gerenciamento de Banco de Dados. 11, 12 UFF Universidade Federal Fluminense. 2, 22, 37, 38

(53)

Referˆ

encias Bibliogr´

aficas

[Arduino, 2017a] Arduino (acessado em: 16 de mar¸co de 2017a). Arduino mega. Dispo-n´ıvel em: https://www.arduino.cc/en/Main/arduinoBoardMega.

[Arduino, 2017b] Arduino (acessado em: 20 de junho de 2017b). What is arduino? Dis-pon´ıvel em: https://www.arduino.cc/en/Guide/Introduction.

[ESP8266, 2017] ESP8266 (acessado em: 16 de mar¸co de 2017). Esp8266 arduino core. Dispon´ıvel em: ttp://www.http://esp8266.github.io/Arduino/versions/2.3.0/.

[FNDE, 2017] FNDE (acessado em: 10 de junho de 2017). Preg˜ao eletrˆonico. Dispon´ıvel

em: http://www.fnde.gov.br/portaldecompras/index.php/component/phocadownload/category/22-pregoes-eletronicos?download=204:pe-040-2010-rp-pregao-e-extrato-das-atas.

[Jersey, 2017] Jersey (2013 (acessado em 15 de junho de 2017)). Jersey api. Dispon´ıvel em:https://jersey.github.io/documentation/latest/getting-started.html.

[Mobilicidade, 2017] Mobilicidade (acessado em: 10 de mar¸co de 2017)). Bikerio. Dispo-n´ıvel em: http://www.mobilicidade.com.br/bikerio.asp.

[MySQL, 2017] MySQL (acessado em: 11 de julho de 2017). Mysql workbench. Dispon´ıvel em: http://www.https://dev.mysql.com/doc/workbench/en/.

[Roberto Brauer di Renna, 2014] Roberto Brauer di Renna, Thiago Elias Bitencourt Cu-nha, T. C. C. (2014). Tutorial sobre sistema de controle de acesso rfid. Dispon´ıvel em:

http://www.telecom.uff.br/pet/petws/downloads/tutoriais/rfid/Tut Sistema Acesso RFID.pdf. [TreinaWeb, 2017] TreinaWeb (acessado em 26 de maio de 2017). Rest n˜ao ´e

simples-mente retornar json. Dispon´ıvel em: https://www.treinaweb.com.br/blog/rest-nao-e-simplesmente-retornar-json-indo-alem-com-apis-rest/.

(54)

42 [UFF, 2016] UFF (acessado em: 10 de novembro de 2016). Transporte da uff - busuff.

Referências

Documentos relacionados

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Não obstante a reconhecida necessidade desses serviços, tem-se observado graves falhas na gestão dos contratos de fornecimento de mão de obra terceirizada, bem

[r]

Ressalta-se que mesmo que haja uma padronização (determinada por lei) e unidades com estrutura física ideal (física, material e humana), com base nos resultados da

Além desta verificação, via SIAPE, o servidor assina Termo de Responsabilidade e Compromisso (anexo do formulário de requerimento) constando que não é custeado

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

O arquivo Central, conforme demostrado na figura 02, representa ao longo de sua formação, o parquet fluminense, com todas as suas mudanças institucionais, administrativas

Do projeto pedagógico foram extraídas treze competências, tomando como base, o método de Rogério Leme em sua obra: APLICAÇÃO PRÁTICA DE GESTÃO DE PESSOAS POR