Professional Documents
Culture Documents
BRASLIA DF
1 SEMESTRE DE 2014
Braslia
Junho, 2014
Este Trabalho foi julgado adequado para a obteno do Ttulo de Engenheiro de Computao,
e aprovado em sua forma final pela Faculdade de Tecnologia e Cincias Sociais Aplicadas FATECS.
___________________________
Prof. Abiezer Amarilia Fernandes
Coordenador do Curso
Banca Examinadora:
________________________
Prof. Luciano Henrique Duque
Mestre, UniCEUB
________________________
Prof. Ingrid Maria Dittert
Doutora, UniCEUB
________________________
Prof. Nathaly Sarasty Narvez
Mestra, UniCEUB
AGRADECIMENTOS
minha
namorada
companheira
de
faculdade,
Mayume,
pelo
"
Uma Comunidade Inteligente uma
comunidade que fez um esforo consciente para usar
a tecnologia da informao para transformar a vida e
o trabalho dentro de seu territrio de forma
significativa e fundamental, em vez de seguir uma
forma incremental
California Institute for Smart Communities, 2001.
SUMRIO
CAPTULO 1 INTRODUO................................................................................................... 13
1.1 - Motivao ..................................................................................................................... 14
1.2 - Objetivos ....................................................................................................................... 14
1.3 - Metodologia .................................................................................................................. 15
1.4 - Resultados esperados .................................................................................................. 17
1.5 - Organizao ................................................................................................................. 17
CAPTULO 3 DESENVOLVIMENTO....................................................................................... 41
3.1 - Apresentao Geral do Projeto Proposto .................................................................... 41
3.2 - Descrio das etapas do sistemas integrados com controle centralizado ................. 43
3.2.1 - Servidor Web ............................................................................................................ 43
3.2.2 - Central de Controles e Comandos........................................................................... 44
3.2.2.1 - Interruptor Digital ................................................................................................... 45
3.2.2.2 - Controle de Iluminao por Dispositivos Mveis .................................................. 49
3.2.2.3 - Acionamento do Porto Automtico ..................................................................... 51
REFERNCIAS ........................................................................................................................ 71
APNDICE A Pgina inicial do servidor Web .................................................................. 73
APNDICE B Cdigo do controlador central ................................................................... 77
APNDICE C Cdigo do sistema autnomo de automao .......................................... 79
APNDICE D Cdigo do leitor de NFC.............................................................................. 82
APNDICE E Cdigo do interruptor digital ...................................................................... 84
LISTA DE FIGURAS
FIGURA 2.1 ARQUITETURA CENTRALIZADA DOS EQUIPAMENTOS ........................... 22
FIGURA 2.2 ARDUINO UNO ................................................................................................ 25
FIGURA 2.3 ESQUEMA ELTRICO DO ARDUINO UNO REVISO 3 .............................. 27
FIGURA 2.4 ARDUINO MEGA ............................................................................................. 28
FIGURA 2.5 ESQUEMA ELTRICO DO ATMEGA 2560 .................................................... 31
FIGURA 2.6 TRANSMISSOR E RECEPTOR RF - 433 MHZ .............................................. 38
FIGURA 2.7 DIAGRAMA DE UM REL ............................................................................... 39
FIGURA 2.8 SENSOR DE UMIDADE DE SOLO ................................................................. 40
FIGURA 3.1 SISTEMAS INTEGRADOS COM CONTROLE CENTRALIZADO .................. 42
FIGURA 3.2 SISTEMAS AUTNOMOS............................................................................... 42
FIGURA 3.3 CONFIGURAO DE SERVIDOR VIRTUAL ................................................. 44
FIGURA 3.4 DISPLAY SENSVEL AO TOQUE ................................................................... 46
FIGURA 3.5 TFT LCD MEGA SHIELD V2.0 ........................................................................ 47
FIGURA 3.6 CODIFICAO DO ARDUINO MEGA (FONTE: AUTOR) .............................. 48
FIGURA 3.7 PGINA WEB DEMONSTRA A LUZ ACESA E APAGADA ........................... 49
FIGURA 3.8 HTML DA PGINA WEB .................................................................................. 50
FIGURA 3.9 PARTE DO CDIGO DO CONTROLE DE ILUMINAO.............................. 51
FIGURA 3.10 CENTRAL MICROPROCESSADA KX30 ...................................................... 52
FIGURA 3.11 BOTOEIRA EXTERNA ................................................................................... 53
FIGURA 3.12 PGINA WEB MOSTRANDO PORTO ABERTO E FECHADO ................. 53
FIGURA 3.13 CDIGO PARA ACIONAMENTO DO PORTO ........................................... 54
FIGURA 3.14 SISTEMA AUTNOMO DE AUTOMAO ................................................... 55
FIGURA 3.15 CDIGO GERADO PARA LER E CONVERTER A UMIDADE DO SOLO... 56
FIGURA 3.16 PONTE H ........................................................................................................ 57
FIGURA 3.17 CDIGO QUE CONTROLA O ACIONAMENTO DA FILTRAGEM............... 58
FIGURA 3.18 SHIELD RTC COM LCD ................................................................................ 59
FIGURA 3.19 SHIELD NFC .................................................................................................. 61
FIGURA 3.20 PARTE DO CDIGO REFERENTE AO ACESSO DE USURIOS ............. 62
FIGURA 4.1 LEITURAS CONSECUTIVAS DO NEXUS 4 ................................................... 64
FIGURA 4.2 PARTE DO CDIGO DA BIBLIOTECA PN532_SPI....................................... 64
FIGURA 4.3 LEITURAS CONSECUTIVAS DO NEXUS 4 APS A CORREO ........... 65
FIGURA 4.4 ERRO DE SINCRONIZAO .......................................................................... 66
LISTA DE TABELAS
TABELA 1 RESUMO DO ARDUINO UNO ........................................................................... 26
TABELA 2 RESUMO DO ARDUINO MEGA 2560 ............................................................... 28
TABELA 3 QUOTA DE MERCADO DE TODOS OS SITES ................................................ 34
TABELA 4 MODELO DO FILTRO X CAPACIDADE POR HORA........................................ 58
10
V Volts
NFC Near Field Communication (comunicao por aproximao de campo)
IDE - Integrated Development Environment (ambiente de desenvolvimento integrado)
cm centmetros
mA miliampres
AC corrente alternada
PCI placa de circuito impresso
E / S entrada e sada
GPU - Graphics Processing Unit (unidade de processamento grfico)
RAM - Random Access Memory (memria de acesso aleatrio)
MB megabite
11
RESUMO
12
ABSTRACT
The purpose of the paper is to use mobile device with internet access, to
automate routine services in homes. A web application running on a server provide
control over the opening and closing of the automatic gate control home lighting,
access control environments through NFC technology, used in most modern
smartphones; Trigger garden irrigation and water filtration system of the pool. This
application will send data to a hardware interface via a serial communication between
the computer and the ARDUINO UNO, which interprets this data and monitor services
from the residence. For some tasks, just the mobile device (tablets, smartphones or
notebooks) is connected to the same LAN where the server. Either through wi-fi, and
cable reception.
Keywords : Automation , Arduino , Control , NFC .
13
CAPTULO 1 INTRODUO
14
1.1
Motivao
1.2
Objetivos
15
1.3
Metodologia
16
17
1.4
Resultados esperados
1.5
Organizao
18
19
CAPTULO 2 REFERENCIALTERICO
2.1
20
21
2.2
Domtica
22
23
2.3
Estamos sempre falando nas novas tecnologias que iro estar nas nossas
casas futuramente. Mas, muito se fala no futuro e j est na hora de presenciarmos a
automao residencial no presente. Vimos que alguns equipamentos eficientes so
instalados para solucionar problemas pontuais como que aleatoriamente, o que acaba
levando a frustraes para os clientes que pretendiam ter a automao residencial,
pois acabam vivendo com um sistema autnomo, que no interage com outros
equipamentos e em muitos casos tem uma operacionalidade no intuitiva (Aureside,
2014).
2.4
Sistemas Integrados
24
2.5
Dispositivos Utilizados
25
2.5.1.1
Arduino UNO
26
Microcontrolador
Tenso de funcionamento
Tenso de entrada
(recomendado)
Tenso de entrada (limites)
Pinos digitais E / S
Pinos de entrada analgica
Corrente DC por Pinos E / S
Corrente DC para 3.3V
Memria Flash
SRAM
EEPROM
Velocidade do relgio
ATmega328
5V
7-12V
6-20V
14 (dos quais 6 oferecem sada
PWM)
6
40 mA
50 mA
32 KB
2 KB
1 KB
16 MHz
(Fonte: http://arduino.cc/en/Main/ArduinoBoardUno)
27
28
2.5.1.2
Arduino Mega
Um dos fatos que o torna um feito engenhoso na sua criao foi que todos
os
conectores
laterais
continuam
compatveis
com
os
do
arduino
Uno,
Microcontrolador
Tenso de funcionamento
Tenso de entrada
(recomendado)
Tenso de entrada (limites)
Pinos digitais E / S
Pinos de entrada analgica
Corrente DC por Pinos E / S
Corrente DC para 3.3V
Memria Flash
SRAM
EEPROM
ATmega2560
5V
7-12V
6-20V
54 (dos quais 15 oferecem sada
PWM)
16
40 mA
50 mA
256 KB
8 KB
4 KB
29
Velocidade do relgio
16 MHz
(Fonte: http://arduino.cc/en/Main/ArduinoBoardMega2560)
O Arduino Mega pode ser alimentado atravs da conexo USB ou com uma
fonte de alimentao externa. A fonte de alimentao selecionada automaticamente.
A placa pode operar com um fornecimento externo de 6 a 20V. Se fornecido com
menos de 7V, no entanto, o pino de 5V pode fornecer menos de cinco volts e a placa
pode ser instvel. Se usar mais do que 12V, o regulador de voltagem pode
superaquecer e danificar a placa. O intervalo recomendado de 7 a 12V (Arduino.cc,
s.d.).
Os pinos de alimentao so os seguintes, de acordo com o site oficial do
arduino:
VIN. A tenso de entrada para a placa Arduino quando se est usando uma
fonte de alimentao externa (ao contrrio de 5V a partir da conexo USB ou outra
fonte de alimentao regulada). Voc pode fornecer tenso por este pino ou, se o
fornecimento de tenso atravs da tomada de energia, acess-lo atravs deste pino.
5V. Este pino gera um tenso de 5V regulada pela placa. A placa pode ser
alimentada com energia a partir da tomada de energia DC (7 - 12V), o conector USB
(5V), ou o pino VIN da placa (7-12V).
3V3. Uma fonte de 3,3V gerado pelo regulador on-board onde a corrente
mxima de 50 mA.
GND. Pinos negativos.
O ATmega2560 tem 256 KB de memria flash para armazenamento de
cdigo (dos quais 8 KB usado para o bootloader), 8 KB de SRAM e 4 KB de
EEPROM (que pode ser lido e escrito com a EEPROM).
Cada um dos 54 pinos digitais do Mega pode ser utilizado como uma
entrada ou uma sada, usando as funes pinMode (), digitalWrite () , e digitalRead
(). Eles operam com 5V. Cada pino pode fornecer ou receber um mximo de 40 mA e
tem um resistor pull-up interno (desconectado por padro) de 20-50 kOhms. Alm
disso, alguns pinos tm funes especificas:
30
31
2.5.1.3
32
Home
Page,
Pgina
Pessoal),
protocolo
que
manipula
as
33
2.5.2.1
Apache
O apache um servidor Web que foi projetado por uma pesquisa da NCSA
(National Center for Supercomputing Applications) da Universidade de Illinois na
dcada de 1990. Rob McCool criou um programa baseado em plataforma UNIX de
servidor Web simples para ser executado como um servio, contendo poucas funes.
Alguns anos depois, em 1994, um grupo de desenvolvedores resolveram se unir e
organizar as extenses e correes no projeto do McCool, chamado agora pelo termo
patch (consertado) referindo-se ao antigo servidor Web, mas esse nome no durou
muito e foi substitudo pelo nome que temos hoje: APACHE. Em dezembro de 1995,
esse grupo de desenvolvedores do apache lanaram a verso Apache 1.0 com a
realizao de teste de todas as extenses e correes, e no ano seguinte esse
servidor se tornou o servidor Web mais conhecido e utilizado da internet (Hoag, 2002).
Em termos de sites ativos, o Apache continua em uma posio muito mais
forte, com uma quota de 52% do mercado, em comparao com o Servidor Web da
Microsoft 11%. Uma proporo significativamente mais elevada de sites em
servidores Web Apache esto ativos: 26% de todos os sites do Apache foram
consideradas ativas, enquanto que apenas 6% dos da Microsoft estavam ativos. O
Apache est entre os sites mais movimentados, onde tem uma quota de 53% do
mercado, enquanto nginx tem 18% e a Microsoft tem 12%. Embora apenas 3% usam
o software de servidor web do Google, o domnio do Google est entre os sites mais
movimentados com uma presena em 8 dos 10 principais sites (Netcraft, 2014).
A ltima verso do Apache (2.4.9) foi lanada em 17 de maro de 2014.
The Apache Software Foundation descreve isso como representando quinze anos de
inovao pelo projeto. No entanto, ainda comum para muitos sites utilizar a verso
2.2, ou mesmo verses mais antigas. Embora Apache 2.4.8 no foi lanado, a verso
de desenvolvimento (Apache/2.4.8-dev) foi encontrada em 675 locais durante esta
34
pesquisa, que ocorreu em maro. Quase todos esses sites estavam funcionando em
servidores FreeBSD que pertenciam a vrios projetos Apache, principalmente Apache
HTTPD Apache e OpenOffice. A Tabela 3 mostra o comparativo entre os principais
servidores Webs da internet (Netcraft, 2014).
Tabela 3- Quota de mercado de todos os sites
Desenvolvedor
Maro 2014
Por cento
Apache
354.956.660
38,60%
Microsoft
286.014.566
nginx
Google
Abril 2014
Por cento
Mudana
361.853.003
37,74%
-0.87
31,10%
316.843.695
33,04%
1.94
143.095.181
15,56%
146.204.067
15,25%
-0.31
20.960.422
2,28%
20.983.310
2,19%
-0.09
(Fonte: http://news.netcraft.com/archives/2014/04/02/april-2014-web-server-survey.html#more14567)
2.5.2.2
Linguagem de Programao
35
2.5.3 NFC
36
Integrado
por
componentes
de
menor
tamanho
em
37
atravs
do
ar,
podendo
ultrapassar
alguns
38
2.5.5 Rel
39
Conjuntos de contatos;
Mola de rearme;
40
Caractersticas:
Alimentao: 3.3 V ~ 5 V
Tenso de Sinal de sada: 0 V ~ 5 V
Interface: Analgica e Digital (analgica mais precisa)
CI: LM393
41
CAPTULO 3 DESENVOLVIMENTO
3.1
42
43
3.2 Descrio
centralizado
das etapas do
sistema
integrado
com
controle
44
45
3.2.2.1
Interruptor Digital
46
Essa tela tem uma resoluo de 240 por 320 pixels e at 260 mil cores com
interface de 16 bits paralela. Mas, para utilizar todas essas funes disponveis nela,
foi necessrio um outro dispositivo para realizar o seu controle. a que entra o
arduino Mega, referenciado anteriormente no captulo 2.
A necessidade de se utilizar o controlador ATmega 2560 basicamente
que ele tem mais pinos de comunicao que o ATmega 328, sendo que para ligar o
display necessrio ter 40 pinos. Entre o display e o arduino, foi utilizado um shield
para facilitar a ligao entre os mesmos e que est ilustrado na Figura 3.5.
47
48
49
3.2.2.2
Para acessar tal pgina, basta digitar o endereo IP do servidor Web que
esta hospedando-a, seguido de uma barra ( / ) e a palavra casa, ficando da seguinte
forma: 192.168.1.2/casa, porm, esse endereo te levar a uma Home Page principal
com 2 opes de seleo, uma delas leva ao controle de iluminao de uma sala. E a
outra ser explicada mais adiante.
50
51
3.2.2.3
Fim de curso;
52
Partida suave;
Botoeira;
53
54
3.3
55
56
solo no consegue conduzir corrente nesse estado. Quanto mais o solo estiver mido,
maior ser a sua condutividade e por consequncia passar mais corrente eltrica de
um terminal ao outro.
Esse dispositivo de captura atua como um sensor analgico, portanto
conectado porta analgica 0 do arduino. Como j visto no referencial terico deste
trabalho, o arduino trabalha com tenses de 0 a 5 V, podendo ler valores das portas
analgicas de 0 a 1023 por referncia a esses valores de tenses.
No cdigo escrito para o arduino, Figura 3.15, foi utilizado uma funo
capaz de gerar uma escala de 0 a 100 tendo como referncia os valores lidos de 0 a
1023.
57
Quem tem piscina em casa sabe o quo difcil manter a gua dela sempre
limpa. E para tanto, existem vrios procedimentos indispensveis para o esse
controle.
Para facilitar um desses procedimentos que foi desenvolvido um sistema
que liga o filtro automaticamente todos os dias por um intervalo de tempo prdeterminado, que varia de acordo com a quantidade de gua que cabe na piscina e
tambm com a capacidade que o filtro tem de filtrar a gua por hora.
58
Nesse projeto foi utilizado um filtro fabricado pela Bestway, modelo 58148,
que tem a capacidade de filtrar 2.006 litros por hora, conforme mostra a Tabela 4.
Sabendo a capacidade que o filtro tem de filtragem por hora, basta dividir a
quantidade de litros que a piscina suporta pela capacidade do filtro, que no caso do
projeto proposto, a capacidade da piscina de 2000 litros dividido pela capacidade do
filtro, que de 2006 litros por hora, necessitando estar ligado por aproximadamente
uma hora.
59
60
61
Esse shield NFC operar em banda ISM de 13,56 MHz de frequncia tendo
um alcance de comunicao de at 10 cm podendo ser limitado pelo desenho da
antena na PCI e a radiao de energia. O escudo NFC fornece todos os circuitos
necessrios para trabalhar com a biblioteca PN532, que fornece as funes
necessrias para realizar as leituras e tem as seguintes caractersticas:
Cristal 27.12MHz;
Com a funo somente de ler os dados NFC, ele capta essas informaes
do smartphone ou de uma tag de NFC e verifica se ela tem permisso para entrar na
residncia.
62
63
4.1
Erro 1
64
Esse erro ocorreu por causa de uma falha que continha no chip controlador
de NFC do smartphone, comentado no item 2.5.3 deste trabalho e com a atualizao
do sistema, a Google tentou solucionar isso atravs de software, o que fez provocar
esse erro. Isso ocorria, porque uma funo da biblioteca PN532_SPI lia somente uma
faixa de blocos de endereo e foi nessa faixa de blocos (Figura 4.2) que foi alterada
com a nova atualizao.
65
66
4.2
Erro 2
O erro 2 referente ao sistema de iluminao, que no foi possvel corriglo, mas foi possvel ameniz-lo atravs de software.
O erro o seguinte: quando se liga a luz pelo interruptor digital, essa
informao no repassada ao servidor Web para que ele atualize a imagem que
aparece na tela do smartphone, ficando assim, sem uma sincronizao entre o que foi
selecionado no interruptor digital, isto , a real situao da lmpada (acesa ou
apagada) e a imagem que mostrada quando acessamos a pgina Web para
controlar a iluminao. A Figura 4.4 ilustra o erro em questo. Percebe-se que no
interruptor digital est mostrando que a ltima seleo foi a de desligar e que
realmente desligou a luz, porm, na imagem mostrada no smartphone, a pgina Web
continua mostrando que a luz est acesa. Caso nessa situao seja apertado no
smartphone para desligar a luz, nada acontecer alm da pgina mostrar uma imagem
com a luz apagada.
67
4.3
Erro 3
O erro 3 referente a um sistema que no foi possvel incorporar ao projeto,
4.4
Erro 4
Outro erro que ocorreu e que gerou uma outra soluo foi a de utilizar um
notebook para servir de servidor Web. A princpio foi utilizado um computador de baixo
custo, Raspberry Pi B, porm, as configuraes desse minicomputador no foram
suficientes para atender com presteza as requisies que eram feitas pelos
dispositivos mveis.
O Raspberry Pi verso b (verso testada) tem como as principais
caractersticas as seguintes (Pi, 2014):
Processador
512
MB de RAM;
68
69
CAPTULO 5 Concluso
residencial
utilizando
arduino,
juntamente
com
sugestes
de
5.1
Concluso
70
5.2
71
Referncias
Almeida, R. G. (2013). A vida da fifi. Braslia: Las Vegas.
ANDROID. (2013). Android Developer . Acesso em 02 de Maio de 2014, disponvel em Near Field
Communication: http://developer.android.com/guide/topics/connectivity/nfc/index.html
Angel, P. M. (1993). INTRODUCCION A LA DOMOTICA.
Arduino.cc.
(s.d.).
Acesso
em
21
de
Abril
http://arduino.cc/en/Main/ArduinoBoardMega2560
de
2014,
disponvel
em
72
73
74
</form>
<!--------------POST DO BOTAO DESATIVAR------------------------>
<form method="POST" action="">
75
<div align="center">
<p>
<input type="hidden" value="desativa" name="estado" >
<input type="submit" value="Desativa" name="desativa" style="width:290;height:200">
</p>
</form>
</table>
</div>
</body>
</html>
<?php
exec("mode com3: BAUD=9600 PARTITY=N data=8 stop=1 xon=off");
$port = fopen('COM1', 'w+');
if ($_POST['estado']=="abre")
{
fwrite($port, "r");
}
if ($_POST['estado']=="lampada1")
{
fwrite($port, "b");
}
if ($_POST['estado']=="lampada2")
{
fwrite($port, "c");
}
76
if ($_POST['estado']=="lampada3")
{
fwrite($port, "d");
}
if ($_POST['estado']=="fecha")
{
fwrite($port, "a");
}
if ($_POST['estado']=="desativa")
{
fwrite($port, "z");
}
fclose($port);
?>
77
#include <IRremote.h>
#include <VirtualWire.h>
int portao = 12;
int iluminacao = 8;
char caracter;
void setup()
{
Serial.begin(9600);
pinMode(portao, OUTPUT);
pinMode(iluminacao, OUTPUT);
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_rx_start();
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i]);
if(buf[i]==102)
{
digitalWrite(iluminacao, HIGH);
}
if(buf[i]==104)
{
digitalWrite(iluminacao, LOW);
}
}
}
caracter = Serial.read();
if(caracter == 'r')
{
digitalWrite(portao, HIGH);
delay(1000);
digitalWrite(portao, LOW);
78
}
//=====================================================================
if(caracter == 'h') // LIGA LUZ
{
digitalWrite(iluminacao, HIGH);
}
//==================================================================
if(caracter == 'f') // DESLIGA LUZ
{
digitalWrite(iluminacao, LOW);
}
}
79
#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal.h>
RTC_DS1307 RTC;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int piscina = 13;
int ponteH6 = 6;
int ponteH7 = 7;
int irrigando = 10;
int sensorUmidade = 0;
int umidade_val;
int saida_valor = 0;
int ct =0;
void setup()
{
Serial.begin(9600);
Wire.begin();
RTC.begin();
pinMode(piscina, OUTPUT);
pinMode(ponteH6, OUTPUT);
pinMode(ponteH7, OUTPUT);
pinMode(irrigando, OUTPUT);
digitalWrite(piscina,LOW);
lcd.begin(16, 2);
if (!RTC.isrunning())
{
RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop()
{
DateTime agora = RTC.now();
String relogio_data = "";
String relogio_hora = "";
int dia = agora.day();
int mes = agora.month();
int ano = agora.year();
relogio_data += ArrumaZero(dia);
relogio_data += "/";
relogio_data += ArrumaZero(mes);
80
relogio_data += "/";
relogio_data += ano;
int hora = agora.hour();
int minuto = agora.minute();
int segundo = agora.second();
81
digitalWrite(ponteH7, HIGH);
delay(500);
digitalWrite(ponteH6, LOW);
digitalWrite(ponteH7, LOW);
ct=0;
}
if(saida_valor < 10)
{
lcd.setCursor(14, 1);
lcd.print(" ");
lcd.setCursor(15, 1);
lcd.print(saida_valor);
}
else{
lcd.setCursor(14, 1);
lcd.print(saida_valor);
}
//=======================================================================
delay(200);
}
String ArrumaZero (int i)
{
String ret;
if (i < 10)
{
ret += "0";
ret += i;
}
return ret;
}
82
#include <PN532.h>
#define SCK 13
#define MOSI 11
#define SS 10
#define MISO 12
PN532 nfc(SCK, MISO, MOSI, SS);
int porta8 = 8;
int negado = 9;
void setup(void) {
pinMode(porta8, OUTPUT);
pinMode(negado, OUTPUT);
Serial.begin(9600);
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.print("No foi encontrado um placa PN53x vlida");
while (1);
}
// mostra as configuraes do dispositivo conectado
Serial.print("Chip encontrado PN5"); Serial.println((versiondata>>24) & 0xFF, HEX);
Serial.print("Verso do Firmware. "); Serial.print((versiondata>>16) & 0xFF, DEC);
Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
// configura o adaptador para ler cartes e tags de RFID
nfc.SAMConfig();
}
void loop(void) {
uint32_t id;
id = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A);
if(id == 2021683202 || id == 11184810 )
{
Serial.print("ID encontrada: "); Serial.println(id);
digitalWrite(porta8, HIGH);
83
delay(1000);
digitalWrite(porta8, LOW);
}
if(id != 2021683202 && id != 11184810 && id != 0)
{
digitalWrite(negado, HIGH);
delay(1000);
digitalWrite(negado, LOW);
}
delay(500);
}
84
#include <VirtualWire.h>
#include <UTFT.h>
#include <UTouch.h>
#include <UTFT_Buttons.h>
// Declare which fonts we will be using
extern uint8_t BigFont[];
UTFT
myGLCD(TFT01_32,38,39,40,41);
UTouch
myTouch(6,5,4,3,2);
UTFT_Buttons myButtons(&myGLCD, &myTouch);
int ledPin13 = 13;
int ledPin10 = 10;
int ledPin11 = 11;
int ligarradio = 8;
void setup()
{
Serial.begin(9600);
Serial.println("setup");
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000);
// Bits per sec
pinMode(ledPin13, OUTPUT);
pinMode(ligarradio, OUTPUT);
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(BigFont);
myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);
myButtons.setTextFont(BigFont);
}
void loop()
{
int but1, but2, botao_apertado;
85