Você está na página 1de 27

\

REPÚBLICA DE ANGOLA
MINISTÉRIO DA EDUCAÇÃO
MINISTÉRIO DAS TELECOMUNICAÇÕES E TECNOLOGIA DE INFORMAÇÃO
INSTITUTO DE TELECOMUNICAÇÕES

MARCOS KIAKU FERNANDO SIALA, 12123

MAURO GARCIA DOMINGOS, 11790

RELATORIO DO PROJECTO DE APTIDÃO PROFISSIONAL (PAP)

SISTEMA ANTÍ-MATA AULAS

Luanda

SETEMBRO DE 2019

i
MARCOS KIAKU FERNANDO SIALA, 12123

MAURO GARCIA DOMINGOS, 11790

SISTEMA ANTÍ-MATA AULAS

Projecto apresentado a Coordenação do Curso de


Electrónica e Telecomunicações dos requisitos ao
título de Técnico Médio de Electrónica e
Telecomunicações

Orientador:

________________________________________

Luanda

SETEMBRO DE 2019

ii
FOLHA DE APROVAÇÃO

MARCOS KIAKU FERNANDO SIALA, 12123

MAURO GARCIA DOMINGOS, 11790

Projecto apresentado a Coordenação do Curso de


Electrónica e Telecomunicações dos requisitos ao
título de Técnico Médio de Electrónica e
Telecomunicações

Aprovado em __ /__/ 2019

Presidente do Júri:

__________________________________________________________

1ºPresidente. Vogal:

__________________________________________________________

2ºPresidente. Vogal:

__________________________________________________________

iii
Agradecimentos

A Deus que com a sua graça nos capacitou, a nossa


família pelo apoio incondicional e aos nossos queridos
professoresque participaram na nossa formação, o nosso
muito obrigado.

iv
Resumo

O propósito deste Sistema se resume na aplicação de sensores nas carteiras nas salas de aulas
para a detecção, identificação e reconhecimento de estudantes nas salas de aulas. O Arduíno
ID foi utilizado para a elaboração dos algoritmos e utilizou-se também o MIT-App Inventor
para a criação do aplicativo que controla o sistema.

O sistema baseia-se detecção de estudantes através de um sensor que se instalou nas cadeiras.
Para identificar o estudante recorreu-se ao controlo biométrico e para se poder aceder as
informações e se fazer a monitorização de forma remota utilizou-se um smartphone. Neste
smartphone instalou-se um aplicativo que se desenvolveu com o objectico de executar várias
funções, dentre eles uma das mais importantes é a de notificar os encarregados de educação
dos estudantes ausentes.

Palavras-chaves: Smartphone, monitorização remota, arduíno, controlo biométrico.

v
Lista de Abreviaturas e Siglas

A/D Conversor Analógico/Digital

DT Serial Data Output- Saída de Dados Seriais

E Enable- Habilitar

GND Ground-Terra

ITEL Instituto de Telecomunicações

LCD Liquid Crystal Display-Visor de Cristal Líquido

mA mili-Ampere

NC Normally Closed-Normalmente Fechado

NO Normally Open-Normalmente Aberto

RF Rádio Frequência

RW Read and Write- Leitura e Escrita

SCK Serial Clock Input- Entrada de Relógio Serial

VCC Tensão de Corrente Contínua

VDD Tensão Positiva de Alimentação

VSS Tensão Negtiva de Alimentação

vi
Lista de Figuras e tabelas

Figura 3- 1 Diagrama em Bloco do sistema Anti Mata-Aulas ................................................... 4


Figura 3- 2 Esquema Eléctrico do Sistema Antí Mata-Aulas .................................................... 6
Figura 3- 3 Sensores de Fim do Curso ....................................................................................... 7
Figura 3- 4 Leitor Biométrico imulado no Proteus .................................................................... 7
Figura 3- 5 Botões de Gravação das digitais .............................................................................. 8
Figura 3- 6 Arduíno simulado no Proteus .................................................................................. 8
Figura 3- 7 LCD simulado no Proteus ....................................................................................... 9
Figura 3- 8 Módulo Bluetooth simulado no Proteus .................................................................. 9
Figura 6- 1 Código em bloco do aplicativo .............................................................................. 20
Figura 6- 2 Cógigo em bloco do aplicativo .............................................................................. 21

Tabela 4-1 Preço das matérias ................................................................................................ 11

vii
Sumário
1. Introdução ........................................................................................................................... 1
1.1. Problemática .................................................................................................................... 1
1.2. Justificativa...................................................................................................................... 1
1.3. Objectivos gerais e específicos ....................................................................................... 1
2. Definições e conceitos ........................................................................................................ 3
2.2. Módulo Bluetooth ........................................................................................................ 3
2.3. Arduíno ........................................................................................................................ 3
3. Estudo de Caso .................................................................................................................... 4
3.1. Diagrama de blocos ..................................................................................................... 4
3.2. Funcionamento do diagrama ....................................................................................... 4
3.3. Esquema eléctrico ........................................................................................................ 5
3.4. Resultados e Discussões .............................................................................................. 6
3.4.1. Sensores de fim de Curso ............................................................................................ 6
3.4.2. Sensor Biométrico ....................................................................................................... 7
3.4.3. Arduíno ........................................................................................................................ 8
3.4.4. LCD ............................................................................................................................. 9
3.4.5. Módulo Bluetooth ........................................................................................................ 9
4. Conclusão .......................................................................................................................... 10
4.1. Vantagens e Desvantagens ........................................................................................ 10
4.2. Caderno de encargo ................................................................................................... 11
6. Anexos .............................................................................................................................. 13
6.1. Código fonte do Arduíno ........................................................................................... 13
6.2. Código fonte do Arduíno ........................................................................................... 20

viii
1. Introdução

A biometria sempre foi utilizada para o reconhecimento pessoal. Consiste em uma


alternativa de identificação por apresentar as seguintes características: universalidade,
unicidade, imutabilidade, classificabilidade, facilidade de coleta e aceitação pública. A
utilização das Impressões Digitais para reconhecimento biométrico oferece segurança e
eficácia, podendo substituir os cartões e senhas que utilizamos no dia a dia.

Este sistema de identificação em conjunto com os de mais sensores que constam neste
projecto e que estão escritos no presente relatório constituem no funcionamento do Sistema
Antí-Mata Aulas.

1.1. Problemática

Nos dias de hoje é muito comum presenciar alunos a se ausentarem nas aulas, são muitos
factores que fazem com que isso aconteça, alguns desses factores são aceitáveis mas outros
não. Em busca da razão deste comportamento verificou-se que o número de faltas na parte dos
estudantes que muitas vezes é propositado tem aumentado e como consequência tem
aumentado também o número de reprovação de estudantes e os encarregados de educação por
saber que os seus educandos se fazem presentes sempre na escola, vão se levantando muitas
dúvidas e muitas das vezes se revoltam contra a escola.

1.2. Justificativa

Na necessidade de reduzir o índice elevado de reprovações por faltas e também


modernizar o sistema de controlo actual de presença nas escolas pensou-se em implementar
tecnologias de informação e comunicação nas nossas escolas de modo a ajudar no processo,
como é do nosso conhecimento a tecnologia apresenta inúmeras vantagens e a sua aplicação
no contexto actual do mundo é inquestionável.

1.3. Objectivos gerais e específicos

A visão deste projecto é acabar ou reduzir significativamente o número excessivo de faltas


por parte dos estudantes nas instituições de ensino, visa também manter os encarregados de
educação informados sobre o assunto.

1
Especificamente:

 Desenvolver um aplicativo usando os conceitos de linguagem C e estabelecer a ligação


entre a software e o hardware através do Bluetooth, bem como um sistema de controlo
usando Arduíno para receber as informações e enviar para outros periféricos.
 Aplicar o sistema no protótipocom sensores capazes de detectar a presença de pessoas
a partir do seu peso e identificar os estudantes através das impressões digitais.
 Verificar o funcionamento do sistema e a leitura de cada sensor noaplicativo.
 Monitorar e controlar o sistema a partir de um smartphone.

2
2. Definições e conceitos

2.1. Biometria

Um sistema biométrico consiste em um conjunto de hardware e software para o


reconhecimento de padrões, que opera através da aquisição automática das informações
biométricas, extraindo um modelo a partir dessas informações e esse modelo será armazenado
e utilizado para as comparações, ou seja, em uma primeira fase, amostras da característica
biométrica são recolhidas, transformadas em um modelo e armazenadas e, em uma segunda
etapa, uma amostra da característica biométrica é recolhida e comparada com as previamente
armazenadas para ser possível chegar na identidade do indivíduo.

2.2.Módulo Bluetooth

OBluetooth é uma tecnologia de comunicação sem fio de curto alcance, baixo custo e
baixo consumo de energia que utiliza a tecnologia de rádio frequência.

Permite que computadores, smartphones, tablets e outros dispositivos conectem se e


troquem dados entre si, podendo também se conectar a mouses, teclados, auscultadores,
impressoras e outros acessórios a partir de ondas de rádio.

A transmissão de dados é feita por meio de rádio frequência (RF), permitindo que um
dispositivo detecte o outro independente de suas posições, sendo necessário apenas que
ambos estejam dentro do limite de proximidade que varia de 1-100metros dependendo da
categoria do dispositivo.

2.3.Arduíno

O Arduíno é uma plataforma open source que possui um hardware e software de fácil
utilização, onde sua programação é feita por entradas e saídas, e componentes externos
chamados de Shields conectados a placa que criam extensões possibilitando diversas
aplicações desde a movimentação de um motor servo utilizado na robótica até os sensores de
temperatura, sua a conexão é feita pela porta USB que permiti interagir com o computador.

A linguagem de programação para o Arduíno é baseada nas linguagens C/C++ e os


programas são chamados de sketch, ou seja, o arquivo que contém as linhas de códigos de
instrução, são compiladas, enviadas e executadas em uma placa Arduíno. Um sketch típico
consiste de duas partes ou rotinas, onde o sketch nada mais é o software que executado no
computador onde é feita a programação, possibilita efectuar o upload da programação para a
placa do Arduíno.

3
3. Estudo de Caso

3.1.Diagrama de blocos

AFigura 3- 1mostra o diagrama funcional de um sistema Antí-Mata Aulas

Figura 3- 1 Diagrama em Bloco do sistema Anti Mata-Aulas

3.2.Funcionamento do diagrama

Smartphone, utilizou-separa se instalar um aplicativo Android que se criou, e tem a


função de fazer o controlo de estudantes, verificar a presença e ausência dos mesmos nas
salas de aulas e notificar os encarregados de educação sobre as ausências dos alunos.Além
de ser um visualizador, o telefone tem também a função de enviar todas essas informações
para o arduíno a fim de serem processados, verificados e retransmitir as respostas obtidas
de volta para o smartphone, de modo a manter a comunicação entre o sistema e o
utilizador.

Módulo Bluetooth, tem a função de facilitar a comunicação entre o telemóvel e o


arduíno, ou seja, recebe os dados provenientes do telefone e envia para o arduíno e vice-
versa. Deste modo ajuda o arduíno a receber os dados que o utilizador envia a partir do
smartphone.

4
O Arduíno é responsável por fazer o processamento das informações proveniente de
todos os blocos. Começando por analisar o sinal provenientes dos botões instalados nas
cadeiras, sensor biométrico e por último os faz a análise dos sinais de Rádio Frequência
proveniente do telefone, sinais estes que são recebidas através do Módulo Bluetooth e
posteriormente encaminhadas para o arduíno paramserem processados. Após o
processamento de todas essas informações, o arduíno transmite as respostas de volta para
o telefone através do modulo Bluetooth a fim de serem visualizados.

O Sensor Biométrico é responsável para reforçar a segurança do sistema. A


necessidade de identificar o indivíduo correctamente para prover segurança em Sistemas
de Controles de Acessos faz com que o uso das características físicas ou comportamentais
individuais (biometria) seja uma das soluções para o nosso projecto, portanto, a digital,
por ter uma individualidade alta e ser uma característica física de fácil leitura e rápido
processamento, faz deste dispositivo uma boa opção, por este motivoutilizou-se o leitor
biométrico com a principal preocupação a verificação se o estudante é quem ele diz ser,
issocom a ajuda da identificação biométrica através da impressão digital. Na pratica, o
instalou-se o leitor biométrico na mesa (secretária) junto com o visualizador LCD.

As chaves ou sensores de fim do curso são os botões se instalou na parte de baixo das
cadeiras, o objectivo deste sensores neste projecto é de informar o arduíno se há algum
indivíduo sentado na cadeira ou não. Quando um estudante senta na cadeirao haste deste
sensor sofre uma pressão que faz com que o arduíno receba níveis lógicos altos indicando
que há alguém sentado e quando o haste não estiver a ser pressionado o arduíno recebe
níveis lógicos baixos indicando que não há ninguém sentado.

O LCD é um visualizador que se usou apenas para cumprir uma pequena tarefa que é
exibir o nome do estudante depois do mesmo passar pelo processo de identificação. Isso
que dizer que após o estar reconhecido pelo sensor biométrico como presente LCD exibe
o nome do estudante.

3.3.Esquema eléctrico

O esquema eléctrico apresentado na Figura 3- 2foi elaborado no software Proteus e


programado no compilador do Arduíno IDE, utilizou-se a linguagem de programação C para a
programação. A seguir é apresentado o circuito eléctrico do sistema Anti-Mata Aulas.

5
Figura 3- 2 Esquema Eléctrico do Sistema Antí Mata-Aulas

3.4.Resultados e Discussões

3.4.1. Sensores de fim de Curso


São componentes electromecânicos que servem para comutar circuitos, fazendo a
abertura e o fechamento do circuito através do seu accionamento mecânico.Possui3 pinos de
contactos, dentre eles o pino 1 que é o COM (Comum), pino 2 é o NO ( Normally Open) e o
pino 3 é o NC( Normally Closed).
Os pinos A4 e A5 foram configurados como pinos de entrada e sou-se as resistências de pull-
down para inicializar com níveis lógicos baixo quando ninguém estiver sentado nas cadeiras,
desta forma o arduíno recebe 0V nas entradas A4 e A5. E quando tiver um estudante sentado
o sensor do fim de curso envia níveis lógicos altos nas portas A4 e A5 do arduíno.

Neste projecto utilizou-se apenas os pinos de contactos NO e NC, então para a


simulação no proteus utilizou-se um botão normal e o modo de ligação é muito simples como
mostra aFigura 3- 3.

6
Figura 3- 3 Sensores de Fim do Curso

3.4.2. Sensor Biométrico

Outro sensor que desempenha um papel muito importante neste projecto é o leitor
biométrico, como já foi explicado anteriormente a sua função neste projecto, agora o foco vai
ser a sua ligação. Como mostrado na Figura 3-1, o seu é bastante simples e de fácil
compreensão. O pino “GND” se conecta ao terra do circuito e o pino “VCC” se conecta à 5V
do arduíno. O pino “TX” se conecta ao pino10 do arduíno e o pino “RX” passa num divisor
de tensão que se montou para proteger o sensor caso não funcione bem com 5V.

Segundo o datasheet deste material, este sensor opera numa tensão de 3,6V à 6,0V e a
sua corrente máxima de operação é de 120mA com capacidade de armazenar 162 credenciaise
com a velocidade de 1 segundo para fazer o processamento de impressão digital.

Figura 3- 4 Leitor Biométrico imulado no Proteus

7
Na figura 3-5 tem os botões de gravações das digitais, a esquerda tem o botão que
permite entrar no modo administrador quando pressionado sem ser solto e a direita tem o
botão que permite fazer a gravação de novas credenciais. Inicialmente os botões encontram-se
em nível lógico baixo.

Figura 3- 5 Botões de Gravação das digitais

3.4.3. Arduíno

O Arduíno é o cérebro do sistema no seu todo, é o responsável por receber todas


informações passadas pelos botões de entrada de dados, módulo bluetooth, sensor biométrico,
e enviar as respostas para os visualizadores LCD e para o smartphone através do módulo
bluetooth. Alimentou-se com uma fonte de 12VCC.

Figura 3- 6 Arduíno simulado no Proteus

8
3.4.4. LCD

Para a exibição de imagem no LCD configurou-se os pinos 2,3,4,5,6,7 do arduíno como


saída de dados.
O VDD é a alimentação negativa então liga ao GND (0V) do circuito, o VSS é a
alimentação positiva e liga ao VCC (5V) do circuito. O pino VEE é responsável pelo brilho
do ecrã, como utilizou-se o brilho máximo do ecrã então ligamos a um resistor de 10KΩ
apenas por precaução e o pino RW do LCD liga ao pino 7 do arduíno. Como o LCD é um
componente que utiliza a tecnologia BCD, usou-se apenas 4 bits que é o suficiente para se ter
toda informação, por isso os pinos de dados D0, D1, e D3 não foram ligados. E os pinos D4,
D5, D6 e D7 do LCD foram ligados aos pinos 2,3,4,5 e 6 do arduíno tal como mostrado na
Figura 3- 7.

Figura 3- 7 LCD simulado no Proteus

3.4.5. Módulo Bluetooth

Para o melhor funcionamento deste módulo montou-se um divisor de tensão como se pode
ver na Figura 3- 8. O pino0 do arduíno fornece 5V para o R2 e o R1 liga ao GND do circuito,
o RXD liga com a saída do divisor de Tensão e o pino TX está ligado com o pino 1 do
arduíno.

Figura 3- 8 Módulo Bluetooth simulado no Proteus

9
4. Conclusão

. Os resultados são satisfatórios observados nos ensaios práticos, realizados com a


primeira versão de protótipo representativo da aludida arquitectura, mostram que a proposta
apresentada neste trabalho é viável e pode ser diligenciado para a aplicação a qual se destina.
Os objectivos previstos para esta fase do trabalho foram alcançados, principalmente no
que diz respeito ao controlo de estudante e o envio de mensagens aos encarregados de
educação.

Como este é a primeira versão deste projecto, algumas metas não foram alcançadas e isso se
deve ao pouco tempo que se teve para se elaborar este projecto e outros factores. Então
recomenda-se que:

 Se use o meio de comunicação sem fio para se conectar as cadeirascom o arduíno.


 Se use mais de um sistema de identificação além do sistema de identificação
biométrica por impressão digital tais como: senhas, cartões RFID, ou outras medidas
de segurança.

4.1.Vantagense Desvantagens

Ao nível académico o nosso trabalho servirá de apoio as instituições no que tange a


redução de número de alunos que por motivos conhecidos e desconhecidos fazem se ausente
nas aulas.

A nível empresarial este projecto pode ser muito valioso porque este projecto não se
limita apenas em ser usados nas escolas, em qualquer organização onde necessita-se fazer a
contagem de pessoas internas presentes e ausentes este sistema pode ser aplicado de modo a
facilitar este processo e poupar o esforço humano.

Por enquanto, este projecto apresenta dois problemas: número limitado de IDs a serem
registados e forma de registar os IDs. O sensor biométrico que se usou neste protótipo suporta
até 162 impressões digitais a serem armazenados e chega a ser uma desvantagem porque
sabe-se que a ideia é a implementação deste projecto nas escolas e as escolas chegam a
exceder estes números. E a outra desvantagem é a forma de se registar os IDs, sabe-se que os
sensores biométricos serão instalados nas carteiras especificamente nas mesas, e as escolas é
composta por centenas de mesas então o trabalho de se registar será um processo muito longo,
lento e cansativo.

Então, estão a ser estudados método de como contornar estes grandes problemas afim
de melhorar o sistema e torná-lo mais eficiente, eficaz e seguro.

10
4.2.Caderno de encargo

Para a execução do presente projecto foi necessário um valor de 43.900, conforme


mostra a tabela a seguir.

Tabela 4-1 Preço das matérias

Quantidade Descrição Valor (em kz)

1 Placa de Circuito impresso 1.000

2 volumes Condutores Jumpers 1.500

1 Módulo Bluetooth 5.000

1 Sensor Biométrico(Fingerprint) 25.700


optico
2 Botões 1.500

1 Arduíno uno compatível 7.200

1 Rolo de condutor de 10m 1.000

Total 43.900

11
5. Referências bibliográficas

1. Siemens.Chaves Fim de Curso. Brazil : Dispoível em: www.siemens.com.br/fimdecurso, 2012.

2. Gabriel Pitágoras e Silva e Walter Bizarria.Sistema de Controle de Acesso com Biometria da


Digital. Brazil : Disponível em: https://www.aedb.br/seget/arquivos/artigos11/44914520.pdf.

3. Thiago Senador de Siqueira.Bluetooth – Características, protocolos e funcionamento. Universidade


Estadual de Campinas-Brazil : Disponível em:
http://www.ic.unicamp.br/~ducatte/mo401/1s2006/T2/057642-T.pdf, 2019.

4. Renan Corio Mazi e Arnaldo Dal Pino Júnior .IDENTIFICAÇÃO BIOMÉTRICA ATRAVÉS DA
IMPRESSÃO DIGITAL USANDO REDES NEURAIS ARTIFICIAI. Instituto Tecnológico da Aeronáutica –
ITA_Brazil : Disponível em: http://www.bibl.ita.br/xvencita/FUND05.pdf, 2009.

5. Adafruit Industries.Adafruit Optical Fingerprint Sensor. s.l. : Disponível


em:https://learn.adafruit.com/adafruit-optical-fingerprint-sensor, 2018.

12
6. Anexos

6.1.Código fonte do Arduíno

// INCLUSÃO DAS uint8_tmodoGravacaoID(


BIBLIOTECAS uint8_t IDgravar);
finger.begin(57600);
#include constintrs = 7, en = 6, d4
<LiquidCrystal.h> = 5, d5 = 4, d6 = 3, d7 = Serial.begin(9600);
2; delay(100);
#include
<Adafruit_Fingerprint.h> LiquidCrystal lcd(rs, en, lcd.begin(16, 2);
d4, d5, d6, d7); //PIN MODES
#include
<SoftwareSerial.h> // INSTANCIANDO pinMode(A4, INPUT);
OBJETOS
#include <PushButton.h> pinMode(A5, INPUT);
SoftwareSerialserial1(A2,
//DEFINIÇÃO DOS A3); //RX,TX pinMode(12, INPUT);
PINOS
SoftwareSerialmySerial(1 pinMode(led1,
#define pinBot 9 0, 11);//RX,TX OUTPUT);
#define led1 8 Adafruit_Fingerprint
#define led2 13 finger =
Adafruit_Fingerprint(&m
// DECLARAÇÃO DAS ySerial); //
VARIÁVEIS E
FUNCOES PushButtonbotao(pinBot) if
; (finger.verifyPassword())
int pcadeira1_act = 0, {
pcadeira2_act = 0; voidcolocar_dedo();
Serial.println("Sensor
int cadeira_ant = 1; int verificar_aluno(int biometrico encontrado!");
Aluno_ID);
int ad, pcadeira1, } else {
pcadeira2, cadeira = 0; //int verificar_aluno1(int
Aluno_ID); Serial.println("Sensor
int a=0, b=0, va=0, vb=0, biometrico não
s1 = 0,s2=0; ///////////////////////////////////// encontrado! Verifique a
////////////////////////// conexão e reinicie o
int cadeira1_ok = 0,
cadeira2_ok = 0; sistema");

int tempo_c1=0; ////////////////////INCIO DA while (true) {


SETUP////////////////////////// delay(1);
int tempo_c2=0,teste2=0; ///
uint8_tnumID = 1; }
void setup() {
int finger1_ID_aux=0; }

int finger2_ID_aux=0; Serial.println("Fim do


// put your setup code Setup!");
bool a11 = false; here, to run once:
}
bool a22 = false; //INICIO DE
COMUNICAÇÕES
boolgravar = false;
13
//FIM DA } else { if(verificar_aluno(finger.f
SETUP////////////////////////// ingerID)==2){va=1;cadei
//////////////// b = 0; ra1_ok =
} 1;finger1_ID_aux=2; }
//INICIO
LOOP//////////////////////////// cadeira = a + b; else
////////////// if(verificar_aluno(finger.f
ingerID)==3){vb=1;cadei
void loop() { ra1_ok =
if (cadeira == 0) {
// put your main code 1;finger1_ID_aux=3; }
here, to run repeatedly: if (cadeira != cadeira_ant)
{
pcadeira2 = }
digitalRead(A5); lcd.clear();
lcd.print("PODE }else
pcadeira1 = {if(s1==0){s1=verificar_
digitalRead(A4); SENTAR-SE");
aluno(finger1_ID_aux);
ad = digitalRead(12); lcd.setCursor(3, 1);
}}
botao.button_loop(); lcd.print("ESTUDANTE
"); }
if (ad == 1) {
if ( botao.pressed() ) { }else {s1=0;
cadeira_ant = cadeira;
gravar = true; if(cadeira1_ok
} ==0){tempo_c1=0;} }
}
} else {cadeira_ant = 1;}
/////////////////////////////////////
if (gravar) { /teste da cadeira 2///////////
if (pcadeira1 == 1) {
modoGravacaoID(0); if (pcadeira2 == 1) {
//Tratamento da cadeira 1
//Tratamento da cadeira 2
gravar = false; tempo_c1=1000;
tempo_c2=1000;
}
if (pcadeira2_act !=
if (pcadeira1_act != pcadeira2) {
getFingerprintIDez(); pcadeira1) {
colocar_dedo();
} colocar_dedo();
pcadeira2_act =
pcadeira1_act = pcadeira2;
pcadeira1;
} else {
if (pcadeira1 == 1) {
} else {
if (cadeira2_ok == 0) {
a = 1;
if (getFingerprintIDez())
} else {
if (cadeira1_ok == 0) { {
a = 0;
if (getFingerprintIDez()) if(verificar_aluno(finger.f
} { ingerID)==2){va=2;cadei
ra2_ok =
if (pcadeira2 == 1) { 1;finger2_ID_aux=2;}
b = 2;
14
else lcd.print("
if(verificar_aluno(finger.f ESTUDANTES ");
ingerID)==3){vb=2;cadei
ra2_ok = lcd.setCursor(3, 1);
}else{
1;finger2_ID_aux=3; } lcd.print(" AUSENTES
if(va> 0){ ");
}
Serial.print("A"); delay(2000);
}else
{if(s2==0){s2=verificar_ Serial.println("B"); cadeira_ant = 1;
aluno(finger2_ID_aux);} lcd.clear();
}
lcd.print("MAURO }
} DOMINGOS");
lcd.setCursor(3, 1);
} else lcd.print("PRESENTE ");
{s2=0;if(cadeira2_ok
==0){tempo_c2=0;} } delay(2000);
cadeira_ant = 1;
}
}
}
///////////////////////////// fim
else //////////// if( tempo_c1>0){
if(vb> 0){ tempo_c1--;}else {
Serial.print("B"); pcadeira1_act = 0;
if (Serial.available()) {
Serial.println("A"); cadeira1_ok = 0;
charreceber =
lcd.clear(); if(va==1){va=0;}
Serial.read();
lcd.print("MARCOS if(vb==1){vb=0;}
if (receber == 'x') {
KIACO");
}
lcd.setCursor(3, 1);
if ((va> 0)&&(vb> 0)) { if( tempo_c2>0){
lcd.print("PRESENTE "); tempo_c2--;}else {
delay(2000); pcadeira2_act = 0;
Serial.print("B");
cadeira_ant = 1; cadeira2_ok = 0;
Serial.println("B");
if(va==2){va=0;}
lcd.clear();
} if(vb==2){vb=0;}
lcd.print("
} }
ESTUDANTES ");
lcd.setCursor(3, 1); delay(10);
if((va+vb)==0){ }
lcd.print(" PRESENTES
"); Serial.print("A"); //FIM DA
delay(2000); Serial.println("A"); LOOP////////////////////////////
//////////////
cadeira_ant = 1; lcd.clear();

15
//FUNÇOES } Serial.println("Erro de
leitura");
break;
default:
void colocar_dedo() {
Serial.println("Erro
lcd.clear(); uint8_tmodoGravacaoID( desconhecido");
uint8_t IDgravar) {
lcd.print("COLOCA O break;
SEU DEDO");
}
lcd.setCursor(3, 1); int p = -1;
}
lcd.print("PORFAVOR") Serial.print("Esperando
; uma leitura válida para
gravar #");
finger.fingerID = 0; Serial.println(IDgravar); // OK successo!
} delay(2000);
int verificar_aluno(int while (p != p = finger.image2Tz(1);
Aluno_ID) { FINGERPRINT_OK) { switch (p) {
p = finger.getImage(); case
switch (Aluno_ID) { switch (p) { FINGERPRINT_OK:
case 2: { case Serial.println("Leitura
FINGERPRINT_OK: convertida");
lcd.clear();
Serial.println("Leituracon break;
lcd.print("MARCOS
KIACO"); cluída"); case
break; FINGERPRINT_IMAGE
return(Aluno_ID); MESS:
}; break; case
FINGERPRINT_NOFIN Serial.println("Leiturasuj
case 3: { GER: a");

lcd.clear(); Serial.println("."); return p;

lcd.print("MAURO delay(200); case


DOMINGOS"); FINGERPRINT_PACKE
break; TRECIEVEERR:
return(Aluno_ID);
case Serial.println("Erro de
FINGERPRINT_PACKE comunicação");
}; break; TRECIEVEERR:
return p;
default:{return (0);} Serial.println("Erro
comunicação"); case
FINGERPRINT_FEATU
break; REFAIL:
case Serial.println("Não foi
FINGERPRINT_IMAGE possível encontrar
FAIL: propriedade da digital");
}

16
return p; break; case
FINGERPRINT_IMAGE
case case MESS:
FINGERPRINT_INVAL FINGERPRINT_NOFIN
IDIMAGE: GER: Serial.println("Leitura
suja");
Serial.println("Não foi Serial.print(".");
possível encontrar return p;
propriedade da digital"); delay(200);
case
return p; break; FINGERPRINT_PACKE
case TRECIEVEERR:
default:
FINGERPRINT_PACKE Serial.println("Erro de
Serial.println("Erro TRECIEVEERR: comunicação");
desconhecido");
Serial.println("Erro de return p;
return p; comunicação");
case
} break; FINGERPRINT_FEATU
case REFAIL:
FINGERPRINT_IMAGE Serial.println("Não foi
Serial.println("Remova o FAIL:
dedo"); possível encontrar as
Serial.println("Erro de propriedades da digital");
delay(2000); Leitura"); return p;
p = 0; break; case
while (p != default: FINGERPRINT_INVAL
FINGERPRINT_NOFIN IDIMAGE:
GER) { Serial.println("Erro
desconhecido"); Serial.println("Não foi
p = finger.getImage(); possível encontrar as
break; propriedades da digital");
}
} return p;
Serial.print("ID ");
Serial.println(IDgravar); } default:
p = -1; Serial.println("Erro
Serial.println("Coloque o // OK successo! desconhecido");
Mesmo dedo return p;
novamente");
p = finger.image2Tz(2); }
while (p !=
FINGERPRINT_OK) { switch (p) {
p = finger.getImage(); case // OK convertido!

switch (p) { FINGERPRINT_OK: Serial.print("Criando


Serial.println("Leitura modelo para #");
case Serial.println(IDgravar);
FINGERPRINT_OK: convertida");

Serial.println("Leitura break;
concluída"); p = finger.createModel();

17
if (p == return p; p=
FINGERPRINT_OK) { finger.fingerFastSearch();
} else if (p ==
Serial.println("As digitais FINGERPRINT_BADL if (p !=
batem!"); OCATION) { FINGERPRINT_OK)
return -1;
} else if (p == Serial.println("Não foi
FINGERPRINT_PACKE possível gravar neste
TRECIEVEERR) { local da memória");
//Encontrou uma digital!
Serial.println("Erro de return p;
comunicação"); if (finger.fingerID == 0)
} else if (p == {
return p; FINGERPRINT_FLASH
ERR) { Serial.print("Modo
} else if (p == Administrador!");
FINGERPRINT_ENROL Serial.println("Erro
LMISMATCH) { durante escrita na
memória flash"); numID++;
Serial.println("As digitais
não batem"); return p; modoGravacaoID(numID
return p; } else { );

} else { Serial.println("Erro return 0;


desconhecido");
Serial.println("Erro
desconhecido"); return p; }
return p; } if (finger.fingerID == 2 )
} } {

// FUNCOES Serial.print(" com


confiança de ");
Serial.print("ID "); intgetFingerprintIDez() { Serial.println(finger.confi
Serial.println(IDgravar); dence);
p= returnfinger.fingerID ;
finger.storeModel(IDgrav uint8_t p =
ar); finger.getImage(); }

if (p == if (p != if (finger.fingerID == 3 )
FINGERPRINT_OK) { FINGERPRINT_OK) {
return -1;
Serial.println("Armazena Serial.print(" com
do!"); confiança de ");
Serial.println(finger.confi
} else if (p == p = finger.image2Tz(); dence);
FINGERPRINT_PACKE if (p !=
TRECIEVEERR) { return finger.fingerID;
FINGERPRINT_OK)
Serial.println("Erro de return -1; }
comunicação");

18
6.2.Código do Aplicativo

Figura 6- 1 Código em bloco do aplicativo

Figura 6- 2 Código em bloco do aplicativo

19

Você também pode gostar