[Artigo_Automacao_Residencial_Arduino_Android]FabianoSilva_v6.pdf
Transcript of [Artigo_Automacao_Residencial_Arduino_Android]FabianoSilva_v6.pdf
CENTRO UNIVERSITÁRIO SALESIANO DE SÃO PAULO – UNISAL
Curso de Ciência da Computação
Automação Residencial com Integração do Arduino e
SO Android: Um Estudo de Caso¹
Fabiano Augusto Cardoso da Silva
e-mail: [email protected]
RESUMO – O desenvolvimento de
microcontroladores programáveis tem
possibilitado o surgimento de diversos aplicativos
nas mais variadas situações, das quais a
automação residencial tem recebido atenção
especial devido ao fato de proporcionar
segurança. Este trabalho tem por objetivo
apresentar a viabilidade da integração entre o
Arduino e smartphones com o SO Android,
direcionados para controlar alguns aspectos de
uma residência. O projeto apresenta o
funcionamento de um sistema de automação
residencial utilizando um microcontrolador
ATmega2560 com um Ethernet shield e módulo
de identificação por rádio frequência, capaz de
controlar lâmpadas e sensor de temperatura
através de um aplicativo do sistema operacional
Android para celular ou tablet.
Palavras chaves: “Automação residencial”,
“Arduino”, “Android”, “ATmega2560”.
¹ Trabalho de conclusão de curso apresentado
ao Centro Universitário Salesiano de São
Paulo, como parte dos requisitos para a
obtenção do Grau de Bacharel em Ciência da
Computação. Orientador: Prof. Ms. Carlos
Henrique L. Feichas.
ABSTRACT - The development of programmable
microcontrollers has made possible the
emergence of various applications in the most
varied situations, where the home automation has
received special attention due to security. This
work aims to present the feasibility of integration
between Arduino and smartphones with Android
OS, targeted to control some aspects of a
residence. The design features the workings of a
home automation system using a microcontroller
ATmega2560 with an Ethernet shield and radio
frequency identification module, able to control
lights and temperature sensor through an
application of the Android operating system for
mobile or tablet.
Keywords: “Automation home”, “Arduino”,
“Android, “ATmega2560”.
I - INTRODUÇÃO
Atualmente pode-se verificar a necessidade da
comodidade e facilidade das pessoas em
diversas atividades do dia a dia, em especial a
automação residencial. O objetivo do projeto visa
disponibilizar a interação do cliente com a
residência através de tecnologias de baixo custo
disponíveis no mercado. O cliente terá interação
total com todos os dispositivos da residência
ligados ao microcontrolador, através de uma
conexão estabelecida entre o roteador wireless e
o aplicativo do celular. A interação continua
também por meio do acesso aos portões da casa
através de cartões de identificação por rádio
frequência. Para a conclusão do projeto foram
utilizados diversos componentes para o Arduino,
descritos durante este artigo. Foi desenvolvido
um aplicativo para o sistema operacional Android
para o gerenciamento dos dispositivos da
residência, ele é responsável para enviar as
requisições ao roteador wireless que são
processadas na placa do arduino, assim ativando
e desativando os atuadores e sensores ligados a
ele.
II - DEFINIÇÕES IMPORTANTES
A seguir são apresentados os conceitos
fundamentais que orientam a produção do projeto
desenvolvido.
A. Microcontroladores
Um microcontrolador é um computador dentro de
um único chip, contendo um processador,
memória e periféricos de entrada/saída. É um
microprocessador que pode ser programado para
funções específicas, em contraste com outros
microprocessadores de propósito geral (como os
utilizados nos computadores). Eles são
embarcados no interior de algum outro dispositivo
(geralmente um produto comercializado) para que
possam controlar as funções ou ações do
produto. Um outro nome para o microcontrolador,
portanto, é controlador embutido. Os
microcontroladores se diferenciam dos
processadores, pois além dos componentes
lógicos e aritméticos usuais de um
microprocessador de uso geral, o
microcontrolador integra elementos adicionais em
sua estrutura interna, como memória de leitura e
escrita para armazenamento de dados, memória
somente de leitura para armazenamento de
programas, EEPROM para armazenamento
permanente de dados e interfaces de entrada e
saída de dados. [1]
B. Sistema operacional do celular
O sistema operacional do celular é o conjunto de
aplicativos cuja função é gerenciar os recursos do
sistema. Por exemplo, definir qual aplicativo será
executado primeiro pelo processador,
gerenciamento da memória, etc. É a plataforma
de interação entre você e o celular. [2]
C. Automação residencial
Hoje o conceito de Automação Residencial está
mudado. Temos ao nosso alcance uma gama de
possibilidades práticas e econômicas que utilizam
a automação, desde a básica até a mais
abrangente, em sistemas de integração para
diversos ambientes. O resultado é um ambiente
prático, confortável, agradável, mais bonito,
valorizado e seguro, tudo isso de acordo com o
interesse do usuário. Trata-se da aplicação de
sistemas de controle baseados na automação
para todas as funções encontradas no ambiente,
integrando seus acionamentos e visando sempre
a praticidade, simplicidade e objetividade dos
comandos. Todas estas funções sem se desfazer
da beleza, do conforto e valorizando o ambiente.
[3]
III - DESCRIÇÃO DO PROJETO
Para o desenvolvimento deste projeto foi criada
uma maquete que representa uma casa real com
os principais itens a serem controlados pelo
smartphone com Android: duas lâmpadas, um
termômetro, um feixe de raio laser e um sensor
de temperatura. A proposta é demonstrar a
viabilidade de se controlar, remotamente, esses
componentes de acordo com as necessidades do
usuário. Nesse contexto, o sistema apresenta
uma interface simples, amigável para que o
usuário leigo possa controlar alguns aparelhos
em sua residência. A Figura 1 apresenta a
maquete com os componentes citados
anteriormente.
Figura 1 – Maquete com os componentes [12]
As conexões dos componentes foram realizadas
por meio de fios em uma “protoboard” e do
microcontrolador “arduino”, em alguns
componentes foi necessário utilizar a solda para
uma conexão mais robusta. A Figura 2 apresenta
com foram feitas as conexões.
Figura 2 – Conexão Geral [12]
O aplicativo para Android foi desenvolvido com
um design simples e intuitivo para o usuário. Na
tela principal conforme a Figura 3, são muitos
dispositivos que podem ser controlados, porém
somente algumas aplicados a esse projeto.
Figura 3 – Tela principal [12]
Figura 4 – Tela de controle das lâmpadas [12]
Figura 5 – Tela de controle do alarme [12]
No momento que é acionado alguma
funcionalidade o aplicativo é enviada uma
requisição para ser processada no Arduino.
A comunicação do sistema de automação
funciona por meio de uma conexão wireless entre
o smartphone e o roteador, por sua vez ligado ao
Ethernet Shield por um cabo de rede RJ45, que
esta conectado ao arduino. O aplicativo do
smartphone envia requisições ao arduino via rede
wireless, o arduino processa a requisição e
executa a função. Na Figura 6 é possível ver o
fluxo de comunicação do sistema.
Figura 6 – Fluxo de comunicação [12]
IV - METODOLOGIA UTILIZADA
Definição dos componentes utilizados no projeto.
Arduino Mega
O Arduino mega 2560 é uma placa
microcontroladora baseada no ATMega2560. Ele
tem 54 entrada / saída digital (dos quais 14
podem ser usados como saídas PWM), 16
entradas analógicas, tensão de funcionamento é
de 5V, memória flash de 256 KB sendo 8 KB
utilizada pelo bootloader, velocidade de clock 16
MHz, uma conexão USB e um conector de
alimentação. A Figura 7 apresenta o modelo
utilizado no projeto. [4]
Figura 7 – Arduino Mega 2560 [4]
Ethernet Shield
O Ethernet shield permite que uma placa Arduino
possa se conectar à uma rede local via cabo
RJ45. O shield é baseado no chip Wiznet W5100
ethernet, que fornece suporte a rede TCP e UDP.
Ele suporta até quatro conexões de soquete
simultâneas e tem velocidade de conexão de
10/100 MB. A Figura 8 apresenta o modelo
utilizado no projeto. [5]
Figura 8 – Ethernet Shield Wiznet W5100 [5]
Módulo de Identificação por Rádio Frequência
O módulo de identificação por Rádio Frequência
também conhecido como módulo de RFID,
permite que uma placa Arduino faça a leitura e
gravação em cartões e tags de codificação
eletrônica com frequência de 125 KHz. Não é
necessário o contato direto com o objeto, em uma
distancia de 6 cm a identificação do cartão ou tag
é feita automaticamente. O módulo é baseado no
chip Philips MFRC522, voltagem de
funcionamento de 3.3V e frequência de operação
13.56 MHz. A Figura 9 apresenta o modelo
utilizado no projeto. [6]
Figura 9 – Módulo de identificação por Rádio Frequência [6]
Rele Shield
O rele shield fornece a maneira mais fácil de
controlar dispositivos de alta tensão. O relé é um
dispositivo eletromecânico ou não, com inúmeras
aplicações possíveis em comutação de contatos
elétricos. Servindo para ligar ou desligar
dispositivos. É normal o relé estar ligado a dois
circuitos elétricos. No caso do Relé
eletromecânico, a comutação é realizada
alimentando-se a bobina do mesmo. Quando uma
corrente originada no primeiro circuito passa pela
bobina, um campo eletromagnético é gerado,
acionando o relé e possibilitando o funcionamento
do segundo circuito. Sendo assim, uma das
aplicabilidades do relé é utilizar-se de baixas
correntes para o comando no primeiro circuito,
protegendo o operador das possíveis altas
correntes que irão circular no segundo circuito
(contatos). A Figura 10 apresenta o modelo
utilizado no projeto.[7]
Figura 10 – Rele Shield [7]
Sensor de temperatura
O sensor de temperatura LM35 é um sensor de
precisão, fabricado pela National Semiconduct,
que apresenta uma saída de tensão linear relativa
à temperatura em que ele se encontrar no
momento em que for alimentado por uma tensão
de 4-20V dc e GND, tendo em sua saída um sinal
de 10mV para cada Grau Celsius de temperatura,
sendo assim, apresenta uma boa vantagem com
relação aos demais sensores de temperatura
calibrados em “KELVIN”, não necessitando
nenhuma subtração de variáveis para que se
obtenha uma escala de temperatura em Graus
Celsius. A Figura 11 apresenta o modelo utilizado
no projeto. [8]
Figura 11 – Sensor de temperatura LM35 [8]
Sensor de luminosidade LDR
O sensor de luminosidade LDR é um tipo de
resistor cuja resistência varia conforme a
intensidade da luz que incide sobre ele. Um LDR
é um raio de infra-vermelho de entrada que
converte a luz em valores de resistência. É feito
de sulfeto de cádmio ou seleneto de cádmio. Sua
resistência diminui quando a luz é muito alta, e
quando a luz é baixa, a resistência no LDR
aumenta.[9] A Figura 12 apresenta o modelo
utilizado no projeto.
Figura 12 – Sensor de luminosidade LDR [9]
Raio laser
O raio laser é formado por partículas de luz
(fótons) concentradas e emitidas em forma de um
feixe contínuo. Para fazer isso, é preciso
estimular os átomos de algum material a emitirem
fótons. Essa luz é canalizada com a ajuda de
espelhos para formar um feixe.[10] A Figura 13
apresenta o modelo utilizado no projeto.
Figura 13 – Caneta laser [10]
Visor LCD
É um módulo composto por uma tela de cristal
liquido de 16 colunas por 2 linhas, que funciona
em 5V, utiliza um chipset ST7066/HD4478 de
interface paralela. Este ligado a placa do arduino
possibilita exibir as informações em tempo real
em seu visor. A Figura 14 apresenta o modelo
utilizado no projeto.
Figura 14 – Visor LCD 16x2 [11]
Ferramentas necessárias
Foram utilizadas as seguintes ferramentas para o
desenvolvimento do projeto: IDE Eclipse para o
desenvolvimento do aplicativo em Android, IDE
arduino para o desenvolvimento do código
gravado no microcontrolador. Ferro de solda para
a conexão entre os fios e módulos. Multímetro
para a verificação dos contatos.
V -LINGUAGEM DE PROGRAMAÇÃO
Neste projeto foram utilizadas as linguagens
“Wiring” similar a C/C++ para a gravação no
microcontrolador e Android que é JAVA para o
aplicativo do smartphone.
Um exemplo das principais funções em “Wiring” e
JAVA:
A. Acionamento da lâmpada é feito pela saída
digital 12, quando recebe o comando HIGH ele
liga e quando recebe o LOW desliga.
pinMode(lampada1, 12);
void lampada_on(){
digitalWrite(lampada1, HIGH);
}
void lampada_off(){
digitalWrite(lampada1, LOW);
}
B. Acionamento da lâmpada é feita por meio de
requisições HTTP entre o aplicativo e o arduino, a
placa Ethernet shield permite a atribuição de um
endereço IP, criando uma rede local e quando o
arduino recebe do comando pré-determinado ele
executa uma função.
public void onClick(View arg0) { ClienteHttpGet clienteOFF = new
ClienteHttpGet("http://192.168.0.155:8090/?CMD=L1OFF");}
C. Ativação do alarme, quando o alarme é ativado
a caneta laser lança um feixe de raio laser sobre
o sensor de luminosidade. O efeito sonoro é
ativado quando o qualquer objeto bloqueie o feixe
de raio laser de chegar ao sensor, assim
deixando valor da luminosidade menor que 100,
por sua vez emitindo o som e exibindo no visor
LCD o texto “Invasor Detectado”.
void ativa_alarme(){
valorLido_luminosidade = analogRead(LDR);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarme Ativado");
delay(200);
while(valorLido_luminosidade < 100){
digitalWrite(Buzzer, HIGH);
delayMicroseconds(Tom);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Invasor");
lcd.setCursor(4,1);
lcd.print("Detectado");
delay(1000);
} }
VI - TESTES E RESULTADOS
Foram realizados testes de desempenho de
tempo no acionamento das lâmpadas, do sensor
de temperatura e do raio laser pelo aplicativo do
smartphone. E também na leitura e acionamento
de funções pelo cartão de identificação por rádio
frequência.
A. No teste de acionamento das lâmpadas pelo
aplicativo o resultado foi satisfatório, o tempo de
resposta foi de aproximadamente 1s entre o
clique no aplicativo até o momento da lâmpada
estar ligada ou desligada.
B. No teste de solicitação da temperatura
ambiente o resultado foi satisfatório, o tempo de
resposta foi de aproximadamente 0,5s entre o
clique no aplicativo até o momento de exibição no
visor de LCD.
C. No teste de acionamento do raio laser o
resultado foi satisfatório, o tempo de resposta foi
de aproximadamente 0,5s entre o clique no
aplicativo até o momento da ativação.
D. No teste de leitura e acionamento de funções
pelo cartão de identificação por rádio frequência,
o resultado foi satisfatório, o tempo de resposta
foi de aproximadamente 0,5s da aproximação do
cartão até o acionamento de uma função.
VII – CONCLUSÕES
Diante do sistema apresentado após os
resultados pode-se concluir que o desempenho
foi ótimo, tendo em vista os materiais de baixo
custo utilizados. O aplicativo desenvolvido é
intuitivo e fácil de usar. O artigo descreveu os
conceitos fundamentais e materiais necessários
para o desenvolvimento do projeto. O sistema
como um todo ficou simples, objetivo e rápido
fazendo que qualquer usuário possa utilizar sem
problemas.
Referências
[1]http://eletronicos.hsw.uol.com.br/microcontrolad
ores1.htm
[2]http://www.zoom.com.br/celular/deumzoom/sai
ba-tudo-sobre-sistema-operacional-de-celular
[3]http://www.gdsautomacao.com.br/public/index.
php?option=com_content&view=article&id=51:o-
que-e-automacao-residencial&catid=1:latest-news
[4]http://arduino.cc/en/Main/ArduinoBoardMega25
60
[5]http://arduino.cc/en/Main/ArduinoEthernetShiel
d
[6]http://www.b2cqshop.com/best/RC522.pdf
[7]http://www.dfrobot.com/wiki/index.php/Relay_S
hield_for_Arduino_%28SKU:DFR0144%29
[8]http://www.webtronico.com/lm35-sensor-de-
temperatura.html
[9]http://www.technologystudent.com/elec1/ldr1.ht
m
[10]http://mundoestranho.abril.com.br/materia/co
mo-funciona-o-raio-laser
[11]http://store.fungizmos.com/items/357
[12]http://arduino4fun.wordpress.com/2012/12/19/
projeto/
Fabiano Augusto Cardoso da Silva
Atualmente é analista de sistemas na empresa
Liebherr Brasil. É formado como Técnico em
Informática pelo SENAC de Guaratinguetá, e está
cursando o 8º período de Ciência da Computação
no Centro Salesiano de São Paulo – UNISAL,
Lorena,SP.