Você está na página 1de 50

Universidade Federal de Ouro Preto

Instituto de Ciências Exatas e Aplicadas


Departamento de Computação e Sistemas

Desenvolvimento de fechadura
inteligente utilizando tecnologia RFID

Olimpio Pimenta Barros

TRABALHO DE
CONCLUSÃO DE CURSO

ORIENTAÇÃO:
Welbert Alves Rodrigues

COORIENTAÇÃO:
George Henrique Godim da Fonseca

Dezembro, 2019
João Monlevade–MG
Olimpio Pimenta Barros

Desenvolvimento de fechadura inteligente


utilizando tecnologia RFID

Orientador: Welbert Alves Rodrigues


Coorientador: George Henrique Godim da Fonseca

Monografia apresentada ao curso de Engenharia de


Computação do Instituto de Ciências Exatas e Apli-
cadas, da Universidade Federal de Ouro Preto, como
requisito parcial para aprovação na Disciplina “Traba-
lho de Conclusão de Curso II”.

Universidade Federal de Ouro Preto


João Monlevade
Dezembro de 2019
SISBIN - SISTEMA DE BIBLIOTECAS E INFORMAÇÃO

B277d Barros, Olimpio Pimenta.


BarDesenvolvimento de fechadura inteligente ulizando tecnologia RFID.
[manuscrito] / Olimpio Pimenta Barros. Olimpio Pimenta Barros Barros. -
2019.
Bar49 f.: il.: color., tab..

BarOrientador: Prof. Dr. Welbert Alves Rodrigues Rodrigues.


BarCoorientador: Prof. Dr. George Henrique Godim da Fonseca Fonseca.
BarMonografia (Bacharelado). Universidade Federal de Ouro Preto.
Instituto de Ciências Exatas e Aplicadas. Graduação em Engenharia de
Computação .

Bar1. Aplicações Web. 2. Comunicações digitais. 3. Engenharia de


protótipos. 4. Internet das coisas. 5. Sistemas de identificação por
radiofrequência. I. Barros, Olimpio Pimenta Barros. II. Fonseca, George
Henrique Godim da Fonseca. III. Rodrigues, Welbert Alves Rodrigues. IV.
Universidade Federal de Ouro Preto. V. Título.

CDU 004.7

Bibliotecário(a) Responsável: Flavia Reis - CRB6-2431


05/04/2022 14:55 SEI/UFOP - 0269005 - Folha de aprovação do TCC

MINISTÉRIO DA EDUCAÇÃO

UNIVERSIDADE FEDERAL DE OURO PRETO

REITORIA

INSTITUTO DE CIENCIAS EXATAS E APLICADAS

DEPARTAMENTO DE ENGENHARIA ELETRICA

FOLHA DE APROVAÇÃO

 
 
Olimpio Pimenta Barros
 
Desenvolvimento de fechadura inteligente utilizando
tecnologia RFID
 

Monografia apresentada ao Curso de Engenharia de Computação da Universidade Federal


de Ouro Preto como requisito parcial para obtenção do título de Engenheiro de Computação

Aprovada em 18 de Dezembro de 2019


 
 
 
Membros da banca
 
 
Dr - Welbert Alves Rodrigues - Orientador - UFOP
Dr - George Henrique Godim da Fonseca Coorientado - UFOP
Dr - Filipe Nunes Ribeiro - UFOP
Dr - Vicente José Peixoto de Amorim - UFOP
 
 
 
 
 
Welbert Alves Rodrigues, orientador do trabalho, aprovou a versão final e autorizou seu depósito na Biblioteca Digital de Trabalhos de Conclusão de Curso da UFOP
em 10/01/2022
 
 

Documento assinado eletronicamente por Welbert Alves Rodrigues, PROFESSOR DE MAGISTERIO SUPERIOR, em 17/01/2022, às 12:46, conforme
horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.

A autenticidade deste documento pode ser conferida no site http://sei.ufop.br/sei/controlador_externo.php?


acao=documento_conferir&id_orgao_acesso_externo=0 , informando o código verificador 0269005 e o código CRC 700420E1.

Referência: Caso responda este documento, indicar expressamente o Processo nº 23109.000628/2022-16 SEI nº 0269005

R. Diogo de Vasconcelos, 122, - Bairro Pilar Ouro Preto/MG, CEP 35400-000

Telefone:   - www.ufop.br

https://sei.ufop.br/sei/controlador.php?acao=documento_imprimir_web&acao_origem=arvore_visualizar&id_documento=298988&infra_sistema=1… 1/1
Este trabalho é dedicado aos meus pais, meus irmãos, cujo amor incondicional sempre
existiu e muitas vezes foi além de qualquer coisa que exista, tornando possível a
concretização deste sonho.
Agradecimentos

Agradeço a Deus por todos momentos de aprendizado e convivência durante


todo curso. Aos amigos que encontrei na universidade e foram somando a medida que a
caminhada se iniciava durante os períodos até findar-se, em especial Paulo Sérvulo, Gabriel
Cordeiro e Glaucus Riveira. Aos meus amigos que sempre estão comigo,Alisson Macendo,
André Sales, Victor Augusto e aos demais que não citei, levo sempre em meu coração. Aos
meu pais, que incansavelmente mostram como buscar a melhora, seja qual for, aos irmãos
que sempre incentivaram durante a caminhada, e cada conversa sempre me lembrar do
porque cheguei até aqui e aos meus sonhos de cada dia. Minha Avó, meus primos, tios e
aos que estavam comigo durante esta caminhada.
“Science is more than a body of knowledge; it is a way of thinking.”

— Carl Sagan (1934 – 1996),


in: The Demon-Haunted World: Science as a Candle in the Dark.
Resumo
A Internet das Coisas (Internet of Things - IoT) está cada vez mais presente na vida
das pessoas. Como podemos citar os relógios ou pulseiras inteligentes utilizadas para
monitoramento de atividades físicas e sinais vitais ou mesmo sensores usados em grandes
fábricas para auxiliar nos processos de produção. Nesse sentindo, tecnologias utilizando
rádio frequência pode ser utilizadas para facilitar tarefas do dia a dia ou mesmo em
grandes empresas. Tal tecnologia é comumente empregada em cartões de passagem em
ônibus coletivo, cobrança automática de pedágio dentre outras aplicações. Este trabalho
tem como objetivo desenvolver um protótipo de sistema IoT integrado com sistema web
para agendamento e gerenciamento de laboratórios. O sistema de IoT será desenvolvido
utilizando um sensor de rádio frequência e um chaveiro ou cartão com tecnologia RFID.
Após cadastro no sistema web, o usuário poderá ter acesso aos laboratórios utilizando o
cartão ou chaveiro no sensor presente nas portas de cada laboratório. Ao longo do trabalho
serão abordados assuntos sobre a composição dos componentes que integram o sistema
IoT, bem como o funcionamento uníssono do sistema físico com aplicação web responsiva.
O resultado alcançado foi satisfatório, uma vez que tanto o sistema IoT quanto o sistema
web funcionaram e se comunicaram adequadamente quando testados. Este trabalho deixa
como contribuição o protótipo que pode servir de base na construção de um sistema mais
robusto, podendo ser aplicado na Universidade Federal do Outro preto.

Palavras-chaves: Internet das Coisas. Sistemas Web. Agendamento e Gerenciamento de


Laboratório.
Abstract
The Internet of Things is increasingly present in people’s lives. As an example we can
cite the smart watches or bracelets used to monitor physical activities and vital signs
or even sensors used in large factories to assist in production processes. In this sense,
technologies using radio frequency can be used to facilitate daily tasks or even in large
companies. This technology is commonly used in collective bus ticket cards, automatic
toll collection, among other applications. This work aims to develop a prototype of an
IoT system integrated with a web system for scheduling and managing laboratories. The
IoT system will be developed using a radio frequency sensor and a keyring or card with
RFID technology. After registering on the web system, the user will be able to access the
laboratories using the card or keyring on the sensor present on the doors of each laboratory.
Throughout the work, issues will be addressed about the composition of the components
that make up the IoT system, as well as the unisonous functioning of the physical system
with a responsive web application. The result achieved was satisfactory, since both the IoT
system and the web system worked and communicated properly when tested. This work
leaves as a contribution the prototype that can serve as a basis for the construction of a
more robust system, which can be applied at the Universidade Federal de Ouro Preto.

Key-words: RFID eletronic lock. IoT. Scheduling.


Lista de ilustrações

Figura 1 –Exemplo de circuito da tag RFID. . . . . . . . . . . . . . . . . . . . . 18


Figura 2 –Diagrama do sitema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figura 3 –Arduíno MKR1000. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figura 4 –Pinagem Arduíno MKR100. . . . . . . . . . . . . . . . . . . . . . . . . 25
Figura 5 –Figura lcd 16x2 com seus respectivos pinos de comunicação . . . . . . . 26
Figura 6 –Sensor RFID Mfrc522 de 12.56MHZ. . . . . . . . . . . . . . . . . . . . 27
Figura 7 –Cartão e chaveiro utilizada no projeto para cadastro e autenticação de
acesso ao laboratório. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Figura 8 – Figura micro servo 9g SG90 da TowerPro . . . . . . . . . . . . . . . . 28
Figura 9 – Processo de montagem com adição de sensor Mfrc522 e microcontrolador. 28
Figura 10 – Circuito com LCD e microcontrolador. . . . . . . . . . . . . . . . . . . 29
Figura 11 – Adicionando servo motor. . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figura 12 – Circuito completo contendo todos componentes. . . . . . . . . . . . . . 31
Figura 13 – Decomposição de interface em componente, seguindo as regras de com-
ponentização oriundas do React. . . . . . . . . . . . . . . . . . . . . . 32
Figura 14 – Fluxo de cadastro de usuário no sistema web. . . . . . . . . . . . . . . 34
Figura 15 – Diagrama de fluxo de requisição/resposta entre sistema IoT e servidor.
(VISUAL PARADIGMA, 2019) . . . . . . . . . . . . . . . . . . . . . . 35
Figura 16 – Fluxo de cadastro de usuário no sistema web. . . . . . . . . . . . . . . 38
Figura 17 – Tela de login utilizando Google Chrome. . . . . . . . . . . . . . . . . . 39
Figura 18 – Escolha de conta Google e tela princial da aplicação. . . . . . . . . . . 39
Figura 19 – Fluxo de agendamento no sistema web. . . . . . . . . . . . . . . . . . . 40
Figura 20 – Laboratórios agendados do usuário. . . . . . . . . . . . . . . . . . . . . 41
Figura 21 – Laboratórios disponíveis ao usuário. . . . . . . . . . . . . . . . . . . . . 42
Figura 22 – Tela do perfil do usuário. . . . . . . . . . . . . . . . . . . . . . . . . . 42
Figura 23 – Protótipo finalizado do sistema IoT. . . . . . . . . . . . . . . . . . . . 43
Figura 24 – Log de inicialização do dispositivo com informações de acesso a rede
wifi configurada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 25 – Teste de leitura da tag, com envio de código por rede sem fio para
verificação de agendamento. . . . . . . . . . . . . . . . . . . . . . . . . 44
Lista de tabelas

Tabela 1 – Tabela contendo custo individual e total dos componentes utilizados. . 45


Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 O problema de pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 A solução proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 REVISÃO BIBLIOGRÁFICA . . . . . . . . . . . . . . . . . . . . . . 16
2.1 Trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 PRINCIPAIS TECNOLOGIAS UTILIZADAS . . . . . . . . . . . . . 17


3.1 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 React . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Redux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 Firebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1 Visão unificada do sistema . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Ferramentas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Componentes utilizados e construção do esquema elétrico . . . . . . 24
4.3.1 Arduino MKR1000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3.2 LCD 16X2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3.3 Sensor RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3.4 Mirco servo motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4 Montagem dos componentes . . . . . . . . . . . . . . . . . . . . . . . 28
4.5 Aplicação web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.6 Aplicação IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.7 Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1 Funcionalidades do sistema . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1.1 Cadastro de usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1.2 Autenticação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.1.3 Cadastro de agendamentos . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.1.4 Laboratórios agendados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.1.5 Laboratórios livres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.1.6 Meu perfil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Funcionalidades de sistema IoT . . . . . . . . . . . . . . . . . . . . . 43
5.3 Vantagens e desvantagens . . . . . . . . . . . . . . . . . . . . . . . . 44

6 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
13

1 Introdução

A tecnologia vem mudando a forma como nós interagimos com o mundo, seja
por meio da automatização de processos, que antes eram feitos manualmente, ou pelo
desenvolvimento de novos produtos que nos auxiliam nas tarefas diárias. Empresas vem
aumentando cada vez mais aumentando o investimento em áreas como inteligência artificial,
robótica, ciência de dados e IoT (Internet of Things) Em particular, essa última tecnologia
vem ganhando força e deixando as pessoas mais conectadas. O conceito de IoT está
presente, por exemplo, no relógio que apresenta notificações em forma de mensagem ao
usuário, sensores que coletam dados vitais do nosso corpo e transformam em informações,
como a quantidade de calorias perdidas, batimentos cardíacos etc. Outra aplicação muito
importante é na área industrial, possibilitando a automatização de vários setores na linha
de produção, trazendo consigo um novo conceito da interação do homem com a máquina
(MARGRANI, 2018).
A Internet das Coisas é uma extensão da internet atual, onde dispositivos com
melhores capacidades computacionais se comunicam pela internet de maneira remota
através de provedores de serviços por interfaces de comunicação e protocolos pré-definidos
(SANTOS et al., 2016). Em seu rigor semântico, Internet das Coisas é um termo apresentado
pelo aumento da comunicação entre máquinas, passando em volume a comunicação
interpessoal pela internet. Este conceito se intensifica com o desenvolvimento de novos
produtos como microdispositivos, sensores e demais componentes que se comunicam e
se tornam uma parte ativa da internet (MARGRANI, 2018). O conceito de Internet das
Coisas não foi oficialmente apresentando até 1999, mas as primeiras aplicações surgiram
na década de oitenta com uma máquina de Coca Cola localizada na Universidade Carnegie
Melon. Na aplicação, foi desenvolvido um software para ser utilizado juntamente com
o refrigerador, onde ele verificava a disponibilidade e o estado (quente/frio) da bebida
(FOOTE, 2013). Segundo (GOKHALE; BHAT; BHAT, 2018), IoT era geralmente definido
como "rede global dinâmica infraestrutura com recursos de autoconfiguração baseados em
padrões e protocolos de comunicação”. Os autores citados nesse parágrafo apresentam suas
formalizações acerca do IoT, cujas opiniões apontam à necessidade de existir comunicação
entre os dispositivos eletrônicos por meio da internet.
Entre as tecnologias encontradas no mercado, pode-se destacar a identificação por
rádio frequência (RFID, Radio-Frequency Identification) presente em pedágios, empresas
de cobrança de passagem de ônibus circular, hotéis, na prevenção de roubo de veículos
e mercadorias, gerenciamento de tráfego, rastreamento de livros de biblioteca, dentre
outras (LANDT, 2005). Esta tecnologia em sua base histórica, remonta à Segunda Guerra
Mundial, onde alemães, japoneses, americanos e britânicos utilizavam o radar, descoberto
Capítulo 1. Introdução 14

pelo físico escocês Robert Alexander Watson para alertar aproximação de aviões inimigos,
mesmo estando a quilômetros de distância. O problema se dava pelo fato de o radar não
conseguir identificar se uma aeronave era amiga ou inimiga e qual era o piloto do país
de origem retornando de sua missão. Então, os alemães descobriram que, se os pilotos
realizassem uma determinada manobra área enquanto retornasse à base, isso mudaria o
sinal de rádio refletido de volta. Este método serviu de alerta à equipe no solo responsável
pelo radar para a identificação das aeronaves e dos pilotos. Essa técnica é considerada
como o primeiro sistema passivo de RFID (ROBERTI, 2005; AHUJA; POTTI et al., 2010).

1.1 O problema de pesquisa


Foi observada no Instituto de Ciências Exatas e Aplicadas (ICEA) da Universidade
Federal de Ouro Preto (UFOP) uma dificuldade para gerenciar o acesso aos laboratórios
de ensino. Professores frequentemente esquecem de devolver as chaves, se atrasam por ter
que pegar a chave, ou ainda têm que se replanejar por não conseguir acesso ao laboratório.
Há também casos de perca de chaves, o que acarreta custos adicionais de novas cópias ou
mesmo de troca da fechadura. Além de, nesse último caso, qualquer pessoa que encontre a
chave ter acesso ao laboratório.

1.2 A solução proposta


O presente trabalho apresenta um sistema composto por uma trava eletrônica, um
sensor de rádio frequência e dispositivos RFID, que integrados a um sistema web são
responsáveis por auxiliar no agendamento e gerenciamento dos laboratórios.

1.3 Justificativa
Com intuito de melhorar o gerenciamento, agendamento e acesso aos laboratórios,
o presente trabalho apresenta um protótipo que concederá melhor flexibilidade no acesso
à plataforma de agendamentos, sendo possível acessar por diferentes dispositivos, como
tablet, computador e smartphone. O acesso aos laboratórios por meio da tecnologia RFID
facilitará o processo, que passará ser feito de forma automatizada utilizando os cartões e o
sensor presente nas portas.

1.4 Objetivos
O principal objetivo do presente trabalho é desenvolver um protótipo de sistema
baseado nos conceitos de IoT para gerenciar o aceso dos professores aos laboratórios de
ensino do ICEA.
Capítulo 1. Introdução 15

Os objetivos específicos do presente trabalho são:

• Desenvolver uma aplicação Web para cadastro de pessoas autorizadas a acessar os


laboratórios;

• Implementar um sistema utilizando um sensor de rádio frequência para acesso aos


laboratórios;

• Gerenciar os agendamentos dos laboratórios de ensino do ICEA;

• Integrar sistemas de solicitações protocolo de transferência de hipertexto ( Hypertext


Transfer Protocol) (Docs (2019)) ;

• Adicionar um de modelo de organização de informação no banco de dados documental;

• Avaliar os custos e a viabilidade de implantação do sistema proposto.

1.5 Organização do trabalho


Esta seção apresenta a organização deste trabalho. O Capítulo 2 apresenta uma
revisão bibliográfica com os conceitos necessários das tecnologias utilizadas. O Capítulo 3
apresenta algumas das características das principais tecnologias utilizadas no trabalho.
O Capítulo 4 apresenta a metodologia empregada na pesquisa e no desenvolvimento
do protótipo. O Capítulo 5, apresenta os resultados obtidos com a implementação do
protótipo, incluindo o sistema web. Por fim, o Capítulo 6 apresenta as considerações finais
e propostas de melhoria.
16

2 Revisão bibliográfica

Este capítulo apresenta uma revisão da literatura, descrevendo os conceitos neces-


sários de cada item do projeto separadamente e trabalhos relacionados.

2.1 Trabalhos relacionados


O trabalho de Technology (2016) mostra a implementação de um sistema de
gerenciamento automático de portas. Nessa pesquisa foi desenvolvido um sistema embarcado
utilizando a plataforma Arduino similar com a apresentada neste trabalho. No esquema do
circuito foram usados dois LEDs de cores diferentes, onde um é ativado quando o acesso é
autorizado, e o outro é ativado caso contrário. Foi adicionada também uma buzina, com
processo análogo ao do LED, onde, tendo permissão, é emitido um som de curta duração,
caso contrário o tempo de duração do som é maior. No processo de verificação do cartão
de acesso, a leitura do mesmo é feita por um sensor de rádio frequência. Em seguida,
inicia-se a verificação das credenciais de acesso dentre os possíveis valores gravados na
memória local do Arduino. Passada a etapa de verificação, um servo motor é acionado
para exemplificar o processo de liberação ou não liberação da porta.
Mukherjee (2016) apresenta uma introdução dos conceitos sobre identificação por
rádio frequência e as principais características do sensor MFRC522 que foi escolhido
para leitura dos cartões neste trabalho. O autor apresenta também o procedimento para
montagem do circuito eletrônico para funcionamento do sensor. Em uma das imagens do
projeto foi apresentado o processo de leitura e verificação da chave de acesso seguido da
apresentação de uma mensagem de ‘acesso negado’ ou ‘acesso autorizado’.
Smerkous (2016) apresenta algumas características do leitor de cartão RFID Ether-
net Arduino. Inicialmente, o autor apresenta sua motivação para o desenvolvimento do
projeto mostrando uma comparação entre o custo do seu protótipo e o custo médio de
soluções prontas no mercado. Seu projeto foi proposto para ser utilizado em escolas para
identificar a localização dos alunos. O sistema é composto pelos seguintes componentes:
Arduino nano; sensor RFID; LED; módulo de conexão com internet e servidor. Em seu
diagrama é apresentada uma visão unificada do sistema, a comunicação e configuração dos
protocolos de acesso à internet, a comunicação com o servidor, o processo de verificação do
código do cartão após leitura e o envio do código para o servidor seguido do recebimento
da resposta.
17

3 Principais tecnologias utilizadas

3.1 Arduino
O Arduino foi um projeto de pesquisa iniciado nos anos 2000 por Banzi, Guartilles,
Igoe, Martion e Melis no instituto de Design de Interação de Ivrea. Tal projeto baseava-se
no Processing, que era uma linguagem de aprendizado para codificação dentro de contextos
de artes visuais criada por Casey Reas, Ben Fry e Hernando Barragan com seu Wirgin
board. Em 2005 o Arduino foi utilizado por alunos de design que não possuíam nenhuma
experiência com eletrônica ou programação. Por essa simplicidade e facilidade a plataforma
tornou-se uma ferramenta popular, ganhando mais adesão da comunidade, e a cada dia
mais projetos foram desenvolvidos em diversas áreas. Este sistema de código aberto, aliado
a um hardware de fácil manuseio, é capaz de transformar praticamente qualquer ideia
em uma solução embarcada. Estima-se que até 2021, o mercado de IoT movimente seis
trilhões de dólares, sendo o Arduino a principal escolha para fabricantes de eletrônicos.
Por sua adoção em massa em diversos projetos eletrônicos o Arduino é considerado um
dos responsáveis pelo Movimento Maker (ARDUINO, 2019a).
A escolha por esta plataforma se deu pela sua facilidade para desenvolvimento de
projetos embarcados, pela facilidade de acesso às bibliotecas e sua documentação. Outro
fator de peso na escolha foi o preço. Comparado ao Raspberry PI, o Arduino tem um
menor custo em sua aquisição pelo fato de não necessitar de um microprocessador, tão
menos de um sistema operacional. O modelo do microcontrolador escolhido, será mais
bem apresentado na etapa de desenvolvimento.

3.2 RFID
Na concepção dos primeiros modelos de identificação por rádio frequência, Watt,
foi o responsável pelo desenvolvimento do sistema ativo amigo de identificação (IFF). A
tecnologia começou a ser usada em aviões britânicos, onde cada aeronave recebia um
transmissor, e ao receber sinais de estações de radar via solo, o sistema ativo amigo de
identificação enviava um sinal de resposta. Assim, este sinal era identificado pela estação
de radar em solo como aeronave amigável. Esta breve caracterização do funcionamento
em sua criação, descreve o conceito do funcionamento do RFID. Basicamente, um sinal é
recebido por um transponder, que após alimentado inicia-se a reflexão do sinal, podendo
ser ativo ou passivo (ROBERTI, 2005; AHUJA; POTTI et al., 2010) .
Como observa-se na Figura 1, a estrutura interna de uma tag RFID é composta por
Capítulo 3. Principais tecnologias utilizadas 18

uma antena de recepção e envio de sinal gerado por ondas de rádio e um microchip contendo
o código de identificação da tag. A leitura é feita ao se aproximar a tag do leitor. O leitor é
responsável por gerar uma onda eletromagnética que induz uma corrente na tag energizando
assim o microchip. Por fim, o microchip envia para a antena o código armazenado, e este é
recebido pelo leitor. Para este trabalho foi escolhido o sensor MFRC522, que é responsável
pela leitura do cartão de acesso.

Figura 1 – Exemplo de circuito da tag RFID.

Fonte: (AFIXGRAF, 2018).

3.3 React
O React consiste em uma biblioteca focada no desenvolvimento de interfaces
de usuário baseada em JavaScript criada em 2013 (REACT, 2019b). Seu conceito de
desenvolvimento é feito por virtual DOM (Document Object Model), sendo alocado em
memória uma cópia do estado da aplicação. A sincronização com DOM original é feita
pela biblioteca ReactDOM. Neste processo de sincronização, são verificadas as partes que
sofreram modificações, sendo feitas atualizações apenas em elementos modificadores por
funções atualizadoras de estado. Isso se dá pois a cada chamada de função de alteração de
estado é feita uma nova análise do estado atual da DOM e da chamada realizada por uma
função modificadora de estado de uma pequena parte da DOM ou elemento específico,
o que evita atualizar todos os dados da tela na aplicação. Neste modelo de atualização
de aplicação, realiza-se a abstração do processo manual de manipulação e atualização de
atributos dentro da aplicação web (REACT, 2019c).
Outra característica importante do React é a estratégia de divisão da interface por
porções menores chamadas de componentes. Na divisão da interface da aplicação, utiliza-se
a técnica do princípio de responsabilidade única, onde um componente é concebido em sua
essência apenas com uma responsabilidade. Caso ele cresça por necessidade, ou seja, com
outras responsabilidades que não foram pensadas, é aconselhável refazê-lo em componentes
menores (REACT, 2019a).
Capítulo 3. Principais tecnologias utilizadas 19

Pela facilidade no desenvolvimento de aplicações web e pela sua estratégia de


divisão de interface por componentes esta biblioteca foi empregada neste trabalho. A
interface da aplicação para agendamentos de laboratórios foi pensada e desenvolvida
por este princípio (responsabilidade única). A divisão dos componentes que integram o
contexto da aplicação foi melhor aproveitada pela facilidade em leitura e correção do
código, sendo melhor diagnosticado por compor de pequenos trechos de código pela divisão
de responsabilidades.

3.4 Redux
Criado por Dan Abramov utilizando a arquitetura Flux desenvolvida pelo Facebook,
o Redux é um contêiner para manipulação de estado para aplicações JavaScript (REDUX,
2019). Durante o desenvolvimento de aplicações grandes, utilizando ou não React, é neces-
sário, em alguns casos, realizar compartilhamento de informações em diferentes cenários
na aplicação web. Isso se torna um problema devido aos diferentes níveis de hierarquia que
podem acontecer. Esta informação precisa ser disponibilizada de maneira global, sendo
consumida por outros elementos em diferentes estados da aplicação (MARUTA, 2018). O
Redux resolve este problema por ser acessível globalmente dentro de qualquer componente
da aplicação. Sua composição de atualização de estado é feita por: actions (disparadas
pelo comportamento da aplicação com usuário); reducers (que irão atualizar o estado
pelas modificações realizadas) e stores (para gerenciar o armazenamento do estado a cada
atualização da aplicação) (CAPRETZ, 2018).
Neste trabalho o Redux será utilizado para controlar o estado em que o usuário está
logado na aplicação, onde os componentes apenas consumam este estado. Neste fluxo, após
acessar à página de login e inserir as informações para logar na aplicação, é armazenado
de maneira global as informações do usuário e que por sua vez é utilizada na aplicação
como fonte de verdade entre componentes que as necessitam, em que após sua expiração é
redirecionado para página de login.

3.5 Firebase
Dentre as ferramentas que auxiliam os desenvolvedores na caminhada em seus
projetos, o Firebase apresenta uma boa proposta, pela sua curva de aprendizado inicial,
com alta disponibilidade, oferecido nos planos gratuito e pagos. Essa ferramenta pode ser
vista como um serviço de compartilhamento de arquivos por repositórios online. Seu ponto
de partida foi uma empresa chamava Envolve, oferecendo ferramentas para bate-papo em
tempo real, que anos depois se tornou o Firebase (FRANKEL, 2017). O Realtime Database
é um serviço de armazenamento em banco de dados na nuvem, sendo seu foco em banco
documental. Os dados são enviados e atualizados na base de dados em milissegundos.
Capítulo 3. Principais tecnologias utilizadas 20

Toda sua aplicação pode ser pensada em torno do cliente, deixando o desenvolvimento,
escalonamento, e demais atividades de tratamento de dados aos encargos do servidor, o que
possibilita mais agilidade em seu desenvolvimento, seja com interface gráfica ou por linha
de comando. A praticidade nesta aplicação volta toda a sinergia do programador para a
aplicação, e não nos detalhes de implementação de serviços para atendimento a requisições
ao banco de dados (DATABASE, 2019). O serviço de autenticação, possibilita simplificações
no processo de acesso de usuários na plataforma, além de ser de fácil integração com outros
serviços de conta como Facebook, GitHub, Twitter, Google, e contas de e-mail com envios
de processo para confirmação de cadastro de conta. O Componente/serviço FirebaseUI
Auth implementa boas práticas de autenticação de usuários para dispositivos móveis e
páginas web (AUTHENTICATION, 2019).
Nos últimos anos, a modelagem para o desenvolvimento de aplicações vem mu-
dando o cenário de muitas empresas por reinventarem softwares utilizando nuvens de
plataforma. Nuvens de plataforma você pode criar aplicações, hospedá-las, escaloná-las
sem a necessidade ter que se preocupar com a infraestrutura necessária para executá-las.
São exemplos de serviços de computação em nuvem, Microsoft Azure, Google App Engine
e Heroku. Com serviços de mensagens online, como Pusher e PubNub, é possível criar
aplicações em tempo real onde as informações são trafegadas quase que instantaneamente
entre vários clientes. O Firebase é único serviço que combina as plataformas citadas acima
em um serviço em nuvem podendo escolher ou não construir aplicações com servidor
(METZ, 2012).
Assim foram escolhidos seguintes serviços oferecidos pelo Firebase: autenticação e
armazenamento. O primeiro é usado para realizar o processo de validação de contas no
cadastro do usuário, sua autenticação. O segundo é Realtime Database para armazenamento
das informações da aplicação onde se salva informação por documento e não pelo modelo
SQL ( Standard Query Language).
21

4 Desenvolvimento

Este capítulo descreve a concepção do sistema proposto, bem como os métodos,


tecnologias, ferramentas e demais componentes utilizados durante as fases de desenvol-
vimento e testes. São descritos também os procedimentos adotados em cada uma das
etapas.
O desenvolvimento do sistema foi dividido em 5 etapas:

• Desenvolvimento do circuito eletrônico do protótipo: nessa etapa foram selecionados


os componentes a serem usados e a documentação de cada elemento utilizado na
prototipação. O circuito eletrônico foi então implementando de forma incremental, e
a cada etapa de montagem e teste por componente, adicionava-se um novo elemento
ao circuito e testava seu funcionamento até chegar ao modelo proposto no trabalho.

• Desenvolvimento do sistema de comunicação: nessa etapa foram estudados os aspectos


da comunicação entre a aplicação web e o sistema Arduino.

• Desenvolvimento de sistema web: uma vez estabelecido como seria a comunicação,


o sistema web foi desenvolvido dando ênfase na usabilidade para os usuários. O
sistema pode ser utilizado em computadores ou em dispositivos portáteis que supor-
tem as tecnologias utilizadas neste trabalho. Nessa etapa foi realizada também a
implementação da camada de serviço que se comunica com o servidor.

• Estruturação e desenvolvimento do banco de dados: essa etapa foi destinada para o


projeto e implementação do banco de dados que será utilizado no sistema, bem como
a forma de comunicação com o servidor e o modelo de acesso/escrita da informação
no banco de dados.

• Processo de validação e realização de testes: por fim, com todos os módulos imple-
mentados foram iniciados os testes de validação, que permitiram avaliar pontos que
continham erros e que poderiam ser melhorados.

4.1 Visão unificada do sistema


A aplicação apresenta três etapas. A primeira dessas etapas é referente ao cadastro
dos professores no sistema de agendamento. Após realizar o cadastro, o professor pode
realizar o acesso ao sistema, e após a confirmação de autenticação, fazer o agendamento
de laboratórios disponíveis na instituição. Com o agendamento realizado, o professor pode
dirigir-se ao laboratório requisitado no horário cadastrado, e então aproximar o cartão de
Capítulo 4. Desenvolvimento 22

acesso ao sensor. O sensor irá realizar a leitura dos dados do cartão e enviar para o servidor.
Esta é a segunda etapa do processo. A terceira etapa é a parte de processamento no
servidor, onde este verifica a autenticidade dos dados fornecidos no cadastro do professor.
Os dados fornecidos pelo sensor são enviados ao servidor, que autoriza ou nega seu acesso
ao laboratório, dado as condições impostas no agendamento com data, laboratório, bloco
e horário específico.
Na aplicação web, com propósito de responsividade por orientação de dispositivo
eletrônico inteligente, é realizado o cadastro e autenticação de usuário, agendamento de
laboratório, exclusão e edição de agendamento e visualização dos laboratórios disponíveis
por bloco. Para tal é considerado a data selecionada pelo usuário na aplicação. O cadastro
de usuário é feito utilizando sua conta Google vinculada à universidade e fornecida aos
docentes. Após realizado o cadastro, é possível realizar a autenticação no sistema, sendo
então possível criar, editar e excluir agendamentos pela data vigente. A Figura 2 apresenta
um esquema ilustrando modelo de arquitetura utilizada na aplicação.

Figura 2 – Diagrama do sitema.

Fonte: (VISUAL PARADIGMA, 2019).

O servidor tem função de aceitar requisições, processar e enviar resposta ao des-


tinatário solicitante do serviço. Foram adicionadas ao projeto bibliotecas que proveem
serviços de acessos a recursos solicitados em cada requisição do cliente, como banco de
dados, realizando tarefas de leitura, escrita, remoção e autenticação de usuário, além de
outras funcionalidades que atendessem regras necessárias na concepção do projeto.
Capítulo 4. Desenvolvimento 23

4.2 Ferramentas utilizadas


Durante a fase de pesquisa e revisão bibliográfica, foram escolhidas ferramentas
de desenvolvimento, linguagens, banco de dados e dentre outros recursos. Na etapa
de codificação foi utilizado Microsoft Visual Studio Code juntamente com React para
desenvolvimento, tendo sua base na linguagem javaScript. Foi adicionado ao projeto um
conjunto de ferramentas apresentadas pela Microsoft, como é o caso do superset chamado
pela empresa de Typescript, utilizado para adicionar tipagem à linguagem JavaScript. Tal
escolha foi feita por questões de padronização na linguagem por semelhança a linguagem
com tipos bem definidos, tornando o ambiente mais produtivo pela inferência de tipos,
verificação estática e facilidade na refatoração de código, sem perca de robustez na criação
de componentes e resultado final da aplicação (TYPESCRIPT, 2019).
Durante o desenvolvimento do sistema para o Arduino em linguagem C, foi utili-
zando um software oferecido pela própria plataforma, tendo uma biblioteca rica e uma
variedade de exemplos de projetos para testes de componentes eletrônicos.
Também foi utilizado o Firebase com plano Spark, que é ofertado gratuitamente
pela empresa com outros serviços agregados ao plano, dentre estes o Realtime Database e
serviço de autenticação.
Neste trabalho serão utilizadas as contas de serviço de e-mail disponibilizadas pela
Google aos docentes. A escolha foi feita pela facilidade no processo de validação do usuário
na aplicação, ou seja, não será preciso realizar o processo de validação de conta fornecida
pelo usuário, já que este processo é realizado antes pela Google, trazendo o benefício
de utilizar uma conta fornecida pela universidade em vez da conta pessoal de e-mail.
Logo, todo fluxo da aplicação será por validação de informações sobre a inserção, leitura
ou remoção no banco de dados. No processo do desenvolvimento do circuito eletrônico
foi utilizado o software Fritzing, que foi desenvolvido pela Universidade Aplicada de
Postman, na Alemanha (NEGROMONTE, 2019). Este projeto é uma iniciativa de código
aberto que apoia profissionais na área da pesquisa, designers, artistas e demais entusiastas
no desenvolvimento de protótipos eletrônicos. A aplicação funciona como um modelo
documentável de esquemas elétricos e interface de placas de circuito impresso (PCI), sendo
possível compartilhar projetos. O Fritzing é considerado menos dispendioso em sua curva
de aprendizado, comparando outros softwares para desenvolvimento de placas do mercado,
como o Proteus.
Durante o planejamento da solução web, a responsividade foi tratada como um
dos pilares do desenvolvimento da interface da aplicação, sendo possível utilizar para
maioria dos dispositivos com tela de interação, seja por toque ou periférico. Durante a
realização da pesquisa, foi encontrado uma biblioteca de interface para usuário nomeada
Material UI, com foco em designer limpo e responsivo, utilizando a mesma arquitetura
Capítulo 4. Desenvolvimento 24

de componentes em React (MATERIAL-UI, 2019). Seu foco é implementar os conceitos


de designer apresentados pela Material Designer, sendo o mesmo conceito adotado pela
Google em seus dispositivos Android (DESIGN, 2019).

4.3 Componentes utilizados e construção do esquema elétrico


4.3.1 Arduino MKR1000
O microcontrolador escolhido para esse projeto foi o Arduino MKR1000. Essa
variação do Arduino é definida pela plataforma como sendo específica para aplicações
IoT. A Figura 3 mostra a foto de Arduino MKR1000. O projeto desse microcontrolador é
voltado para eficiência em soluções com utilização de conexão em redes sem fio (ARDUINO,
2019b). Este componente é baseado no Atmel ATSAMW25 SoC (System on Chip), que
incorpora a família SmartConnect da Atmel Wireless, especifica para IoT.

Figura 3 – Arduíno MKR1000.

Fonte: (ARDUINO, 2019b)

Esta placa permite utilizar mais de um meio para alimentação, na sua pinagem e é
possível utilizar uma bateria de lítio com tensão nominal de 3.7V com mínimo de 700mAh
de corrente. Pelo pino Vin , pode-se acoplar uma fonte com tensão mínima de 5V e máximo
de 6V . Outro meio de alimentação do dispositivo é a partir da porta conectora micro USB
de 5V . Todos esses canais de alimentação podem ser vistos na Figura 4.
Capítulo 4. Desenvolvimento 25

Figura 4 – Pinagem Arduíno MKR100.

Fonte: (COMPONENTS101, 2017)

Na Figura 4 podemos observar também a pinagem para comunicação SPI, que


facilita a utilização do sensor RFID escolhido no trabalho. A comunicação SPI é realizada
através de 7 pinos de comunicação analógica com resolução de 8/10/12 bits. Os pinos D0 -
D14, podem ser utilizados como entrada ou saída, sendo que 12 dos pinos fornecem PWM
de 8 bits. O DAC0 que fornece uma tensão analógica com base em uma entrada digital com
resolução de 10 bits e os demais pinos são de configuração (COMPONENTS101, 2017).

4.3.2 LCD 16X2


Levando em consideração a proposta do protótipo apresentado neste trabalho, foi
escolhido um LCD 16X2, que funcionará como interface para o usuário. Este dispositivo
pode ser visto na Figura 5. Neste pequeno display serão apresentadas algumas mensagens
que fornecerão ao usuário resposta de leitura, envio ao servidor da mensagem contendo
código lido previamente no cartão e, por fim, sua resposta de acesso ou não ao laboratório.
Neste caso, uma mensagem de acesso autorizado ou acesso negado podem ser apresentadas
de acordo com as credencias do cartão validadas durante o processo de autenticação. A
documentação deste componente trás informações relevantes de como realizar a comunica-
ção com o Arduino MKR1000, sua tensão de operação e uma tabela contendo a descrição
de cada pino na formatação da informação no envio de mensagem dos pinos para sua tela
(THOMSEN, 2011).
Capítulo 4. Desenvolvimento 26

Figura 5 – Figura lcd 16x2 com seus respectivos pinos de comunicação

Fonte: (ELETRÔNICA, 2019a)

4.3.3 Sensor RFID


Dentre os leitores mostrados em alguns sites eletrônicos de venda, o sensor RFID
MFRC522 da fabricante NXP foi encontrado com preço mais atrativo do que as soluções
oferecidas por outros fornecedores. O seu funcionamento se dá com uma frequência de
operação de 13.56MHZ e tensão de entrada de 3, 3V . Pelo seu tamanho pequeno, o
componente apresenta menor consumo energético quando se comparado a outros modelos
oferecidos por empresas que apresentam soluções integradas em suas vendas, ou seja, não
oferecem apenas o componente e sim uma solução integrada com sensor, que não se adéqua
à proposta do projeto (GBUR, 2017). A Figura 6 apresenta uma imagem deste sensor que,
posteriormente, foi acoplado ao microcontrolador na construção do protótipo.
Foi utilizado no projeto um cartão e chaveiro contendo os chips RFID acoplados,
como é apresentado na Figura 7.
Capítulo 4. Desenvolvimento 27

Figura 6 – Sensor RFID Mfrc522 de 12.56MHZ.

Fonte: (GBUR, 2017)

Figura 7 – Cartão e chaveiro utilizada no projeto para cadastro e autenticação de acesso


ao laboratório.

Fonte: (ELETRÔNICA, 2019b)

4.3.4 Mirco servo motor


Neste projeto, por questões de custo, o servo motor foi utilizado como uma forma
de simular a fechadura eletrônica. Os servos possuem engrenagens integradas com eixo
que pode ser controlado com precisão. Tal característica permite que alavanca possa
ser posicionada em ângulos distintos, geralmente indo de zero até cento e oitenta graus
(SERVO, 2019).
Foi escolhido para o projeto o micro servo 9g SG90 da TowerPro. A Figura 8
apresenta a imagem de um servo motor do mesmo modelo usado no protótipo. Este
componente contém em sua extremidade um pino com três fios. O fio vermelho, é comumente
utilizado para a tensão de entrada. O fio amarelo, laranja ou branco é o fio de sinal e o fio
marrom ou preto para terra. A alimentação de 5V do arduino é comumente utilizada para
projetos com poucos componentes, sendo que em outros casos é recomendado a utilização
Capítulo 4. Desenvolvimento 28

de uma fonte externa de energia. (THOMSEN, 2019).

Figura 8 – Figura micro servo 9g SG90 da TowerPro

Fonte: (THOMSEN, 2019)

4.4 Montagem dos componentes


Foram feitas pesquisas dentro da documentação oficial do Arduino e em bibliotecas
de interface de comunicação dos componentes pelo GitHub até que uma biblioteca compa-
tível fosse encontrada. Após a pesquisa por trabalhos correlacionados, foi encontrado um
modelo para teste do componente dentro das bibliotecas do Arduino.
Após realizado testes, foi configurado o componente RFID (sensor Mfrc522) com o
microcontrolador (MKR1000) (Figura 4), utilizando a pinagem de comunicação padrão,
sendo MISO, MOSI e VCC de 3.3 volts do sensor (Figura 9).

Figura 9 – Processo de montagem com adição de sensor Mfrc522 e microcontrolador.


Capítulo 4. Desenvolvimento 29

Com o drive de manipulação Hitachi HD44780, geralmente utilizado com interface


LCD de 16 pinos e aplicado ao hardware usado, foram feitos testes pelos exemplos fornecidos
na biblioteca do LCD. Por ter interface paralela, é necessário fazer a manipulação de vários
pinos ao mesmo tempo para controlar a exibição do conteúdo. Encontrado um exemplo
utilizando conexões com portas digitais, foram feitas alterações nos pinos controladores
para usarem portas analógicas em vez das digitais apresentadas no esquema de montagem.
Isso diminui a quantidade de portas digitais usadas no projeto, liberando assim mais portas
para adicionar novas possíveis melhorias no sistema (Figura 10). Em sua arquitetura
pode-se encontrar um pino de seleção de registro (RS) responsável por controlar onde é
feito a gravação de dados no LCD, um pino de leitura/gravação (R/W), que seleciona o
modo (leitura ou escrita) e 8 pinos (D0-D7) de alteração de estado em nível lógico baixo
ou alto adicionado aos registradores para leitura ou escrita. No dispositivo possui ainda
um pino para contraste de tela (V0), pinos para fonte de alimentação (5V), pino para terra
(GND) e pino LED para controle de intensidade de luz de fundo no LCD (ARDUINO,
2019c).

Figura 10 – Circuito com LCD e microcontrolador.

Na montagem do circuito do servo motor, foi usado uma porta de comunicação


digital para rotacionar o mesmo entre 0o até 180o , simulando assim a tensão aplicada na
fechadura da porta. (Figura 11).
Capítulo 4. Desenvolvimento 30

Figura 11 – Adicionando servo motor.

Na Figura 12 encontra-se o resultado de cada teste realizado individualmente e


depois com a integração cada componente usado no projeto, sempre sendo adicionando
cada parte em função da modularidade do sistema, ou seja, o seu processo de montagem
por partes.
Capítulo 4. Desenvolvimento 31

Figura 12 – Circuito completo contendo todos componentes.

4.5 Aplicação web


Seguindo a proposta de desenvolvimento do React, foi dividida a interface da
aplicação em componentes, sendo eles menu, meu perfil, tela de login, agendamentos livres
e novos, rodapé com menu e barra superior contendo submenu vinculado à foto do usuário.
Neste projeto foi adotada a filosofia de orientação a objetos em linguagens de alto nível
com o princípio de responsabilidade única, ou seja, o componente deve idealmente fazer
apenas o que lhe cabe em sua concepção. Caso ele aumente por características de sua
solução, é feita sua decomposição em subcomponentes menores (REACT, 2019a).
A primeira divisão de componente é a barra superior, que aparece com borda
na cor cinza (Figura 13). Este componente possui o logo da universidade, título e um
outro subcomponente anexado. O subcomponente em questão é o submenu, caracterizado
por exibir acesso ao componente de perfil e opção de sair da aplicação. Na figura que
corresponde a foto do usuário (Figura 13), são apresentadas suas informações, também
usadas para alimentar um estado global gerenciado pelo Redux e acessível por toda
aplicação. O primeiro componente da lista abaixo da barra superior, com borda na cor
roxa (Figura 13), é o botão destinado à realizar um novo agendamento. Abaixo, temos os
componentes correspondentes aos botões de Laboratórios agendados, Laboratórios livres e
Capítulo 4. Desenvolvimento 32

o Meu perfil.
A aplicação comunica com requisições simples utilizando padrões de comunicação
por protocolos web (HTTP). As solicitações são realizadas ao servidor pelos serviços
oferecidos na aplicação web, sendo este processado pelo servidor e enviando à aplicação
solicitante. O formato de comunicação por JSON atende ao modelo de dados trafegados
entre ambos pelo seu formato à esquerda ser sua chave e à direita o valor correspondente
à chave.

Figura 13 – Decomposição de interface em componente, seguindo as regras de componen-


tização oriundas do React.

A tela de cadastro de usuário do sistema é seguida de três etapas, na primeira etapa


do cadastro na Figura 16a é utilizado um componente de biblioteca fornecido pelo Google
para login social de provedores de identidades federados, podendo utilizar Google, Apple,
Facebook, Twitter e Github (AUTHENTICATION, 2019). Dentre as opções fornecidas, por
questões praticidade foi escolhido o provedor do Google por causa das contas educacionais
registradas na Universidade Federal Do Ouro Preto. Ao clicar no botão "criar com Google",
Capítulo 4. Desenvolvimento 33

é aberto uma janela para login em conta, após confirmação de conta utilizada para login,
é redirecionado para tela com informações fornecidas pela Google. Após resposta de login
Figura 16b, as informações são recebidas na tela e fornecidas aos campos sem a necessidade
de preenchimento manual pelo usuário, facilitando o processo de cadastro, e assim deixando
apenas ser digitado o código do cartão RFID pelo usuário. Por fim é na tela Figura 16c
que são revisadas as informações antes da finalização do cadastro, podendo voltar e alterar
a informação código de acesso do cartão RFID.
Capítulo 4. Desenvolvimento 34

(a) Tela inicial do cadastro do usuário (b) Tela preenchida após escolha de
por conta Google. conta Google.

(c) tela de revisão de cadastro.

Figura 14 – Fluxo de cadastro de usuário no sistema web.


Capítulo 4. Desenvolvimento 35

4.6 Aplicação IoT


Nesta aplicação o microcontrolador (Figura 3) gerencia os componentes responsáveis
pela interação com usuário e sua posterior comunicação com servidor. Após aproximar
o cartão ou chaveiro (Figura 7) no sensor (Figura 12), é feita leitura do código gravado
no chip. Após realizada a leitura do código armazenado dentro do cartão/trag RFID, o
dispositivo LCD apresenta informações no formado de pequenas mensagens ao usuário e
envia uma requisição HTTP para servidor ilustrado na Figura 15. Após recebimento da
informação sistema IoT para o servidor, é realizado uma busca no sistema para encontrar
algum agendamento realizado no período do recebimento do código no servidor e após seu
término é enviada uma mensagem utilizando protocolo HTTP de resposta do servidor para
sistema IoT contendo a informação que posteriormente é analisada e com isso liberando
ou não acesso ao laboratório.

Figura 15 – Diagrama de fluxo de requisição/resposta entre sistema IoT e servidor. (VI-


SUAL PARADIGMA, 2019)

4.7 Servidor
Desenvolvido pela necessidade de processar requisições, tanto da aplicação web e
do embarcado. O desenvolvimento do servidor foi concebido utilizando JavaScript com
TypeScript em ambiente node, dividida em três camadas. A primeira camada representa a
inicialização com as respectivas configurações de acesso ao servidor, utilizando somente
protocolos HTTP entre requisitante e servidor para resposta da requisição. A segunda
camada diz respeito às rotas para acessar a camada mais interna, onde realmente é
realizado o processamento das requisições. Utilizando o conceito Model-View-Controller
(MEDEIROS, 2013), foram elaboradas as três camadas e utilizadas as restrições de cada
funcionalidade oferecida para aplicação web e microcontrolador. Nas restrições para o
microcontrolador, ao receber solicitações de verificação de acesso, é feita uma solicitação ao
Capítulo 4. Desenvolvimento 36

servidor, que por sua vez realiza uma chamada ao serviço do Realtime Database, buscando
os agendamentos realizados na data vigente e pesquisado o agendamento que atende a
solicitação realizada pelo cliente. Utilizando o código de identificação recebido é realizada
a pesquisa se existe agendamento na data e horário. Caso exista, é enviado uma resposta
para o microcontrolador. Para aplicação web de agendamentos, é ofertado as seguintes
funcionalidades: cadastro de usuário; cadastrado de agendamento(s); filtro por laboratórios
disponíveis de acordo com a data vigente e bloco escolhido; exclusão de agendamento(s);
edição de agendamento(s) realizado(s) e autenticação.
37

5 Resultados

Neste capítulo serão apresentados os resultados obtidos a partir dos testes realizados.
Foi possível realizar testes das funções criar, ler, editar e deletar agendamentos além de
cadastrar novos usuários ao sistema. Foram feitos também testes de acesso e privilégio
integrado ao sistema IoT.

5.1 Funcionalidades do sistema


Nesta seção serão apresentadas as funcionalidades da aplicação web, mostrando
os fluxos de acesso ao sistema em computador e dispositivo móvel. Serão apresentadas a
seguir as funcionalidades da aplicação web e sistema IoT interagindo com servidor. Após
selecionada qualquer opção na tela principal, ao se redirecionar a outra tela, é possível ver
outro menu inferior para acesso rápido as outras funcionalidades.

5.1.1 Cadastro de usuário


Foi criado um fluxo simples para cadastro ao sistema, onde qualquer usuário com
uma conta vinculada ao Google pode se cadastrar(Figura 16a). Quanto ao cadastro, não
são feitas regras de restrições (o que pode ser implementando posteriormente), podendo
qualquer pessoa com acesso ao link efetuar seu registro. Após escolhida a conta vinculada
(Figura 16b), os respectivos campos de usuário como, nome, e-mail e foto de perfil
são automaticamente preenchidos, ficando a cargo do usuário apenas digitar código do
dispositivo RFID utilizado. Nesta etapa é de suma importância adicionar o código de
acesso, sendo ele utilizado na verificação do acesso ao laboratório. Em toda tentativa
de acesso a qualquer laboratório é utilizado o código de acesso em seu processo, assim,
qualquer agendamento realizado pelo usuário é adicionado também seu código de acesso
no agendamento.
Capítulo 5. Resultados 38

(a) Tela inicial do cadastro do (b) Tela preenchida após es- (c) tela de revisão de cadas-
usuário por conta Google. colha de conta Google. tro.

Figura 16 – Fluxo de cadastro de usuário no sistema web.

5.1.2 Autenticação
Na tela de autenticação (Figura 17) temos a opção de somente iniciar na conta
cadastrada anteriormente pelo provedor Google, como assim definido no contexto do
trabalho. Ao clicar, aparecerá uma janela apresentando qual conta você vai utilizar para
prosseguir, e após escolhido a conta previamente cadastrada (Figura 18a), o usuário é
redirecionado para tela principal da aplicação (Figura 18b) que apresenta as opções de
ações do sistema.
Capítulo 5. Resultados 39

(b) Visualização no disposi-


(a) Visualização no computador. tovo móvel.

Figura 17 – Tela de login utilizando Google Chrome.

(a) Tela de escolha de conta Google do (b) Tela principal de acesso as funcio-
usuário. nalidades do sistema.

Figura 18 – Escolha de conta Google e tela princial da aplicação.


Capítulo 5. Resultados 40

5.1.3 Cadastro de agendamentos


Ao escolher a opção de novo agendamento, é feito redirecionamento para tela de
agendamentos (Figura 19a). Na tela é apresentando um menu com os campos definidos para
agendamento. Ao clicar no campo de seleção de bloco é aberta uma lista contendo os blocos
cadastrados. Em seguida, após a seleção, é feito o carregamento dos laboratórios daquele
bloco. Ao clicar no botão com ícone de calendário, contendo o título “data Agendamento”,
é aberto um menu com foco de seleção de data do agendamento, sendo possível realizar
outros agendamentos em datas e horários diferentes para o mesmo bloco e laboratório. Por
fim, tem-se dois campos de horário contendo o início e fim (Figura 19b) para duração do
agendamento seguido do botão salvar.

(a) Tela para criar novo agen- (b) Preenchimento com horá- (c) Confirmação de cadastro
damento. rio do agendamento. de agendamento.

Figura 19 – Fluxo de agendamento no sistema web.

5.1.4 Laboratórios agendados


Na tela da Figura 20 são apresentados agendamentos do usuário. Este agendamentos
representam o laboratório, data e duração do agendamento. Exite a possibilidade realizar
o clique em um agendamento e visualizar suas opções (Figura 20b). É possível ainda editar
ou remover um agendamento (Figura 20c).
Capítulo 5. Resultados 41

(b) Menu de opções do agen-


(a) Lista de agendamentos. damento selecionado. (c) Ediçao de agendamento.

Figura 20 – Laboratórios agendados do usuário.

5.1.5 Laboratórios livres


Na tela da Figura 21a é possível observar os laboratórios disponíveis por bloco
(Figura 21b), que ao selecionar o bloco é feita uma requisição ao servidor, e assim, carregado
a lista de laboratórios disponíveis (Figura 21c).
Capítulo 5. Resultados 42

(a) Tela de laboratórios dis- (c) Lista de laboratórios dis-


poníveis por seleção de (b) Menu de opções de blocos poníveis de acordo com
bloco. cadastrados. bloco selecionado.

Figura 21 – Laboratórios disponíveis ao usuário.

5.1.6 Meu perfil


Na tela da Figura 22 são apresentas as informações do usuário.

Figura 22 – Tela do perfil do usuário.


Capítulo 5. Resultados 43

5.2 Funcionalidades de sistema IoT


Durante o processo de solução da aplicação, foram realizados testes individuais de
cada componente elétrico utilizado, encapsulando as partes até sua conclusão. A (Figura 23)
apresenta uma foto do protótipo finalizado do sistema de IoT. No processo de teste dos
componentes foram utilizadas bibliotecas de acordo com a interface de comunicação por
componente.

Figura 23 – Protótipo finalizado do sistema IoT.

Figura 24 – Log de inicialização do dispositivo com informações de acesso a rede wifi


configurada.

No processo de teste da aplicação, foi realizado o primeiro teste com cartão e depois
com o chaveiro. Ao ligar o dispositivo, acoplado por uma interface usb no computador
com software de desenvolvimento do Arduino, é possível observar o log de mensagens
usadas desde o início, quando a aplicação é ligada, até cada solicitação de verificação do
agendamento (Figura 24). Ao ligar o dispositivo, é visto seu log de tentativa de conexão
com rede sem fio, configurada previamente via código no programa (Figura 25). Em sua
Capítulo 5. Resultados 44

configuração é adicionado o endereço do servidor e sua rota para envio do código do cartão.
Ao passar o cartão ou chaveiro no sensor é feito processo de leitura de código. Após a
leitura é informado por meio do LCD o fluxo de andamento do envio da mensagem ao
servidor. Durante a tentativa de envio de requisição ao servidor, é esperado uma resposta.
Caso passe o limite padrão estabelecido pela biblioteca de comunicação do HTTP é enviada
uma mensagem ao LCD informando ao usuário sobre a falha na conexão. Após recebida
reposta do servidor é liberado acesso ao local ou negado, com base nas regras de acesso.

Figura 25 – Teste de leitura da tag, com envio de código por rede sem fio para verificação
de agendamento.

5.3 Vantagens e desvantagens


No trabalho foram observados vantagens e desvantagens do sistema. Os componentes
são encontrados com uma maior facilidade em sites/lojas de eletrônica, com isso é possível
realizar trocas caso algum componente apresente defeito. A utilização da plataforma
Arduíno nos auxilia no desenvolvimento de circuitos eletrônicos com vários componentes,
de maneira fácil e rápida com sua biblioteca para nos auxiliar durante as etapas de
montagem. Uma das principais limitações do presente trabalho é um sistema suscetível a
falha, pois não foi amplamente testado em diferentes ambiente de homologação. Outro
recurso que deixa a depender externamente, é a conexão a internet para comunicação
uníssona entre sistema web e IoT, por utilizar protocolos http de comunicação por meio
Capítulo 5. Resultados 45

da internet no Capítulo 4 e seção 4.6. Por fim o sistema é carente de circuito de proteção,
sendo sensível a qualquer variação na corrente elétrica. Outro ponto a ser destacado é
a possibilidade de utilizar outro modelo da linha Arduíno compatível com IoT ou outro
microcontrolador com mesmo proposito. Segue abaixo a tabela com custo aproximado dos
componentes.

Componentes eletrônicos Custo


Arduino MKR1000 R$ 150,00
LCD 16X2 R$ 3,75
Sensor RFID Mfrc522 R$ 22,50
micro servo 9g SG90 da TowerPr R$ 6,16
Total R$ 182,41

Tabela 1 – Tabela contendo custo individual e total dos componentes utilizados.


46

6 Conclusão

Com a realização deste trabalho pode-se concluir que, ao se utilizar diversas


tecnologias combinadas na solução do problema proposto gera-se uma solução que pode
atender a Universidade Federal de Ouro Preto, podendo ser usada em dispositivos /móveis,
computadores e tablets. A fechadura utilizando RFID com permissão máxima dois mil
cartões cartões/tags RFID cadastrados Agl (2019) com valor anunciado no site do fabricante
de trezentos e cinquenta reais e entre outras propostas de gerênciamento de acesso eletrônico.
As soluções encontradas no mercado se limitam pela quantidade de códigos de acesso, pela
não integração com sistemas de terceiros, ou qualquer opção de integração com outras
tecnologias. O presente protótipo se limita a utilização de bateria ou qualquer outro meio
de alimentação de energia elétrica, falta de circuito de proteção e falha de conexão.
Como trabalhos futuros pode-se citar:

• Melhoria com um menu para administrador, apresentando informações mais relevan-


tes ao uso da aplicação IoT com servidor e aplicação web;

• Melhoria na funcionalidade para aplicação: na utilização de laboratórios agendados


é apresentado apenas laboratórios com data vigente em sua lista, podendo adicionar
um filtro, apresentando histórico anterior;

• Melhoria no método de acessar o laboratório: pode-se utilizar outro dispositivo


na autenticação do usuário quando for realizada uma tentativa de acesso. Utilizar
teclado numérico, sensor de impressão digital ou qualquer outro modelo que possa
atender este trabalho;

• Melhoria na adição de restrições de permissionamento no banco de dados: na busca


das informações ou escrita dentro da aplicação é possível adicionar permissões à
usuários da aplicação;

• Melhoria na adição de restrições de circuito de proteção contra queima de equipa-


mentos.

Em suma, foi possível concluir o objetivo proposto neste trabalho, e as sugestões de


trabalhos futuros podem agregar valor ao projeto final provendo outras formas de acesso
aos laboratórios da Universidade Federal de Ouro Preto.
47

Referências

AFIXGRAF. RFID: Soluções para Identificação Automática de Dados. [S.l.], 2018.


Disponível em: <http://www.afixgraf.com.br/rfid/>. Acesso em: 25 dez. 2019. Citado na
página 18.

AGL. Fechadura Ultra Card. [S.l.], 2019. Disponível em: <https://www.aglfechaduras.com.


br/product-page/fechadura-eletrônica-smart-card>. Acesso em: 14 dez. 2019. Citado na
página 46.

AHUJA, S.; POTTI, P. et al. An introduction to rfid technology. Commun. Netw., v. 2,


n. 3, p. 183–186, 2010. Citado 2 vezes nas páginas 14 e 17.

ARDUINO. About Us. [S.l.], 2019. Disponível em: <https://www.arduino.cc/en/Main/


AboutUs>. Acesso em: 25 dez. 2019. Citado na página 17.

ARDUINO. Arduino MKR1000 WIFI. [S.l.], 2019. Disponível em: <https:


//store.arduino.cc/usa/arduino-mkr1000>. Acesso em: 19 dez. 2019. Citado na página 24.

ARDUINO. "Hello World!". [S.l.], 2019. Disponível em: <https://www.arduino.cc/en/


Tutorial/HelloWorld>. Acesso em: 1 jan. 2019. Citado na página 29.

AUTHENTICATION, F. Login simples e gratuito em várias plataformas. [S.l.], 2019.


Disponível em: <https://firebase.google.com/products/auth>. Acesso em: 25 dez. 2019.
Citado 2 vezes nas páginas 20 e 32.

CAPRETZ, V. Tira Redux, coloca Redux. [S.l.], 2018. Disponível em: <https:
//medium.com/trainingcenter/tira-redux-coloca-redux-eb3c4f1d7db8>. Acesso em: 25
dez. 2019. Citado na página 19.

COMPONENTS101. Arduino MKR1000 Wi-Fi Board. [S.l.], 2017. Disponível em:


<https://www.intelbras.com/pt-br/fechadura-digital-de-sobrepor-fr-101>. Acesso em: 19
dez. 2019. Citado na página 25.

DATABASE, F. R. Firebase Realtime Database. [S.l.], 2019. Disponível em:


<https://firebase.google.com/docs/database>. Acesso em: 25 dez. 2019. Citado na
página 20.

DESIGN, M. Material is a design system – backed by open-source code – that helps teams
buildhigh-quality digital experiences. [S.l.], 2019. Disponível em: <https://material.io/>.
Acesso em: 19 dez. 2019. Citado na página 24.

DOCS, M. W. HTTP Tutoriais. developer.mozilla.org, 2019. Disponível em:


<https://developer.mozilla.org/pt-BR/docs/Web/HTTP>. Acesso em: 19 dez. 2019.
Citado na página 15.

ELETRÔNICA, B. da. Display LCD 16x2 (Azul). [S.l.], 2019. Disponível em:
<https://www.baudaeletronica.com.br/display-lcd-16x2-azul.html>. Acesso em: 19 dez.
2019. Citado na página 26.
Referências 48

ELETRÔNICA, M. CARTÕES RFID E O MÓDULO MFRC522. [S.l.],


2019. Disponível em: <https://www.moduloeletronica.com.br/blog?single=
Cartoes-RFID-e-o-Modulo-MFRC522>. Acesso em: 19 dez. 2019. Citado na página 27.

FOOTE, K. D. A INTERNET DAS COSIAS. Data Topics 2016, 2013. Disponível em:
<https://www.dataversity.net/brief-history-internet-things>. Acesso em: 19 dez. 2012.
Citado na página 13.

FRANKEL, D. How to Build a Product Loved by Millions and Get Acquired by


Google: The Firebase Story. [S.l.], 2017. Disponível em: <https://hackernoon.com/
how-to-build-a-product-loved-by-millions-and-get-acquired-by-google-the-firebase-story-.
82dab4e3e80c>. Acesso em: 25 dez. 2019. Citado na página 19.

GBUR, F. Módulo RFID RC522 Mifare com Arduino. [S.l.], 2017. Disponível em:
<https://portal.vidadesilicio.com.br/modulo-rfid-rc522-mifare/>. Acesso em: 19 dez.
2019. Citado 2 vezes nas páginas 26 e 27.

GOKHALE, P.; BHAT, O.; BHAT, S. Introduction to iot. International Advanced


Research Journal in Science, Engineering and Technology, v. 5, n. 1, p. 41–44, 2018.
Citado na página 13.

LANDT, J. The history of RFID. IEEE Xplore Digital Library, 2005. Disponível em:
<https://ieeexplore.ieee.org/document/1549751>. Acesso em: 19 dez. 2012. Citado na
página 13.

MARGRANI, E. A INTERNET DAS COSIAS. Biblioteca digital FGV, 2018. Disponível


em: <https://bibliotecadigital.fgv.br/dspace/bitstream/handle/10438/23898/A%
%20internet%20das%%20coisas.pdf>. Acesso em: 19 dez. 2012. Citado na página 13.

MARUTA, R. Iniciando com Redux em 9 passos. [S.l.], 2018. Disponível em:


<https://medium.com/reactbrasil/iniciando-com-redux-c14ca7b7dcf>. Acesso em: 25 dez.
2019. Citado na página 19.

MATERIAL-UI. Componentes React para um desenvolvimento mais rápido e fácil.


Construa seu próprio design, ou comece com Material Design. [S.l.], 2019. Disponível em:
<https://material-ui.com/pt/>. Acesso em: 19 dez. 2019. Citado na página 24.

MEDEIROS, H. "Hello World!". [S.l.], 2013. Disponível em: <https://www.devmedia.com.


br/introducao-ao-padrao-mvc/29308>. Acesso em: 1 jan. 2019. Citado na página 35.

METZ, C. ’Firebase’ Does for Apps What Dropbox Did for Docs. [S.l.], 2012. Disponível
em: <https://www.wired.com/2012/04/firebase>. Acesso em: 25 dez. 2019. Citado na
página 20.

MUKHERJEE, A. Security Access Using RFID Reader. Hackster.io, 2016. Disponível em:
<https://www.hackster.io/Aritro/security-access-using-rfid-reader-f7c746>. Acesso em:
25 dez. 2019. Citado na página 16.

NEGROMONTE, E. O que é Fritzing? [S.l.], 2019. Disponível em: <https:


//sempreupdate.com.br/o-que-e-fritzing/>. Acesso em: 25 dez. 2019. Citado na página
23.
Referências 49

REACT. Pensando do jeito React. [S.l.], 2019. Disponível em: <https://pt-br.reactjs.org/


docs/thinking-in-react.html#___gatsby>. Acesso em: 25 dez. 2019. Citado 2 vezes nas
páginas 18 e 31.

REACT. react/CHANGELOG.md at master. [S.l.], 2019. Disponível em: <https:


//github.com/facebook/react/blob/master/CHANGELOG.md>. Acesso em: 25 dez. 2019.
Citado na página 18.

REACT. Virtual DOM e Objetos Internos. [S.l.], 2019. Disponível em: <https:
//pt-br.reactjs.org/docs/faq-internals.html>. Acesso em: 25 dez. 2019. Citado na página
18.

REDUX. Getting Started with Redux. [S.l.], 2019. Disponível em: <https:
//redux.js.org/introduction/getting-started>. Acesso em: 25 dez. 2019. Citado na página
19.

ROBERTI, M. The History of RFID Technology. RFID Journal, 2005. Disponível em:
<https://www.rfidjournal.com/articles/view?1338>. Acesso em: 19 dez. 2012. Citado 2
vezes nas páginas 14 e 17.

SANTOS, B. P. et al. Internet das Coisas: da Teoria à Prática. [S.l.], 2016. Disponível
em: <https://homepages.dcc.ufmg.br/~mmvieira/cc/papers/internet-das-coisas.pdf>.
Acesso em: 19 dez. 2012. Citado na página 13.

SERVO, A. Servo library. [S.l.], 2019. Disponível em: <https://www.arduino.cc/en/


reference/servo>. Acesso em: 5 setem. 2019. Citado na página 27.

SMERKOUS, D. Arduino Ethernet Rfid card reader. Hackster.io, 2016. Disponível em:
<https://www.hackster.io/smerkousdavid/arduino-ethernet-rfid-card-reader-1ffdee>.
Acesso em: 25 dez. 2019. Citado na página 16.

TECHNOLOGY, R. RFID Based Automatic Door System. [S.l.], 2016. Disponível em:
<https://www.hackster.io/user8523373/rfid-based-automatic-door-system-7b2065>.
Acesso em: 25 dez. 2019. Citado na página 16.

THOMSEN, A. Controlando um LCD 16X2 com Arduino. [S.l.], 2011. Disponível em:
<https://www.filipeflop.com/blog/controlando-um-lcd-16x2-com-arduino/>. Acesso em:
19 dez. 2019. Citado na página 25.

THOMSEN, A. Micro Servo Motor 9g SG90 com Arduino Uno. [S.l.], 2019. Disponível
em: <https://www.filipeflop.com/blog/micro-servo-motor-9g-sg90-com-arduino-uno/>.
Acesso em: 4 out. 2019. Citado na página 28.

TYPESCRIPT. TypeScript. [S.l.], 2019. Disponível em: <https://www.typescriptlang.org/


>. Acesso em: 25 dez. 2019. Citado na página 23.

VISUAL PARADIGMA. Scalable Marketing Website. [S.l.], 2019. Disponível em:


<https://online.visual-paradigm.com/app/diagrams/#diagram:proj=0&type=
AzureDiagram&gallery=/repository/6dee5ca3-06d7-4b75-90be-da27b6e415c2.xml&
name=Scalable%%20Marketing%20Website>. Acesso em: 25 dez. 2019. Citado 3 vezes
nas páginas 9, 22 e 35.

Você também pode gostar