Você está na página 1de 36

REPÚBLICA DE ANGOLA

MINISTÉRIO DAS TELECOMUNICAÇÕES, TECNOLOGIA DE INFORMAÇÃO E


COMUNICAÇÃO SOCIAL

MINISTÉRIO DA EDUCAÇÃO

INSTITUTO DE TELECOMUNICAÇÕES

[Álvaro Sóstenes Bernardo Muondo, Nº 12212]

[Bengui Simão Félix Bernardo, Nº 12169]

RELATORIO DO PROJECTO DE APTIDÃO PROFISSIONAL (PAP)

[Sistema de Higienização das Mãos com Controlo de acesso]

Luanda

1
MARÇO 2021

2
[Álvaro Sóstenes Bernardo Muondo, Nº 12212]

[Bengui Simão Félix Bernardo, Nº 12169]

[Sistema de Higienização das Mãos com Controlo de acesso]

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: Duano Silva

___________________________

Luanda

MARÇO 2021

3
FOLHA DE APROVAÇÃO

[Álvaro Sóstenes Bernardo Muondo, Nº 12212]

[Bengui Simão Félix Bernardo, Nº 12169]

Projecto apresentado a Coordenação do Curso de


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

Aprovado em __ /__/ 2019

Presidente do Júri:

__________________________________________________________

1ºPresidente. Vogal:

__________________________________________________________

2ºPresidente. Vogal:

__________________________________________________________

4
Agradecimentos

A nossa Família que tem dado todo o apoio


incondicional, a todos os professores que directa
ou indirectamente nos instruíram para que a
realização do projecto fosse possível, ao nosso
Orientador e sobre tudo a Deus, que até aqui nos
ajudou, que nos deu a vida e a força necessária
para completar este feito, o nosso profundo
obrigado.

5
Resumo

O presente projecto é apresentado como um justificativo plausível dos progressos


tecnológicos registados no campo das tecnologias. É digno de nota que alguns avanços deste
campo impulsionam e/ou facilitam a vivencia moderna dos nossos dias, visando
consequentemente, o bem-estar dos seus usuários. Todavia, o projecto apresentado é fruto do
conhecimento e aptidões por nós adquiridos, perspetivando um resultado satisfatório a nível
geral.

O mesmo projecto possui um funcionamento simples que estará detalhado no presente


relatório que, por sua vez salientará particularmente cada componente explicando a sua
funcionalidade e modo de aplicação no circuito. Para o desenvolvimento do mesmo,
abordados simplesmente o aspecto demonstrativos por meio de um protótipo, cujo principal
objectivo foi desenvolver um sistema inteligente de acesso e higienização de mãos, usaremos
um microcontrolador para conferir o acesso de pessoas numa instituição que estará ligado a
sensores que informam os passos e requisitos necessários para que os utentes estejam
habilitados e obter acesso, bem como auxiliar no processo de higienização.

6
Lista de Abreviaturas e Siglas

ITEL Instituto de Telecomunicações

IR InfraRed

LCD Liquid Crystal Display

LED Light Emitting Diode

RFID Radio-Frequency IDentification

USB Universal Serial Bus

7
Índice de Figuras e tabelas

Figura 1 - HC-SR04 Sensor De Distância Ultrassónico ......................................................................... 12


Figura 2 - Sensor de Obstáculo Infravermelho IR................................................................................ 13
Figura 3 - Sensor de Temperatura GY-906 .......................................................................................... 14
Figura 4 - Módulo RFID MFRC-522 ...................................................................................................... 14
Figura 5 - Arduíno ............................................................................................................................... 15
Figura 6 - Diagrama de bloco de um sistema de Higienização das mãos com controlo de acesso .... 16
Figura 7 - Circuito electrónico do sistema de Higienização das mãos com controlo de acesso ......... 18

8
Sumário
1. Introdução ................................................................................................................................... 10
1.1. Problemática ........................................................................................................................... 10
1.2. Justificativa .............................................................................................................................. 10
1.3. Metodologia ............................................................................................................................ 10
1.4. Objectivos................................................................................................................................ 11
1.4.1. Objectivo geral ................................................................................................................ 11
1.4.2. Objectivos específicos ..................................................................................................... 11
2. Definições e conceitos................................................................................................................. 12
2.1. Sensores .............................................................................................................................. 12
2.1.1. Sensor de Distância Ultrassónico HC-SR04 ................................................................ 12
2.1.2. Sensor de Obstáculo Infravermelho IR ...................................................................... 13
2.1.3 Sensor de Temperatura GY-906 ........................................................................................ 13
2.2. Módulo RFID MFRC522................................................................................................... 14
2.3. Arduíno ................................................................................................................................ 15
2.3.1. Linguagem de programação para Arduíno. ............................................................... 15
3. Estudo de Caso ............................................................................................................................ 16
3.1. Diagrama de bloco .................................................................................................................. 16
3.2. Resultados e Discussões .......................................................................................................... 17
4. Conclusão .................................................................................................................................... 20
5. Referências bibliográficas ........................................................................................................... 21
5.1. Código fonte do Arduíno ..................................................................................................... 22

9
1. Introdução

O sistema inteligente de acesso e higienização das mãos compreende o desenvolvimento e


implementação de um sistema que controla o acesso e auxilia na desinfecção das mãos nas
entradas das instituições. O seu principal diferencial é fazer a ligação um sistema de controlo
de acesso com base de dados e um sistema de doseamento de álcool, que é capaz de fazer a
medição da temperatura corporal.

1.1.Problemática

Actualmente é indispensável nos prevenirmos, obrigando-nos a estarmos acompanhados de


desinfetante para mãos e/ou superfícies, mas infelizmente nem sempre é possível repor o
mesmo logo que termina, de adquiri-lo, e algumas vezes, devido à imperfeição humana
esquecemos de carrega-lo connosco. Também é necessário garantir que todos ou a maioria
dos que estão presentes numa instituição possuem uma temperatura estável, apesar de que,
apenas estes factores não garantirem que os mesmos não estão infectados pelo vírus da Covid-
19.

1.2.Justificativa

Devido a necessidade urgente de medidas preventivas imposta pelo surto da COVID-19,


torna-se necessário desenvolver meios tecnológicos para tornar mais fácil e segura a vida do
homem dentro de espaços fechados. Com o Sistema inteligente de acesso e higienização das
mãos, pretende-se mostrar uma maneira eficaz de garantir que os requisitos básicos de
prevenção foram cumpridos, aumentando subtilmente a segurança dentro desses espaços.

1.3. Metodologia

Na primeira parte, começamos por fazer uma visita de campo em algumas instituições para
averiguar como é que as medidas de segurança são implementadas.

Na segunda parte, abordamos conceitos concernentes ao sistema de acesso, programação


orientada a objectos e alguns conceitos de base de dados para armazenamento de informações,
aplicações para o projecto como o proposto por esse trabalho.

10
Na terceira parte, efetuamos a aquisição de todos os materiais necessários como o Arduino e
sensores, verificando o seu funcionamento limitações, capacidade de interação entre todos os
equipamentos e definindo o melhor método para tal.

Por último são feitas algumas análises a respeito da operação do sistema, bem como a
discussão de erros no projeto e alterações futuras.

1.4.Objectivos

1.4.1. Objectivo geral

Construir um sistema que controla o acesso de pessoas numa instituição permitindo a


passagem a indivíduos identificados e auxiliando estes numa etapa de higienização reduzindo
o risco de contágio em uma instituição.

1.4.2. Objectivos específicos

▪ Medir a temperatura corporal;


▪ Criar uma base de dados;
▪ Desenvolver um aplicativo que faça uma ligação entre hardware e software que atribui
e apresenta dados dos Cartões RFID;
▪ Controlar o acesso de pessoas numa instituição (ITEL).

11
2. Definições e conceitos

Nas aplicações de controlo de acesso é interessante agregar o uso da tecnologia RFID, visto
que é necessário comprovarmos a identidade do individuo em causa para que seja ou não
possível atribuir acesso ao mesmo e essa tecnologia tem a capacidade de armazenar
informações.

2.1.Sensores

Sensores são dispositivos que servem para informar um circuito electrónico a respeito de um
evento que ocorra externamente, sobre o qual ele deve actuar, ou partir do qual ele deve
comandar uma determinada acção. Esses dispositivos são sensíveis a alguma forma de energia
do ambiente que pode ser luminosa, térmica e cinética.

2.1.1. Sensor de Distância Ultrassónico HC-SR04

O Sensor de Distância Ultrassónico HC-SR04 é um módulo que possui um circuito pronto


com emissor e receptor acoplados e 4 pinos (VCC, TRIGGER, ECHO, GND) capaz de medir
distâncias de 2cm a 4m com uma precisão de 3mm. A medição começa quando o módulo é
alimentado e o pino Trigger está em nível alto por mais de 10us, o sensor emite uma onda
sonora que, ao encontrar um obstáculo, rebate de volta em direção ao módulo. Durante o
tempo de emissão e recessão do sinal, o pino ECHO fica em nível alto. Logo, o cálculo da
distância é feito de acordo com o tempo em que o ECHO permaneceu em nível alto após o
Trigger ter sido colocado em nível alto.

Figura 1 - HC-SR04 Sensor De Distância Ultrassónico

12
2.1.2. Sensor de Obstáculo Infravermelho IR

O Sensor de Obstáculo Infravermelho IR é um circuito composto por um emissor e um


receptor IR, mais o CI comparador LM393. Trabalha com um sistema de reflexão de luz
Infravermelha. Possui um Led que irradia uma Luz IR (emissor) continuamente num alcance
de 2 a 30cm e quando algum obstáculo é colocado de frente ao sensor, a luz é refletida para o
foto-díodo (receptor). Quando isso acontece, o pino de saída OUT é colocado em nível baixo
(0), indicando que o mesmo (obstáculo) foi detectado.

Figura 2 - Sensor de Obstáculo Infravermelho IR

2.1.3 Sensor de Temperatura GY-906

O Sensor GY-906 é um módulo sensor de temperatura por infravermelho, portanto permite


medir a temperatura ambiente, corporal e de objectos sem contacto físico. Internamente este
sensor possui um conversor AD de 17 bits e um processador de sinal DSP que contribui para
a sua alta precisão e resolução. Ele vem calibrado de fábrica para trabalhar numa ampla faixa
de temperaturas onde, a temperatura ambiente pode variar dos -40 a 125 ºC e a temperatura
corporal e de objectos dos -70 a 382,2 ºC.
O sensor tem embutido um filtro óptico que elimina a luz visível e próxima do infravermelho
para minimizar seu impacto na leitura.

13
O módulo tem 3 modos básicos de operação. Pode comunicar a temperatura ou ter ajustes
configurados através do I2C. Pode comunicar a temperatura continuamente através do PWM
em que o ciclo de trabalho do sinal representa a temperatura. Pode atuar como uma chave
térmica que é alternada à uma temperatura pré-programada como em um termostato.

Figura 3 - Sensor de Temperatura GY-906

2.2. Módulo RFID MFRC522

O Módulo RFID MFRC522 contem o CI de mesmo nome (MFRC522) em sua placa, para
estabelecer comunicação numa frequência de 13,56 MHz, permitindo a leitura e escrita sem
contato em cartões que seguem o padrão MIFARE.

A comunicação entre esse módulo e o microcontrolador é feita através do protocolo SPI


(Serial Peripheral Interface), enviando bits de dados através de fios fisicamente conectados
entre esses dispositivos. Os bits são transferidos de um dispositivo para outro através de
mudanças rápidas (ou pulsos) na voltagem.

Figura 4 - Módulo RFID MFRC-522

14
2.3. Arduíno

O Arduíno é uma plataforma open source; seu projeto foi criado na Itália em 2005, 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 (MARGOLIS, 2011).

Figura 5 - Arduíno

2.3.1. Linguagem de programação para Arduíno.

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 (MCROBERTS, 2011).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 efetuar o upload da programação para
a placa do Arduíno (EMBARCADOS, 2016).

15
3. Estudo de Caso

3.1.Diagrama de bloco

A imagem abaixo mostra um diagrama funcional de um sistema de higienização de mãos com


controlo de acesso via RFID.

Figura 6 - Diagrama de bloco de um sistema de Higienização das mãos com controlo de acesso

O diagrama de bloco esta dividido em partes interligadas, enviando e recebendo informações


de um bloco, no caso o Arduino, que é responsável por controlar e processar todas as
informações.

O Arduino começa por processar os sinais provenientes dos sensores e os módulos. Começa
processando o sinal do sensor de distância Ultrassónico para verificar a passagem ou não de
pessoas na entrada, caso sim aciona um alerta e apresenta num LCD uma informação para que
a pessoa meça a sua temperatura.

O bloco de processamento aguarda uma informação do primeiro sensor de obstáculos IR que


aciona o sensor de temperatura que mede a mesma quando detecta uma obstrução na emissão
da Luz Infravermelha.

16
Após a leitura da temperatura, caso a mesma seja inferior a 37,5ºC habilita o módulo leitor
RFID e apresenta a informação no LCD para fazer a leitura do cartão com a mesma tecnologia.
Caso não aciona um alerta, desabilita o Leitor RFID e no LCD apresenta a informação de que
a passagem foi negada.

Consequentemente O Arduino verifica os dados do cartão ou Tag RFID passados pelo leitor,
utilizando o ID do mesmo como referência vinculativa para acessar a base de dados utilizando
uma Interface que apresenta a informação do Cartão lido.

Caso o cartão esteja registado na base de dados e uma vez que o leitor de cartões só é habilitado
quando a temperatura lida é aceitável, o Arduino envia uma informação para o primeiro Servo
motor usado como cancela e libera a passagem.

Posteriormente o Bloco de processamento aguarda a informação do segundo sensor de


obstáculo IR e após a recepção do mesmo envia um sinal a ponte H para activar o motor que
serve como uma bomba para bombear o líquido que será usado para higienizar as mãos. Porém
o segundo IR só envia o sinal caso todos requisitos na entrada foram cumpridos previamente
indicando que a passagem foi permitida pelo sistema e caso os requisitos não estejam
satisfeitos aciona um alarme e informa no LCD que é necessário cumprir com tais obrigações
na entrada (ler a temperatura, passar o cartão RFID do aluno registado.

Finalmente o Arduino vai aguardar a informação do Segundo Leitor RFID que vai verificar
se a pessoa fez a higienização, ou seja, se cumpriu todos os requisitos na entrada e activou a
bomba. Caso sim o Arduino envia a informação para o segundo Servo motor e disponibiliza
a passagem. Caso não, antes verifica a causa do impedimento. Se a pessoa não activou a
bomba e tentou passar sem higienizar as mãos apresenta no LCD a informação que antes deve
higienizar as mãos. Caso a pessoa não cumpriu os requisitos da entrada e tenta passar o cartão
pelo segundo leitor para obter acesso informa pelo LCD que a pessoa deve cumprir com os
requisitos da entrada primeiro.

3.2.Resultados e Discussões

O esquema eléctrico do sistema foi elaborado no software Fritzing e programado no


compilador IDE do Arduíno usando a linguagem C característica do Arduino. Posteriormente
é apresentado o circuito eléctrico do sistema de higienização das mãos com controlo de acesso.
Depois de montarmos o circuito chegamos as seguintes discussões:

17
Figura 7 - Circuito electrónico do sistema de Higienização das mãos com controlo de acesso

Começamos por usar o sensor de distância Ultrassónico na entrada devido a sua


precisão de leitura, já que a mesma é feita com base no cálculo de emissão/recepção do som
e tendo um alcance maior em relação ao sensor de obstáculo IR que também depende do factor
luminosidade do objecto para detectar a presença do mesmo.

Usamos também o Sensor de temperatura GY-906 por ser um módulo leitor preciso por ter
um conversor de 17 bits e um processador de sinal e não precisar de contacto para fazer a
leitura da temperatura visto que utiliza a luz Infravermelha no processo possibilitando a leitura
dentro de uma faixa de -70 a 382,2 ºC transformando essa informação Analógica em Digital
para ser processada pelo Arduino.

Durante os testes tivemos sucesso nos testes com o GY-906 medindo a temperatura corporal
utilizamos também um segundo termómetro digital para comprovar a veracidade da leitura, e
quando a leitura é superior a recomendada o sistema impede a passagem.

O Sensor de obstáculos tem uma eficácia reduzida por depender em parte da luminosidade do
ambiente. Visto que o objecto ou parte corporal que deve obstruir a luz infravermelha é a mão

18
e não se notou nenhuma dificuldade nesse quesito e cumprir com a necessidade continuamos
com o sensor nessa etapa.

Utilizamos também a tecnologia RFID para controlar o acesso na instituição e se mostrou de


confiança visto que os mesmos cartões e Tags podem guardar dados (função que não
chegamos a usar no presente sistema) e utilizando o ID padrão de cada Cartão conseguimos
vincular a algumas informações que são guardadas numa base de dados.

19
4. Conclusão

Os resultados obtidos após a montagem e os testes da primeira versão do protótipo são


satisfatórios, mostrando a viabilidade e as aplicações do sistema.

Os objectivos traçados foram cumpridos e particularmente o objectivo da medição da


temperatura e da higienização tiveram resultados melhores do que os por nós esperados.

Tivemos também êxito na parte de controlo de acesso aos alunos na instituição com o uso da
tecnologia RFID que pode na prática reduzir o custo da emissão dos cartões estudantis.

20
5. Referências bibliográficas
http://blog.moduloeletronica.com.br/cartoes-rfid-e-o-modulo-mfrc522/

https://blogmasterwalkershop.com.br/arduino/como-usar-com-arduino-kit-rfid-mfrc522

https://github.com/miguelbalboa/rfid/tree/master/doc/fritzing

https://multilogica-shop.com/modulo-sensor-de-temperatura-infravermelho-gy-906-mlx90614

https://www.casadarobotica.com/sensor-de-obstaculo-reflexivo-infravermelho-ir-arduino-pic

https://www.electrofun.pt/sensores-arduino/sensor-distancia-hc-sr04

http://suadica.com/dica.php?d=446&t=criando-caracteres-para-lcd

https://blog.eletrogate.com/guia-completo-do-display-lcd-arduino/

https://www.filipeflop.com/blog/controlando-um-lcd-16x2-com-arduino/

file:///C:/Program%20Files%20(x86)/Arduino/reference/www.arduino.cc/en/Serial/Write.html

file:///C:/Program%20Files%20(x86)/Arduino/reference/www.arduino.cc/en/Reference/SerialEvent.
html

21
Anexos

5.1.Código fonte do Arduíno

#include <Servo.h>
#include <SPI.h>
#include <MFRC522.h>
#define led 13
#define SERVO 14
#define SERVO1 15
#define Bomba 17

MFRC522::MIFARE_Key key;
byte nuidPICC[4];
constexpr uint8_t RST_PIN = 5;
constexpr uint8_t SS_1_PIN = 53;
constexpr uint8_t SS_2_PIN = 49 ;
constexpr uint8_t NR_OF_READERS = 2;
byte ssPins[] = {SS_1_PIN, SS_2_PIN};

//=========================== Variaveis globais


===========================//
int i= 0;
int n= 0;
int m= 0;
int efeito = 0;
int estado = 0;
int t=0;
int ir, ni, pe =0;
bool limp;
int z,x=0;

22
MFRC522 mfrc522[NR_OF_READERS];

int readsuccess;
byte readcard[4];
char str[32] = "";
String StrUID;
int value;

//=========== Bibliotecas usadas ===========//

#include <LiquidCrystal.h> // biblioteca para o LCD


#include <Servo.h> // Biblioteca para o servo motor
#include <Wire.h> //Biblioteca para I2C
#include <SparkFunMLX90614.h> //Biblioteca SparkFunMLX90614

IRTherm therm; //Cria um objeto para o sensor de temperatura infravermelho


//======= Definições de Portas ======//
#define Buzzer 11
#define Led 12
//#define SERVO 6
const int PinoIR = 22;
const int pinIRI = 16;

//======== Configuração dos pinos do Ultrasonico ========//


const int trigPin = 9;
const int echoPin = 10;

//======== Configuração do Servo ========//


Servo s;
Servo s1;
int pos;

23
//const int pinoSensor = 9;

//======== Configuração dos pinos do LCD ========//


const int rs = 2, en = 3, d4 = 4, d5 = 6, d6 = 7, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

//========== Criação de caracteres especias para o LCD ========//

byte c[8]={ //Criação do caracter "Ç"


B01110, //Linha 1
B10001, //Linha 2
B10000, //Linha 3
B10000, //Linha 4
B10001, //Linha 5
B01110, //Linha 6
B00100, //Linha 7
B11000, //Linha 8
};

byte a[8]={ //Criação do caracter "ã"


B00101, //Linha 1
B01010, //Linha 2
B00000, //Linha 8
B01110, //Linha 3
B00001, //Linha 4
B01111, //Linha 5
B10001, //Linha 6
B01111, //Linha 7

};

void setup() {

24
lcd.createChar(0,c);
lcd.createChar(1,a);
lcd.begin(16, 2); // inicialização do LCD com 16 colunas e 2 linhas
Serial.begin(9600); // inicialização da
therm.begin(); //Inicializa sensor de temperatura infravermelho
therm.setUnit(TEMP_C); //Seleciona temperatura em Celsius

SPI.begin(); // Init SPI bus

for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {


mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card
}
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}

pinMode(Led,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(Bomba, OUTPUT);
pinMode(trigPin, OUTPUT); //
pinMode(echoPin, INPUT); //
pinMode(PinoIR, INPUT);
pinMode(pinIRI, INPUT);

//===== Servo
s.attach(SERVO);
s1.attach(SERVO1);
s.write(220);
s1.write(220);
pinMode(led, OUTPUT);
lcd.print("Bem Vindo ao ITEL");
digitalWrite(Led,0); digitalWrite(Buzzer,0); delay(100);

25
digitalWrite(Led,1); digitalWrite(Buzzer,1); delay(250);
digitalWrite(Led,0); digitalWrite(Buzzer,0); delay(100);
digitalWrite(Led,1); digitalWrite(Buzzer,1); delay(250);
digitalWrite(Led,0); digitalWrite(Buzzer,0); delay(100);
digitalWrite(Led,1); digitalWrite(Buzzer,1); delay(750);
digitalWrite(Led,0); digitalWrite(Buzzer,0); delay(100);
efeito=1;
t=0;
}

void loop() {
bool estadoIRI = digitalRead(pinIRI);
estado=0;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duracao = pulseIn(echoPin, HIGH);
int distancia = duracao / 58;
// Serial.print("Distancia em CM: ");
//Serial.println(distancia);
// delay(150);

if(efeito == 1){
lcd.scrollDisplayLeft();
delay(150);
}

if(efeito == 2){
lcd.scrollDisplayLeft();
delay(150);
}

26
if (therm.read()){
//.print("Objecto: " + String(therm.object(), 2));
//.write('°'); // Símbolo Graus
// .println("C");
}

if(distancia <= 10){


estado = 1;
}
if (estado== 1){
digitalWrite(Led,0);
digitalWrite(Buzzer,0);
delay(100);
digitalWrite(Led,1);
digitalWrite(Buzzer,1);
delay(250);
digitalWrite(Led,0);
digitalWrite(Buzzer,0);
delay(100);
digitalWrite(Led,1);
digitalWrite(Buzzer,1);
delay(250);
digitalWrite(Led,0);
digitalWrite(Buzzer,0);
delay(100);
digitalWrite(Led,1);
digitalWrite(Buzzer,1);
delay(750);
digitalWrite(Led,0);
digitalWrite(Buzzer,0);
delay(100);

27
efeito = 1;
lcd.clear();
lcd.print("Por Favor Me");
lcd.write(byte(0)); //caracter ç
lcd.print("a a sua Temperatura");
delay(500);
}

if (!estadoIRI){
if (x>0){
//Serial.println("1");
delay(500);
ni=i;
ir=ir-2;
digitalWrite(Bomba,HIGH);
delay(3000);
digitalWrite(Bomba,LOW);
delay(2000);
if(ir<=0){
ir=0;
}
}
if (x<=0){
lcd.clear();
lcd.print("Verifique os dados na entrada");
efeito=1;
}

if(digitalRead(PinoIR) == 0){
delay(1000);
estado=0;
efeito = 0;

28
lcd.clear(); lcd.print("Medindo. "); delay(700);
lcd.clear(); lcd.print("Medindo . "); delay(700);
lcd.clear(); lcd.print("Medindo ."); delay(850);
estado = 2;
if(estado == 2) {
efeito = 0;
lcd.clear();
lcd.print("Temp: " + String(therm.object(), 2));
lcd.print("oC");
delay(50);
lcd.clear();
lcd.print("Temp: " + String(therm.object(), 2));
lcd.print("oC");
delay(50);
lcd.clear();
lcd.print("Temp: " + String(therm.object(), 2));
lcd.print("oC");
delay(1000);
if ((therm.object(), 2) < 37){
t=1;
z=z+1;}

if ((therm.object()) >= 38){


t=2; }
estado = 0;
}

if(estado==4){
lcd.clear();
lcd.print("Bem Vindo ao ITEL");
efeito=1;
}

if(t==1){

29
digitalWrite(Led,1);
digitalWrite(Buzzer,1);
delay(350); digitalWrite(Led,0);
digitalWrite(Buzzer,0);
delay(150);
digitalWrite(Led,1); //
digitalWrite(Buzzer,1);
delay(350); digitalWrite(Led,0);
digitalWrite(Buzzer,0);
delay(150);
lcd.clear();
lcd.print("Passe o Seu Cart");
lcd.write(byte(1)); // Caracter ã
lcd.print("o Pelo Leitor");
efeito = 1;
estado=0;
}

if(t==2){
digitalWrite(Led,1);
digitalWrite(Buzzer,1);
delay(350); digitalWrite(Led,0);
digitalWrite(Buzzer,0);
delay(150);
digitalWrite(Led,1);
digitalWrite(Buzzer,1);
delay(350); digitalWrite(Led,0);
digitalWrite(Buzzer,0);
lcd.clear();
lcd.print("Passagem n");
lcd.write(byte(1)); // Caracter ã
lcd.print("o ");
lcd.setCursor(1,1);
lcd.print("permitida");

30
efeito = 1;
delay(3000);
lcd.clear();
lcd.print("Bem Vindo ao ITEL");
efeito=2;
estado=4;
}
}

//=============== RFID

for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {


// Look for new cards

if (mfrc522[reader].PICC_IsNewCardPresent() &&
mfrc522[reader].PICC_ReadCardSerial()) {

//======================== Quando o Segundo leitor RFID detecta o cartão


=====================================//

if(reader==1){
pe=i-ir;
if(pe>0){
limp=true;
}
if(pe<=0){
limp=false;
}
if(limp==false){
lcd.clear();
lcd.print("Higienize as m");
lcd.write(byte(1)); // Caracter ã
lcd.print("os");
efeito=1;

31
}

if (x<=0){
lcd.clear();
lcd.print("Verifique os dados na entrada");
Serial.println("Verifique os dados na entrada");
efeito=1;
}

if(limp==true){
i=i-1;
x=x-1;
if(x<0){
x=0;
}
ni=i;
lcd.clear();
lcd.print("Bem Vindo ao ITEL");
efeito=2;
s1.write(90);
delay(3000);
s1.write(220);
delay(10);
Serial.println("Bem vindo");
estado=4;
}
delay(50);
}

if(i>3){
efeito=2;
lcd.clear();
lcd.print("Muitas pessoas");
}

32
if(i<0){
efeito=2;
lcd.clear();
lcd.print("Por favor Higienize as m");
lcd.write(byte(1)); // Caracter ã
lcd.print("os");
i=0;
}

MFRC522::PICC_Type piccType =
mfrc522[reader].PICC_GetType(mfrc522[reader].uid.sak);

// Check is the PICC of Classic MIFARE type


if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println(F("Your tag is not of type MIFARE Classic."));
return;
}

if (mfrc522[reader].uid.uidByte[0] != nuidPICC[0] ||
mfrc522[reader].uid.uidByte[1] != nuidPICC[1] ||
mfrc522[reader].uid.uidByte[2] != nuidPICC[2] ||
mfrc522[reader].uid.uidByte[3] != nuidPICC[3] ) {
//Serial.println(F("Novo Cartão detectado"));
n=1;

//======================== Quando o primeiro leitor detecta o cartão


=====================================//

if(reader==0){
i=i+n;
}

33
// Store NUID into nuidPICC array
for (byte i = 0; i < 4; i++) {
if(z>0){
nuidPICC[i] = mfrc522[reader].uid.uidByte[i];
n=1;
}
}

printHex(mfrc522[reader].uid.uidByte, mfrc522[reader].uid.size);
Serial.println();

}
else {

Serial.println(F("Cartão já lido"));
n=0;
}

// Halt PICC
mfrc522[reader].PICC_HaltA();

// Stop encryption on PCD


mfrc522[reader].PCD_StopCrypto1();
}//if (mfrc522[reader].PICC_IsNewC
// Halt PICC
mfrc522[reader].PICC_HaltA();
// Stop encryption on PCD
mfrc522[reader].PCD_StopCrypto1();
} //for(uint8_t reader RFID º===========================

if(Serial.available()>0)
{
delay(5);
while(Serial.available()>0)

34
{
value=Serial.read();
if(value=='1'){
if(z>0){
ni=i;
pe=i;
ir=ir+2;
x=x+1;
delay(50);
lcd.clear();
lcd.print("Higienize as m");
lcd.write(byte(1)); // Caracter ã
lcd.print("os");
efeito=1;
digitalWrite(led,1);
s.write(90);
delay(3000);
s.write(220);
delay(10);
digitalWrite(led,0);
estado=0;
estado=4;
z=z-1;
if(z<0){
z=0;
}
delay(1000);
}
if (z<=0){
lcd.clear();
lcd.print("Necessita medir a temperatura antes");
efeito = 1;
Serial.println("Necessita medir a temperatura antes");
}

35
}

if(value=='3'){
Serial.print("i="); Serial.print(i);
Serial.print(" | ir="); Serial.print(ir);
Serial.print(" | p="); Serial.print(pe);
Serial.print(" | n="); Serial.println(ni);
Serial.print(" | z="); Serial.println(z);
Serial.print(" | x="); Serial.println(x);

}
}
}
delay(500);

if(readsuccess){
Serial.print(StrUID);
delay(1000);
}

void printHex(byte *buffer, byte bufferSize) {


for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? "0" : "");
Serial.print(buffer[i], HEX);
}
}

36

Você também pode gostar