Você está na página 1de 49

Faculdade de Filosofia, Cincias e Letras de Mandaguari - FAFIMAN

Cincia da Computao

Interao de Sistemas Heterogneos para Automao Residencial

Eber Fabiano Pacanhela

Mandaguari
2013
Eber Fabiano Pacanhela

Interao de Sistemas Heterogneos para Automao Residencial

Monografia apresentada como exigncia


para obteno do grau de Bacharelado
em Cincia da Computao da Faculdade
de Filosofia, Cincias e Letras de
Mandaguari - FAFIMAN.

Orientador: Itamar Solopak

Mandaguari
2013
EBER FABIANO PACANHELA

INTERAO DE SISTEMAS HETEROGNEOS PARA


AUTOMAO RESIDENCIAL

Monografia apresentada como trabalho de concluso do curso de


Bacharel em Cincia da Computao pela Fundao Faculdade de
Filosofia, Cincias e Letras de Mandaguari FAFIMAN

Data: 25/11/2013

Nota: 9,5

Banca Examinadora:

_______________________________
Prof. Esp. Itamar Solopak (Orientador)

_______________________________
Prof. Ms. Munif Gebara Junior

_______________________________
Prof. Ms. Rodney Janurio Carneiro
Dedico este trabalho minha famlia,
especialmente aos meus pais, Eros
Pacanhela e Rute Vieira da Silva
Pacanhela, pelo incentivo, apoio e
confiana em mim depositada durante a
minha formao acadmica.

Aos meus professores e amigos que tem


me ajudado e apoiado nesta fase to
importante de minha vida.
AGRADECIMENTOS

A Deus, em primeiro lugar, pela fora e coragem que tem me dado durante todos
esses anos de estudos.

Aos meus pais, Eros Pacanhela e Rute Vieira da Silva Pacanhela, pela confiana e
apoio que tem demonstrado durante toda a minha vida.

Aos meus professores, pela contribuio na minha formao acadmica.

Ao meu orientador, Itamar Solopak, por sua pacincia e determinao em me ajudar


no desenvolvimento deste trabalho.

Aos meus amigos, pelo companheirismo e amizade que pude desfrutar durante
esses quatro anos de estudos na FAFIMAN.

Ao meu amigo, Alexandre Parra Betioli, pela pacincia e dedicao em transmitir


seus conhecimentos em Java, me auxiliando nas dificuldades encontradas no
decorrer do trabalho.

Enfim, agradeo a todos que, direta ou indiretamente contriburam para a realizao


deste trabalho.
Feliz aquele que transfere o que sabe e aprende o que ensina.

Cora Coralina
RESUMO

Este trabalho prov um estudo sobre a interao de sistemas heterogneos para


automao residencial, utilizando tecnologias open-source e de custo relativamente
baixo. O trabalho inicia apresentando o conceito e um breve histrico da automao
industrial e da automao residencial. Aps isto, o trabalho descreve algumas
caractersticas das tecnologias Android, Web services e Arduino, pois a base central
deste trabalho comprovar a interoperabilidade destas tecnologias no ambiente
residencial. Quanto metodologia, trata-se de uma pesquisa de carter experimental
e de natureza qualitativa.

Palavras-chave: Interao de sistemas heterogneos, Web service, Android,


Arduino, Automao residencial
LISTA DE ABREVIATURAS E SIGLAS

APK Android Package File


AURESIDE Associao Brasileira de Automao Residencial
DEX Dalvik Executable
GPS Global Positioning System
HTTP Hypertext Transfer Protocol
IDE Integrated Development Environment
IP Internet Protocol
JSON JavaScript Object Notation
JVM Java Virtual Machine
LCD Liquid Crystal Display
OHA Open Handset Alliance
OPENGL Open Graphics Library
REST Representational State Transfer
SOAP Simple Object Access Protocol
TV Televiso
URI Uniform Resource Indicator
USB Universal Serial Bus
XML Extensible Markup Language
LISTA DE FIGURAS

Figura 1 - Dispositivos envolvidos na automao residencial ................................... 15


Figura 2 - Conceito de automao residencial .......................................................... 16
Figura 3 - Automao residencial voltada para a acessibilidade ............................... 18
Figura 4 - Arquitetura do Android .............................................................................. 20
Figura 5 - Representao dos dados em XML .......................................................... 23
Figura 6 - Representao dos dados em JSON ........................................................ 24
Figura 7 - Arduino Uno .............................................................................................. 25
Figura 8 - Prottipo................................................................................................... 27
Figura 9 - Diagramas de classes ............................................................................... 29
Figura 10 - Tela inicial da aplicao web................................................................... 30
Figura 11 - Tela de listagem da aplicao web ......................................................... 31
Figura 12 - Tela de manuteno da aplicao web ................................................... 31
Figura 13 - Sincronizao das automaes .............................................................. 31
Figura 14 - Acionamento da automao.................................................................... 32
Figura 15 - Opo para sincronizar as automaes .................................................. 33
Figura 16 - Tela de configurao............................................................................... 34
Figura 17 - Tela com as automaes disponveis do usurio .................................... 35
LISTA DE TABELAS

Tabela 1 - Lista de preos dos equipamentos ........................................................... 36


SUMRIO

1 INTRODUO ....................................................................................................... 10
2 FUNDAMENTAO TERICA .............................................................................. 12
2.1 Automao ....................................................................................................... 12
2.1.1 Automao Industrial ................................................................................. 12
2.1.2 Automao Residencial ............................................................................. 13
2.2 Android ............................................................................................................. 19
2.2.1 Arquitetura ................................................................................................. 20
2.3 Web services.................................................................................................... 21
2.4 Arduino ............................................................................................................. 24
3 METODOLOGIA ..................................................................................................... 26
4 EXPERIMENTO ..................................................................................................... 27
4.1 Aplicao Web ................................................................................................. 28
4.2 Aplicao Android ............................................................................................ 32
4.3 Aplicao e Hardware Arduino ......................................................................... 35
5 CONCLUSO ......................................................................................................... 37
REFERNCIAS ......................................................................................................... 38
APNDICE I.....................................................................................................................................40
APNDICE II....................................................................................................................................45
10

1 INTRODUO

O avano tecnolgico e a popularizao das tecnologias, como computador


pessoal, da Internet e dos dispositivos mveis vem revolucionando a maneira como
as pessoas se comunicam, trabalham e at mesmo como se divertem, tornando-as
mais familiarizadas com equipamentos eletrnicos.
Com esta alterao de comportamento, comum esperar que o ambiente
residencial tambm sofra alteraes, com a inteno de fornecer um ambiente
altamente integrado com equipamentos eletrnicos, visando proporcionar maior
conforto, segurana e agilidade nas atividades que so diariamente executas em
uma residncia, alm de possibilitar a criao de novos recursos, como por exemplo,
a compensao de luminosidade em um dia nublado.
A automao residencial surgiu justamente com a inteno de unificar os
processos de uma residncia, apesar de ser uma rea tecnolgica relativamente
nova, podendo at ser considerada como emergente. Ela teve suas primeiras
aplicaes no final da dcada de 70, quando sugiram nos Estados Unidos os
primeiros mdulos "inteligentes", onde comandos eram enviados pela prpria rede
eltrica da residncia. Esta soluo simples resolvia situaes pontuais, permitindo
ligar remotamente algum equipamento eletrnico ou luzes.
Atualmente no Brasil vrias empresas especializadas neste setor tm surgido,
porm os projetos de automao residencial ainda possuem alto custo de
implantao. Este fator acaba inviabilizando os projetos para a maioria da populao
brasileira, justamente pelo alto custo e complexa infraestrutura necessria.
Este trabalho tem como objetivo promover uma soluo de baixo custo para
automao residencial, utilizando ferramentas open-source e dispositivos mveis
acessveis populao brasileira. Alm disso, este trabalho procura tambm
constatar a possibilidade de interao das tecnologias Android e Arduino
comunicando-se atravs de Web service RESTful.
Para alcanar o objetivo do trabalho ser desenvolvido um prottipo, que
possibilitar ascender e apagar uma luz remotamente, para isto est sendo
considerada a premissa de que possvel a interao desses sistemas. E como
resultado espera-se comprovar a eficincia e possibilidade de aplicao das
tecnologias em um ambiente residencial.
11

Este trabalho est divido em 5 captulos, conforme descrito a seguir:


O Captulo 2 apresenta os principais conceitos relacionados automao e
tecnologias que sero utilizadas para o desenvolvimento do trabalho. No Captulo 3,
encontra-se a metodologia de pesquisa para a elaborao do trabalho. J o Captulo
4, descreve o experimento realizado, tornando-se a base para o desenvolvimento do
prottipo de automao residencial. E finalmente, no Captulo 5 realizada a
concluso do trabalho demonstrando os resultados obtidos.
12

2 FUNDAMENTAO TERICA

Este captulo aborda os principais conceitos da automao residencial e da


automao industrial, apresentando um breve histrico e alguns problemas
apontados por diversos autores. O captulo descreve tambm algumas
caractersticas das tecnologias, como Android, Web services e Arduino, bem como
seu surgimento.

2.1 Automao

O dicionrio online Michaelis, define a palavra automao como o emprego


da eletrnica nos processos de produo de fbricas e oficinas, de tal modo que
dispensam a interveno direta do homem.
Rosrio (2009, p. 23) afirma que automao todo o processo que realiza
tarefas e atividades de forma autnoma ou que auxilia o homem em suas atividades
do dia-a-dia, complementa ainda que automao pode ser definida como a
integrao de conhecimentos que substituem a observao, os esforos e decises
humanas por equipamentos e sistemas projetados atravs de especificaes
funcionais e tecnolgicas.
O conceito de automao tambm est diretamente associado com o
conjunto de tcnicas que so utilizadas para construir sistemas que so capazes de
atuar com eficincia sobre algum ambiente, com base nas informaes recebidas os
sistemas procuram a ao mais apropriada para ser executada (ROSRIO, 2009).

2.1.1 Automao Industrial

Os primeiros sinais da automao industrial surgiram no sculo XVIII, poca


em que ocorreu na Inglaterra a Revoluo Industrial, pois antes deste perodo o
processo de produo era efetuado manualmente pelos arteses, onde cada um
dominava completamente as etapas do processo de produo de um determinado
13

produto (SOUSA, 2013).


A partir do sculo XVIII, com as inovaes tecnolgicas oferecidas na poca,
acelerou-se o processo de transformao da matria-prima, devido ao surgimento de
mquinas automatizadas que eram movidas pela tecnologia do motor a vapor. Essas
mquinas acabaram modificando as relaes de trabalho no ambiente fabril, pois os
operrios passaram por um processo de especializao de sua mo-de-obra, onde
s tinham responsabilidade e domnio sob uma nica parte do processo industrial
(SOUSA, 2013).
Com o advento da globalizao as indstrias comearam a sofrer grandes
modificaes, com a inteno de se tornarem mais competitivas. Neste momento
percebeu-se a necessidade de modernizar os parques industriais, procurando
aumentar a competitividade de seus produtos, atravs do aumento da qualidade,
redues de custos e preos mais acessveis. Este fator contribuiu fortemente para o
surgimento da automao na indstria (ROSRIO, 2009).
Segundo Rosrio (2009), a automao passou a exercer o papel de facilitador
nos processos produtivos, pois utilizam mquinas capazes de realizar operaes
previamente programadas sem a interveno direta de um operador. Alm disso,
essas mquinas podem comunicar entre si, resultando em um ambiente altamente
integrado e com maior capacidade de produo.

2.1.2 Automao Residencial

A automao residencial e predial foi baseada na automao industrial, bem


conhecida e difundida mais tempo. Ela proporciona aos usurios benefcios como,
conforto, segurana e economia, pois permite o monitoramento e uso racional de
recursos, tais como, energia eltrica, gua, entre outros, alm de possibilitar o
controle remoto da residncia (BOLZANI, 2004).
Assim como na automao industrial, a automao residencial utiliza-se de
sistemas inteligentes para gerenciar e controlar equipamentos eletrnicos, reduzindo
a interveno humana para realizar as atividades que diariamente so executadas.
Ela tambm coleta as informaes sobre o ambiente por meio de sensores ou
estmulos, essas informaes so analisadas e consequentemente promovem aes
14

sobre o ambiente (BOLZANI, 2010).


Conforme Bolzani (2004), com a automao residencial, torna-se possvel a
integrao dos eletrodomsticos e equipamentos eletrnicos existentes na
residncia, como por exemplo, televiso, rdio, luzes, climatizador, entre outros. A
integrao desses componentes acaba se tornando em comodidade para os
usurios, pois com um sistema gerenciador pode controlar praticamente toda a
residncia de maneira remota.
Na Figura 1, observam-se vrios sistemas de automao interagindo com a
residncia, com a inteno de torn-la mais segura, confortvel e sustentvel, sendo
estes alguns dos principais objetivos da automao residencial.

1) Irrigao de jardim (horrios programados e sensores de umidade)


2) Cabeamento estruturado (dados, voz e imagem)
3) Circuito fechado de TV
4) Controle de acesso (biometria, cartes de proximidade, tags para veculos)
5) Controle de iluminao
6) Controle de utilidades (caixas de gua, bombas, filtros, piscinas, saunas)
7) Controle e monitoramento de elevadores
8) Controle e monitoramento de medies (gs, gua e eletricidade)
9) Controle e monitoramento do sistema de climatizao
10) Entretenimento (imagens, TV a cabo, som ambiente)
11) Rede de dados condominial
12) Sistema de deteco e alarme de incndio
13) Sistema de segurana
15

Figura 1 - Dispositivos envolvidos na automao residencial


Fonte: (MEDEIROS, 2009, p.4).

Segundo Bolzani (2004), os dispositivos que compem a automao


residencial devem unificar os processos e controle para simplificar (Figura 2),
oferecendo maior conforto aos usurios, como tambm os auxiliar nas tarefas dirias
que tomam muito tempo e que muitas vezes so repetitivas. Bolzani (2007)
complementa ainda que a automao residencial tem mostrado que a integrao de
dispositivos eletrnicos e eletromecnicos aumentam consideravelmente os
benefcios se comparados a sistemas isolados. E ela tambm acaba se tornando
uma forte aliada na reduo de consumo de gua e energia eltrica.
16

Figura 2 - Conceito de automao residencial


Fonte: (BOLZANI, 2004, p.53).

A automao residencial visa facilitar a interao entre os usurios e a


residncia, fornecendo acesso aos usurios de dentro e fora da casa, atravs da
Internet. Com isso a automao residencial torna-se uma forte aliada segurana,
permitindo o monitoramento em tempo real das dependncias da residncia. Alm
disso, os usurios podem enviar estmulos residncia, fazendo-a agir conforme
programada, como exemplo, ao se aproximar da casa o usurio solicita residncia
que comece a preparar o banho ou at mesmo preparar um caf.
Pode se notar que a busca pela automao residencial na atualidade, acaba
promovendo uma revoluo nos ambientes domsticos, pois incorporam a esse
cenrio um novo conceito, o de integrao entre diversos equipamentos e
dispositivos de uma casa unificada por uma nica central de comando.
Bolzani (2004), afirma que a automao residencial se resume em uma nica
palavra: conforto, pois para ele se um sistema eletrnico instalado em um ambiente
no oferecer o mnimo de conforto para os usurios, em pouco tempo esse sistema
ir ser desligado e deixado de lado. Para isso a automao residencial utiliza-se de
vrios sistemas, como: sistema de entretenimento, de iluminao, de controle de
portas e janelas, e at mesmo de segurana. Mantendo assim a ateno dos
usurios voltada para os benefcios da automao.
Sistema de entretenimento: com a inteno de oferecer um ambiente de
distrao para os usurios de uma residncia, o sistema de entretenimento, procura
prover mecanismos para controlar as funes e equipamentos de udio e vdeo,
17

fornecendo interfaces integradas para controlar tais equipamentos.


Sistema de iluminao: esse sistema procura fornecer vrias funes e
controles para iluminao da casa, tanto para a economia de energia, pois a
automao possibilita regular a intensidade da luz conforme necessidade, quanto
para criar ambientes especficos, como por exemplo, ambientes de festas,
romnticos ou ainda os ambientes usuais no dia-a-dia com a iluminao normal.
Alm disso, este sistema pode ser integrado com o sistema de entretenimento,
proporcionando luz ambiente, para cada tipo de atividade, por exemplo, ao assistir
um filme a residncia iria ajustar a luminosidade do ambiente para ficar mais
adequada.
Sistema de controle de portas e janelas: j este sistema tem a finalidade de
proporcionar conforto e comodidade aos usurios, pois permitem o acionamento
remoto de portas, janelas e at mesmo cortinas, ou ainda, se integrado com
sensores poderia facilmente analisar as condies de umidade do ambiente e
acionar automaticamente o fechamento das janelas, como por exemplo, caso
comeasse a chover, no haveria a necessidade do usurio se preocupar com a
previso do tempo, pois a prpria residncia de forma automtica poderia atuar
sobre este cenrio.
Sistema de segurana: de acordo com Bolzani (2004), de todos os sistemas
de automao residencial, o sistema de segurana um dos mais procurados pelos
usurios, pois esse sistema dificulta ou at mesmo impede a intruso ou ataque
residncia. Mas para isso ele complementa que um bom sistema de segurana
necessrio criar solues que sejam complementares e eficientes na deteco,
reconhecimento, retardo e reao. Tambm deve lidar com dois cenrios bsicos,
quando o usurio est na residncia e quando no est, onde no primeiro cenrio
esse tipo de sistema nunca deve expor os usurios a riscos, e j no segundo, ele
prover mecanismos para avisar os usurios situao da residncia.
Outro ponto importante que se tm mostrado favorvel automao
residencial a capacidade de auxiliar portadores com deficincia fsica em suas
atividades dirias, pois Bolzani (2004) afirma que a automao residencial permite
que esses usurios se sintam de certa forma independentes, como pode ser visto na
Figura 3.
18

Figura 3 - Automao residencial voltada para a acessibilidade


Fonte: (http://www.domaniautomacao.com.br/servicos/acessibilidade-e-bem-estar-do-idoso).

Apesar de a automao residencial trazer inmeros benefcios como,


comodidade, segurana, economia, etc. Isto acaba sendo um pouco distante da
realidade brasileira, no somente devido ao alto custo das tecnologias aplicadas,
complexa infraestrutura e/ou servios que so prestados para manter o
funcionamento dos equipamentos automatizados, mas tambm na diversidade dos
equipamentos envolvidos, e at mesmo a utilizao de padres diferentes, o que
acaba contribuindo para a complexidade desses sistemas.
Outro problema apontado por Medeiros (2009) AURESIDE (Associao
Brasileira de Automao Residencial), e que talvez seja considerado com um dos
principais problemas, que o pas no conta com profissionais de perfil adequado
nova realidade para suprir as necessidades de mercado.
J Muratori (2009), membro fundador da AURESIDE, questiona sobre a
aceitao da automao residencial pelos usurios, devido ao fato que as pessoas
geralmente desconfiam do que novo e se apegam no que j foi testado e
aprovado. Ele define esse sentimento como tecnofobia, e este medo das pessoas
acabam interferindo no progresso, tornando-o mais lento. Comprova tambm atravs
de estatsticas que apenas de 10 a 15% dos indivduos se sentem vontade com as
19

novas tecnologias. Apesar deste fator, Muratori ressalta que o custo de um projeto
de automao residencial est 50% mais barato que h cinco anos atrs, isto em
2009, e com isso tem aumentado em mdia 35% ao ano em nmero de projetos,
neste setor.

2.2 Android

A OHA (Open Handset Alliance), um grupo de organizaes, liderado pela


Google, no qual tambm fazem parte grandes nomes do setor de telefonia mvel
como, Samsung, LG, Sony Ericsson, Motorola e muitos outros, procuraram definir e
padronizar uma plataforma nica e de cdigo aberto para celulares, com a inteno
de atender as expectativas e tendncias de mercado, visando tambm deixar os
consumidores mais satisfeitos com o produto final. Alm de criar uma plataforma
para o desenvolvimento de aplicaes corporativas. Essa plataforma ficou conhecida
como Android (LECHETA, 2013).
Segundo Lecheta (2013), o Android consiste em uma plataforma de
desenvolvimento para aplicativos mveis, baseada em um sistema operacional
Linux, com uma interface visual rica em recursos e com diversas aplicaes nativas.
Essa nova plataforma vem revolucionando o mundo dos aparelhos celulares,
smartphones e tablets, pois o Android foi criado justamente com a inteno de
agradar os usurios, pois concentra em um nico aparelho todos os recursos
esperados, como por exemplo, tela touch screen, cmera, msicas, jogos, GPS,
acesso internet, bom visual, de fcil usabilidade e muito mais.
Os fabricantes de celulares tambm acabam se beneficiando com a
plataforma, pois:
[...] o fato de existir uma plataforma nica e consolidada uma grande
vantagem para criar novos aparelhos. A grande vantagem para eles que a
plataforma tambm livre e de cdigo aberto. A licena do Android flexvel
e permite que cada fabricante possa realizar alteraes no cdigo-fonte para
customizar seus produtos, e o melhor de tudo, sem necessidade de
compartilhar essas alteraes com ningum. O Android tambm free, e os
fabricantes podem usar e abusar dele sem precisar pagar por isso.
(LECHETA, 2013, p.24).
20

O fato de a plataforma Android ser de cdigo aberto contribui muito para o


seu aperfeioamento, pois desenvolvedores podem modific-la adicionando novas
funcionalidades ou corrigir falhas.

2.2.1 Arquitetura

A plataforma Android como se pode observar na Figura 4, divida em


camadas, sendo elas: a camada de aplicaes, de framework de aplicao, de
bibliotecas, do Android runtime e do kernel Linux.

Figura 4 - Arquitetura do Android


Fonte: (http://www.vivasemfio.com/blog/arquitetura-do-android/).

Na camada de aplicaes, encontram-se os aplicativos em si, nela se


concentra as funes bsicas do dispositivo, como fazer ligaes, acessar a lista de
contatos, acessar o navegador Web, ou seja, nesta camada contm todas as
funcionalidades necessrias para um usurio comum utilizar o dispositivo.
A camada de framework de aplicao foi desenvolvida para simplificar a
reutilizao de componentes, facilitando o desenvolvimento de aplicativos pelos
programadores.
21

Est incluso na camada de bibliotecas um conjunto de rotinas C/C++ que so


utilizadas por diversos componentes, e que podem trabalhar com arquivos de mdia,
como msicas, imagens, vdeos, entre outros. Possui tambm uma implementao
baseada no OpenGL (Open Graphics Library), para exibio de contedo 3D. Alm
disso, foi disponibilizado tambm um banco de dados relacional, conhecido como
SQLite.
de responsabilidade da camada Android runtime executar as aplicaes
utilizando a mquina virtual Dalvik. Cada aplicao do Android roda em seu prprio
processo, e o processo por sua vez acaba sendo uma instncia da mquina virtual.
importante ressaltar que a mquina virtual foi criada com a inteno de otimizar a
execuo de aplicativos em dispositivos mveis, e por esse motivo que o sistema
operacional do Android no utiliza uma JVM (Java Virtual Machine), apesar de
desenvolver as aplicaes utilizando a linguagem Java, o bytecode (.class) acaba
sendo convertido para o formato .dex (Dalvik Executable), e este representa a
aplicao do Android compilada. Neste processo tambm est incluso o processo de
compactao, onde arquivos .dex e recursos como imagens so transformados em
um nico arquivo com a extenso .apk (Android Package File), representando a
aplicao final (LECHETA, 2013).
A ltima camada representa em si o sistema operacional do Android, este foi
baseado no kernel 2.6 do Linux, e de sua responsabilidade gerenciar a memria,
os processos, as threads e a segurana dos arquivos e pastas, alm de redes e
drivers (LECHETA, 2013).

2.3 Web services

Segundo Reverbel (2006), "web services o nome dado tecnologia que


permite a comunicao entre aplicaes de uma maneira independente de sistema
operacional e de linguagem de programao" que possibilita interoperabilidade de
sistemas em ambientes distribudos heterogneos.
Web service tambm pode ser definido como um componente, ou unidade
lgica de aplicao, acessvel atravs de protocolos padres de Internet (I-WEB,
2003).
22

Geralmente, os web services so baseados em padres abertos e


amplamente difundido, como HTTP, XML, SOAP, entre outros. Este fator garante
que implementaes compatveis com as especificaes sejam interoperveis
(REVERBEL, 2006).
Quase sempre os sistemas utilizam o protocolo HTTP (Hypertext Transfer
Protocol) para interagir com os web services, pois esse protocolo tem como base a
comunicao por troca de mensagens, ou seja, atravs de requisies e respostas
entre o cliente e o servidor, onde as requisies so realizadas atravs de um
mtodo HTTP. Alm disso, a troca de informaes entre os servios/sistemas
comumente feita atravs de XML.
Reverbel (2006) descreve XML (Extensible Markup Language), como uma
linguagem para representao de dados, extensvel e independente de plataforma, e
que em web services pode ser utilizada tanto para descrever um servio quanto para
realizar a comunicao entre eles.
Os web services podem ser divididos em dois grupos, os baseados em SOAP
e os de estilo REST (KALIN, 2009). SOAP (Simple Object Access Protocol) um
protocolo leve para a troca de informaes, onde parte de sua especificao
composta por um conjunto de regras que define como utilizar o XML para
representar os dados. E outra parte define o formato de mensagens, convenes
para representar as chamadas de procedimento remoto, e tambm associaes ao
protocolo HTTP (I-WEB, 2003).
J os web services de estilo REST so frequentemente visto como uma
soluo mais simples, se comparado com a complexidade dos web services
baseados em SOAP (KALIN, 2009). O termo REST (Representational State
Transfer), foi utilizado pela primeira vez no ano 2000, na publicao da tese de
doutorado de Roy Fielding, um dos criadores do protocolo HTTP, onde
considerado como um estilo de arquitetura e no uma especificao (GODINHO,
2009), e que possui como base central a manipulao de recursos e rica explorao
do protocolo HTTP, sendo esta a sua principal caracterstica.
Os web services que seguem o estilo arquitetural REST, so conhecidos
como web services RESTful, onde estes devem expor recursos que possam ser
associados atravs de URIs (Uniform Resource Indicator) e apresentados atravs de
uma comunicao sem estado, e quando possvel utilizar algum tipo de cache pelos
mecanismos j existentes na infra da web (GODINHO, 2009).
23

Como os web services REST atuam sobre o protocolo HTTP, acabam


utilizando os mtodos disponveis do protocolo para realizar as requisies. Os
mtodos mais comuns so GET, POST, PUT e DELETE, onde:
GET: significa que o cliente quer obter uma representao de somente leitura
do recurso;
POST: utilizado para criar um novo recurso;
PUT: serve para atualizar um recurso existente; e por fim
DELETE: utilizado para remover um recurso existente.
Como o REST um estilo arquitetural e no uma especificao, portanto no
existe uma padronizao sobre o formato das informaes trocadas entre os clientes
e os servios, este formato definido no cabealho das requisies HTTP. Os web
services REST pode utilizar formatos como XML ou JSON para trocar as
informaes entre os clientes e os servios.

JSON (JavaScript Object Notation - Notao de Objetos JavaScript)


uma formatao leve de troca de dados. Para seres humanos, fcil
de ler e escrever. Para mquinas, fcil de interpretar e gerar. Est
baseado em um subconjunto da linguagem de programao
JavaScript, Standard ECMA-262 3a Edio - Dezembro - 1999. JSON
em formato texto e completamente independente de linguagem, pois
usa convenes que so familiares s linguagens C e familiares,
incluindo C++, C#, Java, JavaScript, Perl, Python e muitas outras.
Estas propriedades fazem com que JSON seja um formato ideal de
troca de dados. (http://www.json.org/json-pt.html)

As Figuras 5 e 6 representam respectivamente os formatos XML e JSON,


onde demonstram as informaes de um usurio.

Figura 5 - Representao dos dados em XML


Fonte: Autoria prpria.
24

Figura 6 - Representao dos dados em JSON


Fonte: Autoria prpria.

2.4 Arduino

Em 2005, no Instituto de Interatividade e Design, uma escola de Artes visuais


na cidade de Ivrea, Itlia, a partir de uma ideia dos professores de Computao
Fsica David Cuartielles e Massimo Banzi, foi criado o primeiro Arduino. Eles tinham
como objetivo criar uma ferramenta de hardware nica que fosse facilmente
programvel e que tambm no fosse muito cara. Essa ferramenta de hardware
seria utilizada no desenvolvimento de estruturas interativas no curso de Arte e
Design (SILVEIRA, 2011).
Segundo McRoberts (2011, p. 22), o Arduino uma "plataforma de
computao fsica ou embarcada, ou seja, um sistema que pode interagir com o seu
ambiente por meio de hardware e software", complementa ainda que o Arduino
tambm "um pequeno computador que voc pode programar para processar
entradas e sadas entre o dispositivo e os componentes externos conectados a ele".
Conforme Silveira (2011), o Arduino composto por duas partes: um
hardware e um software, onde o hardware um conjunto bsico de componentes
eletrnicos montados numa placa de circuito impresso, que a plataforma para o
desenvolvimento de prottipos; j o software, um aplicativo, o bootloader, que reside
na memria de programas do microcontrolador embarcado no Arduino.
O hardware do Arduino (Figura 7) contm um microprocessador Atmel AVR,
um cristal ou oscilador e um regulador linear de 5 volts. Que expe pinos de
entrada/sada do microcontrolador, possibilitando conect-los a outros circuitos e/ou
sensores, e tambm pode conter uma sada USB (Universal Serial Bus), que permite
conectar o Arduino a um computador para fazer upload ou recuperao de dados
(MCROBERTS, 2011).
Alm disso, conta com uma IDE (Integrated Development Environment)
especfica para auxiliar no desenvolvimento dos programas (sketches) que sero
executados no Arduino. A linguagem utilizada para desenvolver os programas
25

baseada na linguagem C e necessrio fazer o upload do programa no Arduino


para que este possa ser executado.
Um aspecto que chama a ateno para o Arduino que tanto o hardware
quanto o software so open-source, isto significa que qualquer pessoa pode
modificar e melhorar os seus programas, ou seja, de domnio pblico, o que
possibilita tambm a alta compatibilidade de placas-clone e software com o Arduino
genuno. Alm disso, o Arduino pode ser estendido acoplando placas de circuitos,
tambm conhecidas como shields, que contm outros dispositivos como displays de
LCD (Liquid Crystal Display), mdulos de bluetooth, mdulos de Ethernet, entre
outros, obtendo assim funcionalidades adicionais.

Figura 7 - Arduino Uno


Fonte: (MCROBERTS, 2011, p.23).
26

3 METODOLOGIA

A metodologia cientfica aplicada neste trabalho de carter experimental,


pois segundo Gil (2008, apud PRODANOV, FREITAS, 2013) o mtodo experimental
consiste em submeter os objetos de estudo influncia de variveis, em condies
conhecidas e controladas pelo pesquisador, podendo observar os resultados que a
varivel produz no objeto.
Neste caso, o objeto de estudo definido a interao de sistemas
heterogneos para automao residencial, visando obter maior familiaridade com o
tema proposto, faz-se necessrio o desenvolvimento de um prottipo para
comprovar a possvel interao desses sistemas.
27

4 EXPERIMENTO

Este trabalho tem por objetivo definir a possvel interao de sistemas


heterogneos com a inteno de prover uma soluo de baixo custo.
Para isto ser desenvolvido um prottipo utilizando o conceito de automao
residencial, onde a ideia mostrar a interao da aplicao Android com o hardware
Arduino por intermdio de web service RESTful, onde este possibilitar ascender e
apagar a luz remotamente, como se pode observar na Figura 8.

Figura 8 - Prottipo
Fonte: Autoria prpria.

Para escolha das tecnologias aplicadas neste trabalho foi levada em


considerao a portabilidade, flexibilidade, por serem tecnologias amplamente
difundidas no mercado atual e pelo fato de algumas tecnologias serem open-source.
As tecnologias aplicadas a este trabalho sero Java, Android e Arduino.
A aplicao Android ir interagir com a aplicao web, desenvolvida em Java,
atravs de um web service RESTful, que por sua vez ir se comunicar com os
elementos fsicos de uma residncia, atravs do hardware Arduino, tornando
possvel a automao, ou seja, uma aplicao enviar estmulos outra, acionando
as funcionalidades programadas. Para comprovar essa interao o prottipo ir
28

permitir ligar e desligar uma lmpada, utilizando um dispositivo mvel que suporte o
Android, pois ser esta aplicao que fornecer uma interface para o usurio, para
que ele possa interagir com a automao.
Como o objetivo deste trabalho demonstrar a interao entre os sistemas
heterogneos, portanto no foram explorados aqui todos os requisitos de segurana,
pois existem vrios pontos no qual devem ser melhorados, inclusive no quesito de
segurana da rede, pois neste aspecto ser considerada apenas a autenticao do
prprio roteador. Esses pontos futuramente podem ser aperfeioados, pois o objetivo
deste trabalho no entregar um produto final, mas demonstrar a possibilidade de
comunicao entre as tecnologias para automatizar uma residncia. Alm disso,
para alcanar o objetivo deste trabalho ser considerada a execuo em uma rede
local, porm pode ser estendida para uma rede de maior abrangncia.
Segue a descrio das aplicaes necessrias para este trabalho com suas
respectivas funcionalidades:

4.1 Aplicao Web

A tecnologia escolhida para o desenvolvimento desta aplicao foi a


tecnologia Java, pois se trata de uma tecnologia portvel e flexvel, alm do fato de
existir muito material de apoio na Internet. O web service a ser desenvolvido segue o
estilo arquitetural REST, pois de mais fcil implementao se comparado com
outras implementaes, como SOAP, e pela popularidade que tem ganhado
atualmente pela comunidade de desenvolvedores Java. A troca de informaes com
o web service ser baseada em JSON, por se tratar de uma estrutura de dados leve
e de fcil manipulao.
A aplicao web dever prover cadastros bsicos necessrios para identificar
as automaes de uma residncia. Neste processo est incluso a identificao dos
dispositivos que podero atuar sobre a residncia, cmodos da residncia que sero
automatizados, os equipamentos, ou seja, o hardware Arduino disponvel, as
automaes disponveis na residncia, como porta, janela, etc., os usurios e suas
respectivas permisses sobre cada automao.
Fornecer tambm um web service RESTful, onde ficar concentrado as
29

regras da aplicao responsvel por fazer a comunicao da aplicao Android com


o hardware Arduino, tambm dever fornecer os dados cadastrados na aplicao
web e necessrios para a aplicao Android.
A Figura 9 representa as entidades necessrias para desenvolver a aplicao
web de automao, pois com essas entidades, em primeira instncia, define os
cadastros bsicos, porm necessrios. Representando assim a aplicao e sua rea
de negcio.

Figura 9 - Diagramas de classes


Fonte: Autoria prpria.

Cada entidade possuir seu papel na aplicao onde:


A entidade usurio ir representar os usurios que podero interagir com a
residncia, e estes por sua vez tero permisses que definem com quais
automaes eles iro interagir.
A entidade automao representa em si as prprias automaes da
residncia, e neste caso ela possuir o estado na qual se encontra, para este
30

sistema foram pensados em dois estados apenas, como por exemplo, aberto ou
fechado e ligado ou desligado.
Cada automao est situada em um determinado cmodo em uma
residncia, e este o papel da entidade cmodo, que representa os cmodos da
residncia.
J a entidade equipamento representa, neste caso, o Arduino que estar
gerenciando fisicamente as automaes.
Quanto entidade dispositivo, representa os aparelhos eletrnicos,
geralmente smartphones, celulares ou tablets, que podero atuar sobre as
automaes vinculadas aos usurios.
A entidade direito de uso representa os proprietrios da residncia.
Finalizando a descrio das entidades, temos a entidade configurao de e-
mail, est necessria para configurar os dados do remetente de e-mail, pois
atravs destas informaes que o sistema web poder avisar os usurios informados
no direito de uso, caso haja a tentativa de acesso residncia no autorizada.
A aplicao possui menus para suas respectivas funcionalidades, como se
pode observar na Figura 10, tambm importante ressaltar que a aplicao possui
um visual bem simples, porm intuitivo.

Figura 10 - Tela inicial da aplicao web


Fonte: Autoria prpria.

As telas de listagem, conforme Figura 11, permitem acessar a tela de


manuteno dos registros, podendo inserir, alterar ou excluir um registro. Todas as
telas procuram manter sempre o mesmo padro de interface. Com isso os usurios
podem se familiarizar mais rapidamente com o sistema.
31

Figura 11 - Tela de listagem da aplicao web


Fonte: Autoria prpria.

nas telas de manuteno dos registros, como demonstra a Figura 12, que
sero informados os dados ou at mesmo excluir o registro. Ao concluir a
manuteno do registro o usurio ser redirecionado para a pgina de listagem.

Figura 12 - Tela de manuteno da aplicao web


Fonte: Autoria prpria.

Quanto ao web service, este disponibilizar dois mtodos para que a


aplicao cliente possa consumir. Com o primeiro mtodo ser possvel sincronizar
os dados da aplicao web com a aplicao cliente, como se pode observar na
Figura 13.

Figura 13 - Sincronizao das automaes


Fonte: Autoria prpria.
32

E o segundo mtodo que o web service disponibilizar ser para que a


aplicao cliente possa acionar fisicamente as automaes instaladas, conforme
demonstra a Figura 14.

Figura 14 - Acionamento da automao


Fonte: Autoria prpria.

4.2 Aplicao Android

A tecnologia Android, foi escolhida para o desenvolvimento da aplicao


mvel, pois ela vem conquistando seu espao no mercado, por ser uma tecnologia
aberta e pelo fato de ser uma plataforma extremamente flexvel, com suas interfaces
ricas em recursos, tornando a usabilidade dos sistemas desenvolvidos para esta
plataforma mais atraentes e intuitivos.
A aplicao Android servir como uma interface amigvel e intuitiva para que
o usurio possa interagir com as automaes instaladas. Esta aplicao ir se
comunicar com o web service disponvel pela aplicao web, onde poder solicitar
as automaes cadastradas, ou at mesmo solicitar o acionamento da automao,
como por exemplo, ascender e apagar a luz.
Para isto a aplicao Android, dever fornecer mecanismos de sincronizao
entre ela e a aplicao web, dever fornecer tambm rea de configurao da
aplicao, visto que este necessrio para efetuar a sincronizao do usurio com
suas respectivas automaes. importante ressaltar que esta aplicao no estar
33

disponvel para usurios simultneos, ela representar apenas um usurio no


momento de execuo. E por fim, porm no menos importante, ela ir prover uma
lista com as automaes disponveis do usurio para que ele possa solicitar o
acionamento das automaes.
A Figura 15 mostra a opo para sincronizar os dados das automaes
cadastradas na aplicao web, por intermdio do web service.

Figura 15 - Opo para sincronizar as automaes


Fonte: Autoria prpria.

Na Figura 16, demonstra a aba de configurao da aplicao Android.


atravs dos dados cadastrados nesta aba que a aplicao Android ir sincronizar os
dados das automaes do usurio informado. Alm disso, dever ser informado o IP
do servidor onde a aplicao web est configurada para que esta aplicao possa
fazer a comunicao com o web service.
34

Figura 16 - Tela de configurao


Fonte: Autoria prpria.

A Figura 17 representa a lista de automaes do usurio, para facilitar


visualizao as automaes sero agrupadas por seus respectivos cmodos.
atravs dos botes de acionamento das automaes que o usurio ir disparar o
estmulo para o web service solicitar o acionamento fsico da automao.
35

Figura 17 - Tela com as automaes disponveis do usurio


Fonte: Autoria prpria.

4.3 Aplicao e Hardware Arduino

O hardware Arduino foi escolhido para este trabalho, pois possui valor
aquisitivo relativamente baixo, como se pode observar na Tabela 1, porm com
capacidade suficiente de atender as necessidades propostas neste trabalho.
Tambm por ser uma tecnologia open-source e por estar no mercado a um bom
tempo, desde 2005.
36

Tabela 1 - Lista de preos dos equipamentos

Equipamento Valor (R$)

Ethernet Shield para Arduino (original) 155,00


ReleShield 49,00
Starter Kit (com Arduino Uno REV 3 originial) 149,00

Fonte: (http://www.labdegaragem.org/loja/).

O Arduino ficar encarregado de gerenciar fisicamente as automaes. Ele


receber estmulos da aplicao Android por intermdio do web service, para
acionar determinada automao na qual estar em sua responsabilidade.
A comunicao entre o web service e Arduino ter como base o protocolo
HTTP, onde atravs da requisio ser informado para o Arduino qual operao ele
dever executar, como por exemplo, ligar, desligar ou consultar os estado do
ReleShield ele acoplado.
37

5 CONCLUSO

Com este trabalho possvel concluir que se pode fazer a interao de


tecnologias livres e de custo relativamente baixo para automatizar uma residncia ou
pelo menos pontos especficos da mesma, pois com o prottipo desenvolvido
percebeu-se interoperabilidade das tecnologias Android e Arduino por intermdio do
web service RESTful.
Em relao segurana, como este trabalho no trata todos os aspectos,
devido o fato de existir vrios pontos que podem ser aperfeioados, portanto, deixa-
se em aberto a oportunidade de aprimorar esses pontos em um trabalho futuro.
importante ressaltar que todos os objetivos propostos por este trabalho
foram cumpridos de tal maneira que foi comprovada a interoperabilidade das
tecnologias j mencionadas, e aplicao de uma soluo de baixo custo para
automao residencial, sendo estas tambm a respostas para as premissas e
hipteses desta pesquisa.
Contudo, seguindo a mesma linhagem desta pesquisa possvel dar
continuidade a este trabalho em um trabalho futuro, possibilitando a criao de
novos recursos para automao residencial com as tecnologias aplicadas neste
trabalho, alm poder melhor o que existe hoje, ou ainda, utilizar os fundamentos
aplicados nesta pesquisa para desenvolver um produto com uma base mais slida e
voltada ao mercado de automaes residenciais.
38

REFERNCIAS

BOLZANI, C. A. M. Residncias Inteligentes. 1. ed. So Paulo: Livraria da Fsica,


2004. 332p.

BOLZANI, C. A. M. Desmistificando a Domtica. , AURESIDE, n.1, p.1-4, 2007.


Disponvel em: <http://www.bolzani.com.br/artigos/art01_07.pdf> Acesso em: 6 jun.
2013

BOLZANI, C. A. M. Anlise de Arquiteturas e Desenvolvimento de uma


Plataforma para Residncias Inteligentes. 2010. 155f. Tese (Doutorado em
Sistemas Eletrnicos) - Escola Politcnica da Universidade de So Paulo, So
Paulo, 2010.

GIL, A. C. Mtodos e tcnicas de pesquisa social. 6. ed. So Paulo: Atlas, 2008.


Apud PRODANOV, C. C.; FREITAS, E. C. Metodologia do Trabalho Cientfico:
Mtodos e Tcnicas da Pesquisa e do Trabalho Acadmico. 2. ed. Novo
Hamburgo: Editora Feevale, 2013.

GODINHO, R. Criando servios REST com WCF. Disponvel em:


<http://msdn.microsoft.com/pt-br/library/dd941696.aspx> Acesso em: 28 jun. 2013

I-WEB. Web Services. 2003. Disponvel em:


<http://www.iweb.com.br/iweb/pdfs/20031008-webservices-01.pdf> Acesso em: 28
jun. 2013

KALIN, M. Java Web Services: Implementando. 1. ed. Rio de Janeiro: Alta Books,
2010. 312p.

LECHETA, R. R. Google Android: Aprenda a criar aplicaes para dispositivos


mveis com o Android SDK. 3. ed. So Paulo: Novatec, 2013. 824p.

MCROBERTS, M. Arduino Bsico. 1. ed. So Paulo: Novatec, 2011. 456p.

MEDEIROS, H. Casa do futuro. Revista Tchne, AURESIDE, n.1, p.1-5, 2009.


Disponvel em: <http://www.aureside.org.br/artigos/techne.pdf> Acesso em: 6 jun.
2013
39

MURATORI, J. R. Estamos preparados para a automao residencial?. Revista


Automatizar, AURESIDE, n.1, p.1, 2009. Disponvel em:
<http://www.revistaautomatizar.com.br/PDF/Automatizar_02/34.pdf> Acesso em: 6
jun. 2013

REVERBEL, F. O que so web services?. Disponvel em:


<http://www.ime.usp.br/~reverbel/SOD-06/trabalhos/fachada-ws/node2.html> Acesso
em: 25 jun. 2013

ROSRIO, J. M. Automao Industrial. 1. ed. So Paulo: Barana, 2009. 515p.

SILVEIRA, J. A. Experimentos com o Arduino. 1. ed. So Paulo: Ensino


Profissional, 2011. 200p.

SOUSA, R. Revoluo Industrial. Disponvel em:


<http://www.brasilescola.com/historiag/revolucao-industrial.htm> Acesso em: 6 jun.
2013

Acessibilidade e Bem Estar do Idoso. Disponvel em:


<http://www.domaniautomacao.com.br/servicos/acessibilidade-e-bem-estar-do-
idoso> Acesso em: 14 jun. 2013

Arquitetura do Android. Disponvel em:


<http://www.vivasemfio.com/blog/arquitetura-do-android/> Acesso em: 25 jun. 2013

AUTOMAO. In: DICIONRIO Michaelis. Disponvel em:


<http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-
portugues&palavra=automa%E7%E3o> Acesso em: 6 jun. 2013

Introduo ao JSON. Disponvel em: <http://www.json.org/json-pt.html> Acesso em:


29 jul. 2013

Laboratrio de Garagem. Disponvel em: <http://www.labdegaragem.org/loja/>


Acesso em: 12 jun. 2013

Mercado de automao residencial d sinais de crescimento. Disponvel em:


<http://portal.tecpar.br/index.php/pt/noticias/1781-mercado-de-automacao-
residencial-da-sinais-de-crescimento> Acesso em: 6 jun. 2013
40

APNDICE I CLASSE JAVA DO WEB SERVICE RESTFUL

@Path("/automacao")
public class WebService {

@Inject
private PermissaoDAO permissaoDAO;

@Inject
private AutomacaoFacade automacaoFacade;

@Inject
private AutomacaoDAO automacaoDAO;

@Inject
private DispositivoDAO dispositivoDAO;

@Inject
private DireitoUsoDAO direitoUsoDAO;

@Inject
private ConfiguracaoEmailDAO configuracaoEmailDAO;

@GET
@Path("/permissoes")
@Produces(MediaType.APPLICATION_JSON)
public List<Permissao> getPermissoes(@HeaderParam("user") String user,
@HeaderParam("password") String password,
@HeaderParam("mac") String mac) {

Dispositivo dispositivo = dispositivoDAO.findByMac(mac);


if (dispositivo == null) {
enviarEmailDispositivoNaoCadastrado(mac);
return null;
41

if (dispositivo.isBloqueado()) {
enviarEmailDispositivoBloqueado(dispositivo);
return null;
}

return permissaoDAO.findAllByUser(user, password);


}

@POST
@Path("/acionar")
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.APPLICATION_JSON)
public String acionarAutomacao(@HeaderParam("user") String user,
@HeaderParam("password") String password,
@HeaderParam("mac") String mac, Automacao automacao) {

String retorno = "false";


Dispositivo dispositivo = dispositivoDAO.findByMac(mac);
if (dispositivo == null) {
enviarEmailDispositivoNaoCadastrado(mac);
return retorno;
}

if (dispositivo.isBloqueado()) {
enviarEmailDispositivoBloqueado(dispositivo);
return retorno;
}

Automacao novaAutomacao = automacaoDAO


.findById(automacao.getId());
if (novaAutomacao != null) {
if (permissaoDAO
42

.possuiPermissao(user, password, novaAutomacao)) {


novaAutomacao
.setEstadoAtual(automacao.isEstadoAtual());
try {
HttpUtil.get(caminhoEquipamento(
novaAutomacao));
automacaoFacade.merge(novaAutomacao);
retorno = "true";
} catch (IOException e) {
e.printStackTrace();
retorno = e.getMessage();
}
}
}

return retorno;
}

private String caminhoEquipamento(Automacao automacao) {


String sEstado = automacao
.isEstadoAtual() ? "ligarRele" : "desligarRele";
return "http://" + automacao.getEquipamento().getIp().trim() + "/"
+ sEstado + automacao.getRele().getCodigo();
}

private void enviarEmailDispositivoNaoCadastrado(String mac) {


try {
ConfiguracaoEmail configuracaoEmail = configuracaoEmailDAO
.findSingleResult();
List<DireitoUso> listaDireitoUso = direitoUsoDAO.findAll();
for (DireitoUso direitoUso : listaDireitoUso) {
EmailUtil
.enviar(configuracaoEmail.getHostName(),
configuracaoEmail.getEmail(),
43

configuracaoEmail.getNome(),
configuracaoEmail.getSenha(),
direitoUso.getEmail(),
"Dispositivo no cadastrado",
"Ol, \n" +
"Um dispositivo no cadastrado tentou
acessar o sistema. \n" +
"MAC: " + mac);
}
} catch (Exception e) {
e.printStackTrace();
}
}

private void enviarEmailDispositivoBloqueado(Dispositivo dispositivo) {


try {
ConfiguracaoEmail configuracaoEmail = configuracaoEmailDAO
.findSingleResult();
List<DireitoUso> listaDireitoUso = direitoUsoDAO.findAll();
for (DireitoUso direitoUso : listaDireitoUso) {
EmailUtil
.enviar(configuracaoEmail.getHostName(),
configuracaoEmail.getEmail(),
configuracaoEmail.getNome(),
configuracaoEmail.getSenha(),
direitoUso.getEmail(),
"Dispositivo bloqueado",
"Ol, \n" +
"Um dispositivo bloqueado tentou acessar o
sistema. \n\n" +
"Dados do dispositivo \nCdigo: " +
dispositivo.getId() +
"\nDescrio: " + dispositivo.getDescricao()
+ "\nMAC: " + dispositivo.getMac() +
44

"\nMotivo bloqueio: " +


dispositivo.getMotivoBloqueio());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
45

APNDICE II CDIGO DA APLICAO ARDUINO

#include <SPI.h>
#include <Ethernet.h>

const int RELE_1 = 7;


const int RELE_2 = 8;

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0xEC, 0x4D };

IPAddress ip(192, 168, 2, 101);

EthernetServer server(80);

void setup() {
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);

pinMode(RELE_1, OUTPUT);
digitalWrite(RELE_1, LOW);
pinMode(RELE_2, OUTPUT);
digitalWrite(RELE_2, LOW);
}

void loop() {
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
String str;
while (client.connected()) {
if (client.available()) {
char c = client.read();
str.concat(c);
46

if (c == '\n' && currentLineIsBlank) {


client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

if(str.substring(5,15).equals("ligarRele1")) {
digitalWrite(RELE_1, HIGH);
}
else if(str.substring(5,18).equals("desligarRele1")) {
digitalWrite(RELE_1, LOW);
}

if(str.substring(5,15).equals("ligarRele2")) {
digitalWrite(RELE_2, HIGH);
}
else if(str.substring(5,18).equals("desligarRele2")) {
digitalWrite(RELE_2, LOW);
}

if (str.substring(5,19).equals("consultarRele1")) {
if (digitalRead(RELE_1) == HIGH) {
client.print("ligado");
}
else if (digitalRead(RELE_1) == LOW) {
client.print("desligado");
}
}

if (str.substring(5, 19).equals("consultarRele2")) {
if (digitalRead(RELE_2) == HIGH) {
client.print("ligado");
}
else if (digitalRead(RELE_2) == LOW) {
client.print("desligado");
47

}
}
break;
}

if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}