Utilizando Arduino e Aplicativo Mobile para automatização de
Coberturas
Adriana Morais da Silva, Anderson David dos Reis, Leandro de Oliveira Mendes, Léo Baccili Silva.
Abstract
Assuming that the whole idea is born of a need, the project comes with all this focus to bring simplicity and mobility to
its users with just a few keystrokes, and applying home automation in the area that is focused on developing solutions
for home automation provide its users more comfort and safety. The project seeks to demonstrate the techniques used to
create a designed and installed automated coverage according to the structure of the residence so as to cover the whole
clothesline, thus avoiding that the clothes get wet during rainy days. The cover will have four forms of control. They
are: Through rain sensors connected to an Arduino (electronics free hardware platform with support for input and
output), which to capture any hint of rain at the site, check the status of coverage and the same trigger on the
clothesline. Also via application developed for Android platform and developed a web page in Java Script, which will
bring data regarding current, maximum and minimum rainfall registered in the city, as well as local data of the
property that has implemented the project forecast, allowing control of individual coverage anywhere through internet.
Finally, to control locally, a button installed near the clothesline, allowing activation and deactivation of the cover with
just a squeeze.
Resumo
Partindo do princípio de que toda ideia nasce de uma necessidade, o projeto vem com este foco de trazer toda
simplicidade e mobilidade para seus usuários com apenas poucos toques, e se aplicando na área de domótica que é
voltada ao desenvolvimento de soluções de automação residencial para dispor aos seus usuários maior conforto e
segurança. O projeto busca demonstrar as técnicas utilizadas para criação de uma cobertura automatizada projetada e
instalada de acordo com a estrutura da residência de forma que cubra todo o varal, evitando assim, que as roupas se
molhem durante dias de chuva. A cobertura terá quatro formas de controle. São elas: Através de sensores de chuva
ligados a um Arduino (plataforma eletrônica de hardware livre com suporte a entrada e saída), que ao captar qualquer
indicio de chuva no local, verificará o status da cobertura e acionará a mesma sobre o varal. Também via aplicativo
desenvolvido para plataforma Android e uma página da Web desenvolvida em Java Script, que trará dados referente a
previsão atual, máxima e mínima de chuva na cidade cadastrada, também dados como locais do imóvel que possua o
projeto implantado, possibilitando o controle de cobertura individualmente de qualquer lugar mediante acesso à
internet. E por fim, para controle localmente, um botão instalado próximo ao varal, que permitirá ativação e desativação
da cobertura apenas com um aperto.
Introdução
Ao longo de toda a história, o conforto dos indivíduos sempre foram preocupações persistentes, evoluíram
paralelamente ao desenvolvimento tecnológico. Este projeto tem com seu foco essencialmente no tema da automação,
que visa justamente que o conforto seja alcançado de forma prática e simples, apenas com o comando de um celular ou
computador ou por um botão.
A automação residencial, também conhecida como domótica, é caracterizada pelo conjunto de tecnologias com
o objetivo de melhorar a qualidade de vida de seu usuário por meio da automatização de tarefas que anteriormente
demandariam muito tempo e esforço.
A automação surgiu inicialmente nas áreas industriais e comerciais. Os investidores voltaram-se para essas
áreas pelo rápido retorno do investimento, graças à grande escala de produção. Somente depois foram desenvolvidas as
tecnologias específicas para a área residencial.
Os últimos anos revelam que a automação está cada vez mais acessível e barata, podendo ser controlada por
celulares, tablets e smartphones. Tais recursos, que até pouco tempo tinham que ser acessados em um único ponto de
conexão, podem agora fazer com que qualquer lugar seja o centro da casa graças à tecnologia wireless.
Com a automação residencial o que se objetiva é a integração de tecnologias de acesso à informação e
entretenimento, com otimização dos negócios, da Internet, além de total integração da rede de dados, voz, imagem e
multimídia. Isso é obtido através de um projeto único que envolve infraestrutura, dispositivos e software de controle
cuja meta é garantir ao usuário a possibilidade de controle e de acesso à sua residência à distância, dentro ou fora da
mesma, e o projeto nasce para contemplar esta ideia, que tudo pode ser mais fácil e mais acessível para o usuário.
Estudos ainda revelam que a Mobilidade e
a Internet tem sido uma grande propulsora de negócios e
obviamente de comodidade, sendo que segundo o IBGE quase metade dos domicílios brasileiros tem conexão com a
internet, 7em cada dez brasileiros possuem telefones celulares e em 2013, brasileiros compraram 68 smartphones por
minutos.
Entendendo o Arduido e as tecnologias utilizadas.
Ainda pensando em automação, estudos recentes realizados
pela Berg Insight as instalações de casas
inteligentes se destacam na América do Norte e contou com 2,3 milhões no ano de 2013 o que significa um aumento
de 66% a cada ano. Isso é o reflexo do forte crescimento da área de automação na América, o que leva a prever que no
ano de 2017 o número saltará para 12,8 milhões.
Gráfico 1 Número de Casas Inteligentes --- Fonte: Berg Insight
No Brasil temos um cenário também em crescente evolução conforme afirma o Diretor
Executivo da
Associação Brasileira de Automação Residencial (Aureside):
“...as vendas de produtos com esse fim cresceram 100% no ano de 2006 em relação ao ano anterior. Em 2007
a associação contou com um aumento de 35%, e contavam com a possibilidade de superação deste índice.” (Thales
Cavalcanti, Diretor Executivo da ABAR)
Por se tratar de um projeto que conta com mais de uma funcionalidade, nada melhor que um Arduino para
atender esta necessidade. É incrível como o mesmo tem ganhado destaque quando assunto é automação e liberdade. No
livro “Arduino Básico”, o autor menciona a dimensão que o mesmo vem tomando:
“Se você fizer uma pesquisa online por “Arduino”, ficará surpreso com o grande
número de sites dedicados ao Arduino, ou que apresentam projetos interessantes criados
com ele. O Arduino e um dispositivo incrível, e possibilitara que você crie de tudo, desde
obras de arte interativas até robôs”. (MCROBERTS, 2011, p.25).
O mesmo é baseado em um micro-controlador, e dessa forma é logicamente programável, ou seja, é possível a
criação de programas utilizando uma linguagem própria baseada em linguagem C/C++, que quando implementadas
fazem com que o hardware execute certas ações, possibilitando receber e enviar informações.
“Para programar o Arduino você utiliza o IDE do Arduino, um software livre no
qual você escreve o código na linguagem que o Arduino compreende. O IDE permite que
você escreva um programa de computador, que e um conjunto de instruções passo a passo,
das quais você faz o upload para o Arduino. Seu Arduino, então, executará essas
instruções, interagindo com o que estiver conectado a ele”. (MCROBERTS, 2011, p.24).
Além de controlar praticamente qualquer sistema eletrônico, como por exemplo, motores, botões, sensores,
interruptores e displays de LCD.
A utilização desses circuitos integrados não só diminui o custo mas como também proporciona mais flexibilidade para a
automação. E nessas plataformas de desenvolvimento que utilizam micro-controladores que Arduino tem garantido seu
espaço e ganhado cada vez mais destaque. (TAVARES, 2013).
No projeto utilizamos o Arduino Mega que possui um micro controlador ATmega 2560 nele temos 54 pinos de
entrada/saída digitais, 16 entradas analógicas nos quais 14 podem ser saídas PWM Push Width Modulation (Modulação
por Largura de Pulso utilizado para controle de velocidade de motores de corrente contínua.
Possui também 256KB de Memória Flash no qual 4KB são utilizados para o bootloader (processo de
inicialização).
O Arduino pode ser alimentado pela conexão USB ou por uma fonte externa que pode variar entre 6 a 20
Volts. Sendo recomendado fontes entre 7 a 12 volts.
Figura 1 Arduino Mega
Neste projeto utilizaremos 2 tipos de sensores: Sensores de Chuva, que nada mais são que placas com várias
trilhas que se encarregam de detectar água quando a mesma cai sobre eles fechando um “curto-circuito” que envia um
pulso ao Arduino.
Figura 2 Sensor de Chuva
O outro sensor utilizado no projeto é o Reed Switch – sensor magnético. Ele é composto por uma cápsula de
vidro contendo duas lâminas magnéticas dentro, bastando somente induzir magnetização entre as duas lâminas, fazendo
que se atraiam magneticamente, ou seja, ao aproximar um imã, as lâminas se unem e acionam. No projeto este sensor
tem a função de identificar quando a cobertura chega até o final e quando retorna ao começo da estrutura do varal, dessa
forma confirmará que a cobertura foi acionada e desativada com sucesso.
Figura 3 Sensor Magnético (Reed Switch)
Além de sensores, o Arduino possibilita conexão com placas de circuito, como de Ethernet, Wireless,
Bluetooth, apelidadas de Shields.
Com a dimensão que vem tomando a comunidade Arduino no mundo e no Brasil, o número de shields está
cada vez maior. Atualmente, com toda tecnologia dos smartphones, nós fazemos a pergunta: “Será que existe um app
para isso?”. Já no mundo do Arduino não é muito diferente, pois fazemos a seguinte pergunta: “Será que existe um
shield para isso?”. (LEMOS, 2014).
Para o projeto utilizamos o Ethernet Shield, que possui uma porta ethernet utilizada para enviar e receber
comandos através da rede local ou internet.
Esse Shield possui um acoplamento perfeito com o Arduino Mega e barras empilháveis para que outros Shields
possam ser conectados sobre ele.
No projeto essa placa é ligada diretamente a um roteador Wireless que fará a comunicação entre o Arduino e os
dispositivos de rede que enviarão comandos para acionar ou desativar a cobertura.
Figura 4 Arduino Ethernet Shield
Outro componente utilizado é o driver do motor L298N Ponte H, com ele conseguimos controlar dois motores
DC (corrente contínua) ou um motor de passo Bipolar (será explicado abaixo) o qual utilizamos em nosso projeto. Essa
ponte possui uma alimentação externa para que consiga enviar corrente suficiente par fazer o motor girar e também
consegue controlar para qual lado o motor irá girar e a velocidade e os passos que o motor irá executar.
Figura 5 Driver do Motor
Existem diversos tipos de motores e para nosso projeto optamos por usar o motor de passos pois ele
proporciona uma maior precisão e ao mesmo tempo velocidade e torque. Utilizamos um motor hibrido modelo 23KMC041-07V que pode trabalhar no modo Unipolar que utiliza cinco ou seis fios e no modo Bipolar que utiliza quatro ou
oito fios, como nosso driver tem suporte apenas para motores Bipolar optamos por utilizar essa opção.
Figura 6 Motor híbrido 23KM-C041-07V
Quando quisermos obter uma rotação específica de um certo grau, calculamos o número de rotação por pulsos,
o que nos possibilita uma boa precisão no movimento.
No livro “Arduino Básico”, o autor cita a forma que o motor funciona:
“Em volta da parte externa do motor temos eletromagnetos dentados. Uma bobina
é energizada, fazendo com que os dentes do rotor de ferro se alinhem aos dentes do
eletromagneto. Os dentes do próximo eletromagneto ficam levemente deslocados em
relação aos primeiros; quando ele é o eletromagneto energizado, e a primeira bobina é
desligada, isso faz com que o eixo rotacione um pouco mais em direção ao próximo
eletromagneto. Cada vez que um eletromagneto é energizado e o rotor se move um pouco,
ele executa um passo. Invertendo a sequência dos eletromagnetos que energizam o rotor,
ele gira na direção oposta”. (MCROBERTS, 2011, p.236).
Para integração e comunicação das aplicações do projeto optamos pela criação do Web Service, utilizando a
plataforma .Net com linguagem em C#(sharp) para o desenvolvimento. Através dos métodos fornecidos por ele a
aplicação irá interagir com o Arduino e vice-versa, executando solicitações efetuadas pelo aplicativo, ativando e
desativando a cobertura e recebendo informações do dispositivo referente a atual situação do mesmo.
Já para o desenvolvimento da página Web e do Aplicativo optamos pela linguagem JavaScript, utilizando as
aplicações Eclipse e WorkLight da IBM.
E o banco de dados para armazenar todos os dados envolvidos no projeto, utilizamos o SQL Server 2012.
Visão de um Projeto utilizando ARDUINO para Criação da Cobertura
Abaixo teremos análise e definições das necessidades e requisitos dos envolvidos do projeto Rain Cover que
contará com o desenvolvimento de um software que comunicará diretamente com a plataforma Arduino, possibilitando
interação por várias formas, tanto automaticamente quanto por uma simples ação do usuário.
O Projeto Rain Cover tem como intuito principal automatizar atividade rotineira, de modo que reduza o tempo
perdido para retirar roupas do varal devido à chuva no local e recolocá-las quando a chuva passar.
Através de quatro formas de controle da cobertura, o usuário não terá receio em estender roupas no varal, se
preocupando com a possibilidade de chuva.
Principais Características
São quatro formas de interação com a cobertura. O sistema contará com a ação do usuário apenas em três
delas: Via aplicativo de celular, página da Web e um botão físico.
A outra forma funciona automaticamente, através de sensores de chuva, que ao captarem gotículas de agua
enviarão pulsos ao Arduino, e farão com que a cobertura seja acionada.
O aplicativo e a página Web indicarão a previsão do tempo, previsão máxima e mínima de chuva na cidade
pré-cadastrada do usuário, e também o sistema trará os imóveis (para clientes que possuem mais de um imóvel com o
projeto implantado) e localizações dos equipamentos implantado pré-cadastrado como quintal, garagem, varanda, entre
outros, permitindo o usuário optar por qual cobertura deseja acionar ou desativar.
O botão físico será instalado próximo a cobertura, com intuito de facilitar o acesso quando o usuário estiver em
casa, bastando somente apertar o botão para a cobertura ser acionada ou desativada. Desta forma se o usuário estiver
sem um dispositivo (Smartphone/Computador/Notebook) em mãos, não precisará se preocupar, pois haverá o sensor de
chuva funcionando normalmente e possuirá um botão físico para interação direta.
Ambiente de Desenvolvimento
O ambiente de desenvolvimento terá como referência a Análise de outros projetos envolvendo Arduino e para
automação residencial ou comercial.
Visando disponibilizar uma maior mobilidade e integração entre todas as unidades do projeto, a adoção da
utilização de um WebService se tornou extremamente necessária, devido à atual facilidade de se realizar solicitações e
respostas através de requisições seguras e retornos de informações rápidas e dinâmicas em XML(Linguagem que define
um conjunto de regras para codificação de um documento)
No que se concerne a Banco de Dados, a opção pelo SQL Server 2012 se exemplifica pela sua qualidade,
robustez, segurança, estabilidade e de fácil manutenção.
Para a elaboração do Site e do App, com a utilização das ferramentas Eclipse + Worklight Studio da IBM
obtivemos maior qualidade na elaboração dos mesmos, pelo fato da ferramenta oferecer a possibilidade de se
desenvolver toda a aplicação em JavaScript e HTML, junto com o Jquery Mobile (framework de interface gráfica), cujo
foco é voltado para aplicações Web em dispositivos móveis.
As ferramentas utilizadas durante o desenvolvimento do projeto estão relacionadas na tabela a seguir:
Tipo de Aplicação
Descrição da Ferramenta
Sistema de Desenvolvimento para Arduino
Arduino 1.0.5
Sistema Gerenciador de Banco de Dados
SQL Server 2012
Desenvolvimento do Aplicativo Android
Eclipse e Worklight Studio
Desenvolvimento Web Service
C#(Sharp)
Tabela 1 Ferramentas necessárias para o desenvolvimento do Projeto
Fluxo Primário, Secundários dos Casos de Uso e Modelagem
Segundo Sommerville(2007),
funcional, rastreando e
os Fluxos
modelam o modelam o sistema em
uma perspectiva
documentando como os dados associados com um processo são úteis para o
desenvolvimento de um entendimento geral do sistema. Eles também podem ser usados para mostrar a troca
de dados dados entre um sistema em seu ambiente.
Abaixo temos os principais fluxo para
utilização de todo um sistema envolvendo Arduino e
gerenciamento Via Web e Botão que posteriormente foram transformados em Diagramas UML de Fluxo de
Dados para melhor entendimento durante o processo de desenvolvimento.
Ativar Cobertura via aplicativo ou página Web
Fluxo Primário
1- Usuário informa usuário e senha
2- Validação dos dados de login
3- Usuário seleciona o Imóvel cadastrado
4- Carrega status da cobertura e dados do tempo da região
5- Usuário informa opção Ativar
6- Solicita confirmação da opção do Usuário
7- Usuário confirma opção
8- Verifica status da cobertura
9- Ativa cobertura
10- Registra data, horário, usuário, meio(Aplicativo ou Web) da ativação.
Fluxo Secundário
1- No passo 2, se usuário digitar senha ou usuário inválido, retorna para
passo 1. Caso acesso seja inválido por 10 vezes consecutivas, usuário será bloqueado.
2- No passo 6, se usuário não confirmar opção, voltará para passo 5.
3- No passo 8, se cobertura estiver com status de Coberta, retorna para
passo 4.
Desativar Cobertura via aplicativo ou página Web
Fluxo Primário
1- Usuário informa usuário e senha
2- Validação dos dados de login
3- Usuário seleciona o Imóvel cadastrado
4- Carrega status da cobertura e dados do tempo da região
5- Usuário informa opção Desativar
6- Solicita confirmação da opção do Usuário
7- Usuário confirma opção
8- Verifica status da cobertura
9- Desativa cobertura
10- Registra data, horário, usuário, meio(Aplicativo ou Web) da desativação.
Fluxo Secundário
1- No passo 2, se usuário digitar senha ou usuário inválido, retorna para passo 1. Caso acesso seja
inválido por 10 vezes consecutivas, usuário será bloqueado.
2- No passo 6, se usuário não confirmar opção, voltará para passo 5.
3- No passo 8, se cobertura estiver com status de Descoberta, retorna para
4- passo 4.
Ativar Cobertura via botão
Fluxo Primário
1- Usuário se dirije até a cobertura
2- Usuário aperta botão
3- Ativa cobertura
4- Registra data, horário, usuário, meio(Botão) da ativação.
Desativar Cobertura via botão
Fluxo Primário
1- Usuário se dirije até a cobertura
2- Usuário desaperta botão
3- Desativa cobertura
4- Registra data, horário, usuário, meio(Botão) da desativação.
Recebimento de Senha
Fluxo Primário
1- Usuário clica em “Esqueci Senha”
2- Usuário digita e-mail
3- Validação de e-mail válido
4- Envia senha para e-mail
Fluxo Secundário
1- No passo 3, se usuário não digitar e-mail inválido, retornará para passo 2.
Após o Levantamento dos fluxo passou-se então a pensar na modelagem da base de dados.
Para Machado (2010), a modelagem é um estudo das informações existentes em um contexto sob a
observação para a construção de um modelo de representação e entendimento do contexto.
Na Modelagem deve-se então:
 Observar os elementos de um ambiente;
 Observar os elementos de um ambiente;
 Elaborar conceitos sobre estes elementos;
 Caracterizá-los;
 Abstrair características;
 Reuni-los em conjuntos que os denominem;
 Representá-los;
 Defini-los
 Manipulá-los.
Tendo entendimento dos conceitos e preceitos da modelagem chegou-se ao seguinte Modelo Lógico.
Figura 7 Modelagem de Dados
Conclusões
Conclui-se que com a ideia inicial é possível contemplar não somente um simples varal de roupas, mas
também garagens, janelas, e outras áreas que necessitam de cobertura contra a chuva.
As tecnologias utilizadas possibilitam o desenvolvimento de uma solução de baixo custo, uma vez que foi
utilizado o microcontrolador Arduino e tecnologias de software de uso gratuito.
Como pontos positivos com o desenvolvimento de um projeto utilizando as tecnologias descritas, pode-se
destacar alguns itens: O aumento nos conhecimentos da linguagem C, seus tipos de dados e suas bibliotecas. Ampliação
de conhecimento na linguagem Java Script utilizando a aplicação WorkLight da IBM, a criação de um Web Service
desenvolvido na linguagem C#(Sharp). O aumento no aprendizado em eletrônica, no uso de protoboard, multímetro,
fio-de-solda e componentes eletrônicos em geral.
A aquisição de conhecimentos na tecnologia Arduino e a ampliação de horizontes em relação a
desenvolvimento de sistemas, pois com o desenvolvimento de softwares para microcontroladores, um novo leque de
opções para a criação de soluções se abre.
Os objetivos foram parcialmente alcançados conforme a equipe havia elaborado, somente foi excluído do projeto
inicial, a possibilidade do usuário interagir com a cobertura via SMS, devido ao alto custo e a pouca funcionalidade,
entre tanto não impossibilita ser uma futura implementação caso o usuário solicitar. Pois a ideia é exatamente essa, um
projeto versátil, afim de se adaptar a qualquer costume, ou preferência do cliente. Assim, com o foco no requisito do
cliente, fará com que o projeto construa seu espaço no mercado de inovações atual.
Referências
ABREU, Mauricio Pereira de, Projeto de Banco de Dados: Uma Visão Prática, Érica, 2010.
MCROBERTS, Michael. Arduino Básico. Novatec Editora Ltda. São Paulo, 2011.
BANZI, Massimo. Primeiros Passos com o Arduino. Novatec Editora Ltda. São Paulo, 2012.
LARMAN, Craig. Utilizando UML e Padrões. Porto Alegre: Bookman, 2007.
MACHADO, Felipe Nery Rodrigues, Projeto de Banco de Dados: Uma Visão Prática, Érica, 2010
SOMMERVILLE, Ian. Engenharia de software, 8ª ed. São Paulo: Pearson, 2007.
TAVARES, Luis Antônio. Uma solução com Arduino para controlar e monitorar
processos industriais. Artigo disponível em: < www.inatel.br/pos/index.php/down
loads/doc.../26-luis-tavares-arduino> Acesso em: 10 de maio 2014.
Arduino Ethernet Shield. Disponível em: <http://www.arduino.cc/en/Main/Arduino
EthernetShield> Acesso em: 10 de maio 2014.
LEMOS, Manoel. Conheça os Shields e incremente seu Arduino com eles, 2014. Disponível em
<http://imasters.com.br/desenvolvimento/conheca-os-shields-e-incremente-seu-arduino-com-eles> Acesso em 17 de
maio de 2014.
Introdução a Domótica. Disponível em: <http://www.din.uem.br/ia/intelige/domoti
ca/int.htm> Acesso em 17 de maio de 2014.
Wikipédia. Domótica Disponível em <http://pt.wikipedia.org/wiki/Dom%C3%B3tica> Acesso em 17 de maio de 2014.
Automação Industrial – Definição e História, 2013. Disponível em: <http://blog.comatreleco.com.br/automacaoindustrial-historia/> Acesso em 17 de maio de 2014.
www.berginsight.com/ Acesso em 24 de setembro de 2014.
Mercado da Automação Residencial sofre um grande boom, Disponível em
http://www.obra24horas.com.br/entrevistas/thales-cavalcanti-17> Acesso em 24 de setembro de 2014.
<
Tutorial
Sensor
Magnético/Reed
Switch
com
Arduino,
2011.
Disponível
em
<http://engcomper.blogspot.com.br/2011/09/tutorial-sensor-magnetico-com-arduino.html> Acesso em 3 de maio de
2014.
Tutorial: Como utilizar o Sensor de Chuva com Arduino, 2012 Disponível em <
http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-sensor-de-chuva-com-arduino> Acesso em 3 de maio
de 2014.
Download

utilizando arduino e aplicativo mobile para automatização de