Você está na página 1de 45

Centro Estadual de Educação Tecnológica Paula Souza

GOVERNO DO ESTADO DE SÃO PAULO


Etec “JORGE STREET”

TRABALHO DE CONCLUSÃO DO CURSO TÉCNICO EM TELECOMUNICAÇÕES

DOMOCONTROL

Bruno Alencar
David Dias Hernandes
Mauro Pereira da Silva Filho
Samy Sabe El Aish
Vinicius Silva Santos

Professor(es) Orientador(es):
Luiz Carlos

São Caetano do Sul / SP


2013
DOMOCONTROL

Trabalho de Conclusão de Curso


apresentado como pré-requisito para
obtenção do Diploma de Técnico em
___________________.

São Caetano do Sul / SP


2013
Dedicamos este projeto a nossas famílias, a todos os professores
que passaram por nós até aqui e a toda turma do 4ºFN de
telecomunicações da Etec Jorge Street.
AGRADECIMENTOS
“A simplicidade é o ultimo grau da sofisticação”
Leonardo Da Vinci
RESUMO

O presente projeto tem como objetivo desenvolver um controle residencial, no qual


se faz possível controlar sistemas básicos de uma residência como iluminação, ar
condicionado e até mesmo um portão de garagem, tudo isso por meio de um
smartphone com sistema operacional Android utilizando como meio de transmissão
Bluetooth e uma interface micro controladora Arduino.

Palavras-chave: Domótica – Arduino – Bluetooth – Android


ABSTRACT

This project aims to develop a home control, which makes it possible to control basic
systems of a residence as lighting, air conditioning and even a garage door, all
through a smartphone with Android operating system as a means of using Bluetooth
transmission interface and a microcontroller Arduino.

Keywords: (Home Automation - Arduino - Bluetooth - Android)


LISTA DE FIGURAS

Figura 1 – Redes Bluetooth ...................................................................... ................14


Figura 2 – Protocolo Bluetooth ................................................................. ................15
Figura 3 - Arduino UNO..............................................................................................17
Figura 4 - Arduino UNO - Entradas............................................................................18
Figura 5 - IDE Arduino................................................................................................20
Figura 6 - Logo Android..............................................................................................21
Figura 7 - Logo App Inventor......................................................................................22
Figura 8 - Tela do App Inventor..................................................................................24
Figura 9 - Paleta do App Inventor...............................................................................25
Figura 10 - Tela Visualizador e Componentes...........................................................26
Figura 11 - Tela do App Blocks Editor........................................................................27
Figura 12 - Detalhe da tela App Blocks Editor............................................................28
Figura 13 - Emulador do App Inventor.......................................................................28
Figura 14 - Diagrama em blocos do funcionamento do projeto..................................29
Figura 15 - Tela inicial do aplicativo DOMOCONTROL.............................................30
Figura 16 - Tela de Login do aplicativo DOMOCONTROL.........................................31
Figura 17 - Tela Painel de Controle do aplicativo DOMOCONTROL.........................31
Figura 18 - Módulo Bluetooth.....................................................................................32
Figura 19 - Destaque de o Botão Ligar......................................................................34
Figura 20 - Destaque de o botão Desligar..................................................................35
Figura 21 - Testes com LED.......................................................................................36
Sumário

Introdução ................................................................................................. ................8


1 – OBJETIVO........................................................................................... ................9
1.1 – Objetivos Gerais ............................................................................... ................9
1.1.1 – Objetivos Especificos ............................................................. ................9
1.2 - Justificativa.........................................................................................................10
1.3 - Metodologia........................................................................................................10
1.4 - Organização do Trabalho...................................................................................11

2 – Revisão Bibliográfica .......................................................................... ................12


2.1 - Bluetooth Introdução..........................................................................................12
2.1.1 - O que é o Bluetooth..............................................................................12
2.1.2 - Como funciona......................................................................................13
2.1.3 - Protocolos de transporte, Middleware e de aplicação..........................14
2.2 - Arduino Introdução.............................................................................................16
2.2.1 - Arduino UNO - Hardware.....................................................................16
2.2.2 - Arduino - Software................................................................................19
2.4 - Google Android OS............................................................................................21
2.4.1 - Google App Inventor.............................................................................22

3 – Metodologia Proposta......................................................................... ................29


3.1 - Aplicativo de controle Android - DOMOCONTROL............................................29
3.1.1 - Módulo Bluetooth..................................................................................32
3.1.2 - Firmware do Arduino............................................................................32

4 – Resultados Obtidos ............................................................................ ...............36


Conclusão ................................................................................................ ................38
Referências .............................................................................................. ................40
Apêndice A ............................................................................................... ................41
Apendice B............................................................................................................................42
8

Introdução

Atualmente, com o avanço da tecnologia e um estilo de vida cada vez mais


acelerado, as inovações tecnológicas tem tornado a vida muito mais pratica,
facilitando até mesmo as atividades mais simples de uma casa, como controlar o ar
condicionado, apagar as luzes, abrir e fechar um portão elétrico. Seguindo esse
conceito, muitas pessoas têm procurado por esse tipo de segmento ainda pouco
disseminado no Brasil: o da domótica. Segundo Roque (2008), domótica é a
utilização simultânea da eletricidade, da eletrônica e das tecnologias da informação
no ambiente residencial, permitindo realizar a sua gestão, local ou remota, e oferece
uma vasta gama de aplicações integradas nas áreas da segurança, conforto,
comunicação e gestão de energia. A etimologia do termo domótica é a junção das
palavras domus (residência) com robótica (controle automatizado de algo).
Apesar de todos os benefícios, a aplicação de um sistema residencial automatizado
ainda é visto no Brasil como um artigo de luxo por ser amplamente empregado em
casas e apartamentos de alto padrão, tendo em vista a comodidade, mobilidade e
praticidade da domótica assim como a valorização do imóvel, o presente trabalho foi
estruturado para atender os objetivos a seguir.
9

1 – OBJETIVO

Nos dias de hoje é possível a utilização de tablets e smatphones , integrados a um


sistema próprio, para controlar ambientes residências. O principal objetivo deste
projeto esta relacionado ao controle de sistemas de iluminação, ar condicionado e
portão elétrico de uma residência através de um smartphone com sistema
operacional Android.
O diferencial deste projeto está nas tecnologias empregadas para tal função: a
primeira delas, a tecnologia Bluetooth muito utilizada em redes WPAN – Wireless
Personal Area Network (Rede de área pessoal sem fio) empregada em áreas de
pequenas distancia. A segunda é a utilização de uma plataforma Arduino, tecnologia
open source (código aberto) muito utilizada no ambiente acadêmico. A terceira é o
App Inventor um sistema online onde se faz possível de maneira rápida e simples
criar aplicativos para smartphone com sistema operacional Android.

1.1 – Objetivos Gerais

 Desenvolver um aplicativo para funcionar em smartphones e/ou tablets com o


sistema operacional Android, capaz de se comunicar via sinal Bluetooth com a
interface que controlara os dispositivos finais.
 Desenvolver um firmware para a placa microcontroladora Arduino comunicar-
se com o smartphone e/ou tablet Android utilizando um módulo Bluetooth.

1.1.1 – Objetivos Específicos

 Fornecer uma nova alternativa, simples e barata para a automação


residencial.
 Utilizar tecnologias de baixo custo e open source.
 Disponibilizar um estudo sobre controle residencial.
10

1.2 - Justificativa

As soluções atuais para a automação residencial demandam um alto custo para sua
implementação. Recursos como controle de iluminação, controle de temperatura de
ambientes, acionamento elétrico de persianas, janelas e fechaduras, são exemplos
do que pode ser feito com essa tecnologia.
Segundo estimativa da Associação Brasileira de Automação Residencial (Aureside),
os preços desses recursos caíram pela metade nos últimos quatro anos. “A
automação custava cerca de 5% do valor do imóvel. Agora representa 3%”.(LEAL,
2011).
Porem, mesmo com essas quedas de preços, o custo para se ter uma casa
automatizada ainda é muito alto quando se trata de uma automação simples para
uma residência de classe média, visto que essa classe, ainda não vê com bons
olhos a automação residencial devido justamente ao seu alto investimento.
Pensando nisso propor soluções simples e de baixo custo como alternativa para
pequenas e médias residências ou comércios é uma grande motivação.
Portanto, tendo em vista o amplo mercado, o presente trabalho visa disponibilizar
uma solução de baixo custo e simples de ser aplicada para tal problema.

1.3 - Metodologia

No desenvolvimento do trabalho, são apresentadas as principais tecnologias


utilizadas no projeto a ser implementada, a forma de comunicação entre elas, além
da justificativa da necessidade do desenvolvimento do projeto proposto.
Feita a pesquisa, foi realizada uma proposta para a resolução dos problemas
existentes, resultando no desenvolvimento do protótipo testado. Em suma:
 Abordagem dos problemas;
 Estudo das possibilidades de resolução dos problemas;
 Estudo de tecnologias existentes para resolver os problemas em questão,
senão todo, parte dele;
 Apresentação de um novo protótipo;
 Teste;
11

1.4 - Organização do Trabalho

Primeiro capítulo – Objetivo, é efetuado uma breve introdução e abordagem das


tecnologias empregadas assim como uma breve síntese dos problemas.

Segundo capítulo – Revisão Bibliográfica, traz uma breve revisão teórica dos
assuntos pertinentes para o entendimento da metodologia proposta.

Terceiro capítulo – Metodologia Proposta, são o desenvolvimento e execução do


trabalho proposto.

Quarto capítulo – Resultados e Conclusões, são efetuados comentários conclusos a


respeito dos resultados encontrados e deixando-se novas propostas para futuros
trabalhos.
12

2 – REVISÃO BIBLIOGRÁFICA

Este capítulo aborda de maneira sucinta os assuntos pertinentes para o


entendimento do trabalho.

2.1 – Bluetooth Introdução

O Bluetooth é uma tecnologia Wireless ou seja, de comunicação sem fio, que nos
permite trocar dados entre computadores, tablets, smartphones e afins, além de
conectar periféricos como mouse, teclados, fones de ouvido, impressoras entre
outros, por ondas de rádio. Foi desenvolvido com o intuito de possibilitar dispositivos
de se interligarem de maneira rápida, simples e sem uso de cabos, bastando apenas
à proximidade dos mesmos.

2.1.1 – O que é o Bluetooth?

Bluetooth é um padrão global de comunicação sem fio operante em redes WPAN


(Wireless Personal Area Network) que nada mais são do que redes pessoais de
baixo alcance como em uma residencial por exemplo. O Bluetooth exige baixo
consumo de energia e permite a transmissão de dados entre dispositivos desde que
estejam dentro dos limites de uma WPAN. Os dispositivos Bluetooth possuem dentro
de si embutido, um chip, que nada mais é que um micro rádio transceptor (Bluetooth
Radio).
Sua transmissão de dados é feita por meio de radiofreqüência, permitindo que um
dispositivo detecte o outro independente de suas posições, sendo necessário como
dito anteriormente que ambos apenas estejam dentro do limite de proximidade.
O protocolo Bluetooth opera na faixa de licença-livre ISM (Industrial, Scientific, and
Medical) em 2,45 gigahertz. Por ser uma faixa de freqüência baixa podendo sofrer
interferência de outros protocolos que operam na mesma, afim de evitar que isso
aconteça o Bluetooth divide a faixa em 79 canais e muda de canal até 1600 vezes
por segundo.
Para atender o maior numero possível dos mais variados tipos de dispositivos, o
alcance máximo do Bluetooth é dividido em três classes sendo elas:
13

 Classe 1 – potência máxima de 100 mW (miliwatt), alcance de até 100


metros;
 Classe 2 – potência máxima de 2,5 mW (miliwatt), alcance de até 10
metros;
 Classe 3 – potência máxima de 1 mW (miliwatt), alcance de até 1
metro.

É de grande importância saber que apesar das delimitações, dispositivos de classes


diferentes se comunicam entre si sem qualquer problema, bastando apenas
respeitar o limite do que possui um menor alcance.

2.1.2 – Como Funciona

O Funcionamento do Bluetooth é bastante simples, claro, esse é foi um dos objetivos


de seus desenvolvedores. Quando dois ou mais dispositivos sem comunicam por
meio de uma conexão Bluetooth, eles formam uma rede denominada piconet. Sendo
nesta comunicação o dispositivo que inicio a conexão o master (mestre) da rede, e
os demais dispositivos por sua vez se tornam slave (escravos). O master é como o
administrador da rede, e cabe a ele o papel de regular transmissão de dados e o
sincronismo entre os dispositivos na rede.
Cada rede piconet pode suportar no máximo até 8 dispositivos, sendo um master e
os demais slaves, no entanto uma rede Bluetooth não se limita apenas a uma única
piconet, é possível elevar o numero de dispositivos a partir da sobreposição de
piconets.
Resumindo este procedimento consiste em fazer a comunicação de uma piconet
com outra que esteja nos limites de alcance, esta rede por sua vez é denominada
scatternet. Observe que um dispositivo master pode fazer parte apenas de uma
piconet, no entanto um slave pode ocupar varias scatternets ao mesmo tempo.
14

Figura 1 - REDES BLUETOOTH

Fonte: Webtronico Blog

Para que cada dispositivo na rede saiba quais outros fazem parte de sua piconet, é
necessário um método de identificação. Para isso um dispositivo envia um sinal
denominado inquiry, os dispositivos que recebem este sinal, respondem com um
pacote FHS (Frequency Hopping Synchronization), informando a sua identificação e
os dados de sincronização da piconet. Com base nestas informações, o dispositivo
pode emitir um sinal chamado page para estabelecer uma conexão com outro
dispositivo.
Como uma das principais vantagens da tecnologia Bluetooth é oferecer economia de
energia, um sinal denominado scan é utilizado para fazer com que os dispositivos
que estiverem ociosos entrem em stand-by poupando energia. Todavia, dispositivos
neste estado são obrigados a “despertar” periodicamente para checar se há outros
dispositivos tentando uma conexão.

2.2 – Protocolos de Transporte, Middleware e de Aplicação

Como toda tecnologia de comunicação, o Bluetooth precisa de uma série de


protocolos para seu funcionamento, sendo cada um a um fim específico. Dentre os
quais serão explicados os mais importantes os de transporte, que são divididos
basicamente nas seguintes camadas:
15

 RF (Radio Frequency) – como o próprio nome indica, é a camada que lida


com os aspectos relacionados ao uso de radiofreqüência;
 Baseband - camada que determina como os dispositivos localizam e se
comunicam com outros aparelhos via Bluetooth. É nesta camada que se
define como dispositivos master e slave se conectam dentro de uma piconet
por exemplo;
 LMP (Link Manager Protocol) – esta camada responde por aspectos da
comunicação em si, lidando com parâmetros de autenticação, taxas de
transferência de dados, criptografia, níveis de potência, dentre outros;
 HCI (Host Controller Interface) – esta camada disponibiliza uma interface de
comunicação com hardware Bluetooth, proporcionando interoperabilidade
entre distintos dispositivos;
 L2CAP (Logical Link Control and Adaptation Protocol) – esta camada
serve de ligação com camadas superiores e inferiores, lida com os
parâmetros de QoS (Quality of Service), dentre outros.
 Podemos encontrar ainda os protocolos middleware, que possibilitam
compatibilidade com aplicações já existentes por meio do uso de protocolos e
padrões de outras entidades, como o IP (internet protocol), o WAP (Wireless
Application Protocol), o PPP (Point-to-Point Protocol) e o OBEX (Object
Exchange).

Figura 2 - PROTOCOLO BLUETOOTH

Fonte: Soft.JPG
16

2.3 – Arduino Introdução

O projeto Arduino iniciou-se na cidade de Ivrea, Itália, em 2005, com o intuito de


interagir em projetos escolares de forma a ter um orçamento menor que outros
sistemas de prototipagem disponíveis na época. Seu sucesso foi sinalizado com o
recebimento de uma menção honrosa na categoria “Comunidades Digitais” em 2006,
pela Prix Ars Electronica, além da marca de mais de 50.000 placas vendidas até
outubro de 2008.
O Arduino é uma plataforma de prototipagem eletrônica de hardware livre, projetada
com um microcontrolador “Atmel AVR” de placa única, com suporte de entrada/saída
embutido, uma linguagem de programação padrão, a qual tem origem em “Wiring”, e
é essencialmente C/C++. O objetivo do projeto é criar ferramentas acessíveis, com
baixo custo, flexíveis e fáceis de se usar por artistas e amadores. Principalmente
para aqueles que não teriam alcance aos controladores mais sofisticados e de
ferramentas mais complicadas.

2.3.1 - Arduino UNO - Hardware

O hardware do Arduino é muito simples, porém muito eficiente. Neste trabalho será
utilizada a placa Arduino UNO e por este motivo explicaremos mais afundo o poder
deste hardware, que é composto dos seguintes blocos:
 Fonte de alimentação – Recebe energia externa, filtra e converte a entrada
em duas tensões reguladas e filtradas;
 Núcleo CPU – Um computador minúsculo mas poderoso responsável por dar
vida à placa;
 Entradas e Saídas – A CPU vem completa com diversos “dispositivos”
embutidos dentro do chip;
 Pinos com Funções Especiais – Alguns pinos possuem hardware embutido
para funções especiais;
 Firmware – Programa que carregamos dentro da CPU com nossas instruções
de funcionamento da placa.
17

Figura 3 - Arduino Uno

Fonte: Robotizando

Fonte de alimentação – Esse bloco de eletrônica é responsável por receber a


energia de alimentação externa, que pode ter uma tensão de no mínimo 7 Volts e no
máximo 35 Volts e uma corrente mínima de 300 mA. A fonte filtra e depois regula a
tensão de entrada para duas saídas: 5 Volts e 3,3 Volts.

Núcleo CPU - O núcleo de processamento de uma placa Arduino é um micro


controlador, uma CPU, um computador completo, com memória RAM, memória de
programa (ROM), uma unidade de processamento de aritmética e os dispositivos de
entrada e saída. Tudo em um chip só. E é esse chip que possui todo hardware para
obter dados externos, processar esses dados e devolver para o mundo externo.
A linha utilizada é a ATMega, existem placas Arduinos oficiais com diversos modelos
desta linha, mas os mais comuns são as placas com os chips ATMega8,
ATMega162 e ATMega328p. Esses modelos diferem na quantidade de memória de
programa (ROM) e na configuração dos módulos de entrada e saída disponíveis.
18

Entradas e Saídas – O chip ATMega8 possui 28 pinos de conexões elétricas, 14 de


cada lado. É através desses pinos que podemos acessar as funções do micro
controlado, enviar dados para dentro de sua memória e acionar dispositivos
externos.
Os pinos deste micro controlador são divididos da seguinte maneira:
 14 pinos digitais de entrada e saída (programáveis);
 6 pinos de entrada analógica ou entrada/saída digital (programáveis);
 5 pinos de alimentação (gnd, 5V, ref analógica);
 1 pino de reset;
 2 pinos para conectar o cristal oscilador.

Figura 4 - Arduino Uno - Entradas

Fonte: Robotizando

Entradas Digitais – No total temos disponíveis 20 pinos que podem ser utilizados
como entradas digitais. Os 14 pinos digitais mais os 6 pinos analógicos, podem ser
programados para serem entradas digitais. Um programa pode saber se um pino
esta alimentado com 0 (zero) ou 5 Volts. A função de entrada digital apenas nos
mostra se está em 0 ou 1, sem tensão ou com tensão, para saber quanta tensão
está sendo aplicada no pino utilizamos as entradas analógicas.
19

Entradas Analógicas – No Arduino UNO temos 6 entradas analógicas. Como dito


anteriormente as entradas analógica tem a capacidade de medir a tensão aplicada.

 Pinos com funções especiais – Há pinos do Arduino que possuem


características especiais, que podem ser usadas efetuando as configurações
adequadas através do programa. São elas:
 PWM – tratado como saída analógica, na verdade é uma saída digital que
gera um sinal alternado (0 e1) onde o tempo que o pino fica em nível 1
(ligado) é controlado. É usado para controlar velocidade de motores, ou gerar
tensões com valores controlados pelo programa.
 Porta Serial USART – Pode utilizar um pino para transmitir e um pino para
receber dados no formato serial assíncrono (USART). Podemos conectar um
módulo de transmissão de dados via Bluetooth por exemplo e nos
comunicamos com o Arduino remotamente.
 Comparador Analógico – Podemos utilizar dois pinos para comparar duas
tensões externas, sem precisar fazer um programa que leia essas tensões e
as compare, sendo essa uma forma muito rápida de comparar tensões e é
feita pelo hardware sem envolver programação.
 Interrupção Externa – Podemos programa um pino para avisar o software
sobre alguma mudança em seu estado.
 Porta SPI – É um padrão de comunicação serial Síncrono, bem mais rápido
que a USART. É nessa porta que conectamos cartões de memória (SD) e
muitas outras coisas.

2.3.2 – Arduino - Software

Com relação ao software na plataforma do Arduino, podem-se destacar dois


assuntos: o ambiente de desenvolvimento integrado do Arduino e o software
desenvolvido para enviar a placa. O ambiente de desenvolvimento do Arduino é um
compilador gcc (C e C++) que usa uma interface gráfica construída em Java.
Basicamente se resume a um programa IDE muito simples de se utilizar e de
estender com bibliotecas que podem ser facilmente encontradas na internet. As
20

funções da IDE Arduino são basicamente duas: Permitir o desenvolvimento de um


software e enviá-lo a placa para que possa ser executado.
Por ser uma aplicação open source, é totalmente gratuito e não necessita instalação
bastando somente fazer o download e abrir o IDE para começar a utilizar.

Figura 5 - IDE Arduino

Fonte: Robotizando

Ao abrir o IDE Arduino, temos a Figura 5 como tela inicial, que tem presente as
seguintes funcionalidades:
 Menu Principal - Nele estão todas as funções da IDE, como gerenciamento
de arquivos, funções de configuração entre outras;
 Barra de Botões – São os botões de atalho que ficam abaixo do menu
principal, facilitando e agilizando o trabalho do desenvolvedor;
 Área de Programação – Neste espaço em branco o programa a ser enviado
para a placa é escrito;
 Console do Compilador – Neste espaço são apresentadas todas as
mensagens do compilador, que são tanto mensagens de informação ou aviso
sobre erros no programa;
21

 Barra de Estado – informa qual placa Arduino foi configurada para uso no
momento.

É um software extremamente simples de se trabalhar, é esquematizado para


introduzir a programação a usuários não familiarizados com a programação de
softwares.

2.4 – GOOGLE ANDROID OS

O Android, como a plataforma também é chamada, é um conjunto completo de


softwares para dispositivos móveis que inclui sistema operacional e importantes
aplicativos. É um projeto de código aberto e foi idealizado para aparelhos com
especificações diversas (OHA, 2010).

Figura 6 - Logo Android

Fonte: Giantbomb

Baseado no sistema operacional Linux, o Android é uma plataforma de


desenvolvimento para dispositivos móveis, que vem mexendo com o mercado da
telefonia, por ser um sistema que visa fornecer uma plataforma única, que poderá
ser instalado em qualquer dispositivo fornecido por fabricantes que pertencem a
OHA. Sua arquitetura possui conceitos de integração e flexibilidade. Aplicativos
fornecidos nativamente com o sistema podem ser substituídos por aplicações
22

customizadas, que poderão interagir ou não com outras aplicações nativas do


sistema. Essa flexibilidade torna-se interessante para os fabricantes de celulares,
pois é possível inserir alguma forma de marketing na interface com o usuário, pois
seu código fonte é de livre acesso a comunidade.

2.4.1 - Google APP Inventor

O Google APP Inventor é uma ferramenta desenvolvida pelo Google Labs, que
permite a criação de aplicativos para dispositivos moveis que rodam o sistema
operacional Android, sem que seja necessário conhecimento em programação.

Figura 7 - Logo App Inventor

Fonte:Showmetech

Foi depois da criação cedida pelo Google ao MIT (Massachusetts Institute of


Technology),a ferramenta foi disponibilizada para testes em 12 de julho de 2010 e
teve seu lançamento oficial em 15 de dezembro de 2010 um ano depois foi cedido
ao MIT.
Para o desenvolvimento do APP Inventor o Google teve como inspiração uma
pesquisa em informática educativa feita pela própria empresa. Com uma interface
simples e fácil de usar, o programa foge das linhas de programação normal e
possibilita até mesmo usuários comuns de lançarem seus aplicativos. Graças ao
recurso drag and drop, a programação acontece de forma simples e intuitiva. É
23

possível criar aplicativos simples, mas que envolvem recursos multimídia com
eventos, sons, vídeos, uso da câmera ou uso dos players do sistema para
reprodução de áudio ou vídeo. Ainda é possível utilizar o Bluetooth e o wifi, além de
incluir animações e até o uso de sensores do aparelho.

O desenvolvimento das aplicações é baseado em três ferramentas:


 App Inventor Designer
 App Inventor Blocks Editor
 App Inventor Emulador

App Inventor Designer – É organizada de modo bastante semelhante às IDEs mais


comuns, com algumas diferenças que visam uma otimização do trabalho e melhor
entendimento pelo usuário. No lugar de uma arvore de arquivos do lado esquerdo da
tela, por exemplo, a aplicação apresenta elementos que podem ser utilizados na
criação das aplicações, bastando um simples comando de “clique e arraste” para
inserir o item desejado no projeto.
24

Figura 8 - Tela do App Inventor

Fonte: Tecmundo

Paleta – A coluna a esquerda chamada “Palette” (Paleta), é onde ficam todos os


componentes utilizáveis num aplicativo. Esta paleta é dividida em 10 seções para
facilitar a localização dos componentes nela incluso, que vão dos básicos (botões,
imagens e textos) até uma seção com Bluetooth, acesso a internet dentre outras.
Para a utilização de um desses componentes basta apenas clicar sobre ele segurar
e arrastar para cima da coluna, chamada “Viewer” (visualizador).
25

Figura 9 - Paleta do App Inventor

Fonte: Tecmundo

Visualizador – Nesta coluna, o usuário pode organizar cada um de seus objetos,


montando o aplicativo como ele deve ser. Nada mais é do que uma tela simulando a
de um smartphone com o sistema operacional Android, apresentando uma
visualização bem próxima da final ao programador.
Todos os itens adicionados no visualizador são automaticamente apresentados na
coluna denominada “Components” (componentes).
26

Figura 10 - Tela Visualizador e Componentes

Fonte: Tecmundo

Componentes – Nesta coluna, todos os itens adicionados ficam devidamente


armazenados, sejam eles visíveis ou não, na ordem em que é adicionada facilitando
a seleção dos mesmos.
Todos os itens ganham nomes padrões, e nesta coluna é possível e indicado
renomear cada item, para facilitar na hora de organizar a programação. Clicando
sobre os itens expostos na coluna componentes é possível editar com mais detalhes
na ultima coluna, denominada “Properties” (Propriedades).

Propriedades – Esta é a coluna mais importante do App Inventor Designer, nela


podem-se definir tamanhos, conteúdos dos textos, dos botões, caixas de
informação, tamanho das imagens. Cores, largura e altura de objetos, ou seja pode
simplesmente editar tudo na ferramenta, e tudo que é modificado nesta coluna,
automaticamente se modifica também na coluna Viewer, permitindo assim ter noção
de como esta ficando a aplicação.
27

App Inventor Blocks Editor

Figura 11 - Tela do App Blocks Editor

Fonte: Tecmundo

Antes de mais nada para utilizar esta parte do App Inventor, se faz necessário
instalar e configurar alguns aplicativos. Um deles é o Java, fundamental para o
andamento da ferramenta, o outro é o aplicativo de desenvolvimento do App
Inventor disponível para Windows, Mac OS X e GNU/Linux, ambos podem ser
baixados no próprio site do App Inventor.
No App Inventor Blocks Editor é onde a programação em si é feita. Acessando esta
ferramenta aparecera à seguinte tela (Figura 11), no menu na lateral esquerda
fornece duas abas de comandos: Built-in (internos) e My Blocks (Meus Blocos),
todos os itens adicionados anteriormente apareceram na aba My Blocks, na aba
Built-in apareceram comandos lógicos, matemáticos, comandos de execução, a
combinação de um ou mais comandos das duas abas formam uma ação completa.
Para facilitar o desenvolvimento e construção das ações, os comandos são todos
estruturados como peças de quebra-cabeças, fazendo com que apenas funções
compatíveis se encaixem.
28

Figura 12 - Detalhe da Tela App Blocks Editor

Fonte: Tecmundo

Outra função muito interessante é o App Inventor Emulator, um emulador baseado


em Java que permite ao usuário criar um smartphone genérico com Android, assim é
possível testar todos os seus aplicativos antes mesmo de baixá-los para o
smartphone.
Assim como na tela Designer e no Blocks Editor, todas as alterações feitas são
automaticamente visualizadas em tempo real no emulador.

Figura 13 - Emulador do App Inventor

Fonte: Tecmundo
29

3 – METODOLOGIA PROPOSTA

Neste capitulo será exposto o desenvolvimento e a execução do trabalho proposto.


Nele constam os materiais utilizados para o desenvolvimento do mesmo, a forma
como serão montados e como trabalham juntos, assim como os testes feitos.
A construção deste projeto foi dividida em três partes: a primeira se trata do
desenvolvimento do aplicativo de controle para o sistema Android com a utilização
da ferramenta App Inventor.; a segunda etapa trata-se da programação do firmware
e hardware Arduino; a terceira por sua vez, é a montagem de todos os componentes
(a lista de materiais assim como seus valores se encontram no apêndice A desta
monografia) e testes.

3.1 - Aplicativo de Controle Android - DOMOCONTROL

Com o auxilio da ferramenta App Inventor, foi criado um aplicativo para ser possível
o controle dos dispositivos finais como iluminação, ar condicionado, entre outras.
Este aplicativo funcionara como uma interface usuário e controlador.

Figura 14 - Diagrama em Blocos do Funcionamento do Projeto

Fonte: Elaborada pelo autor


30

No Google App Inventor o desenvolvimento do aplicativo foi dividido em três


Screens (Telas):
 Tela Inicial - É a mais simples de todas, possui três botões sendo eles:
Iniciar; Sobre, e o ultimo oculto atrás de uma imagem;

Figura 15 - Tela Inicial do Aplicativo DOMOCONTROL

Fonte: print screen da aplicação no smartphone

 Tela de Login – Como o próprio nome diz é a tela onde é necessário fazer o
logon para a próxima tela, pode-se dizer que está uma tela de segurança;
31

Figura 16 - Tela de Login do Aplicativo DOMOCONTROL

Fonte: print screen da aplicação no smartphone

 Tela de Painel de Controle – Nesta tela tudo acontece, é nela que é feita a
conexão com a interface controladora via Bluetooth, e é nela também que o
controle é feito.

Figura 17 - Tela Painel de Controle do Aplicativo DOMOCONTROL

Fonte: print screen da aplicação no smartphone


32

O aplicativo DOMOCONTROL permite o usuário através de uma interface gráfica


bem elaborada, enviar caracteres através do Bluetooth para a interface
controladora (Arduino). Caracteres que tem a função de ligar e desligar os
dispositivos finais como uma lâmpada, por exemplo, o caractere “A” para ligar, e
o “1” para desligar.

3.1.1 – Modulo Bluetooth

O Arduino UNO, mais o módulo Bluetooth formam neste projeto a interface


controladora. O módulo Bluetooth tem como objetivo se comunicar com o
smartphone através de radiofreqüência, o módulo Bluetooth recebe do
smartphone os caracteres enviados através do aplicativo DOMOCONTROL e os
envia para o Arduino UNO.
Figura 18 - Módulo Bluetooth

Fonte: Robotsperu

3.1.2 – Firmware do Arduino

Para que o Arduino possa receber, compreender e o mais importante interpretar


os caracteres recebidos do modulo Bluetooth é preciso desenvolver uma
firmware.
33

O principal objetivo deste firmware é interpretar os dados recebidos, dados esses


que são enviados do aplicativo Android DOMOCONTROL, para o modulo
Bluetooth que os recebe e os enviam para o Arduino, ai entra o papel
fundamental deste firmware. Que “pega” os caracteres e os indicam para o
Arduino qual tem a função de ligar e qual a função de desligar.
Todo o firmware é desenvolvido na IDE Arduino e é programada nas linguagens
C/C++, é extremamente simples foram utilizadas apenas as funções básicas de
um programa, como o if (se) e o else (senão) . O firmware deste trabalho pode
ser encontrado no apêndice B.

Tabela de caracteres validos no firmware

Caracteres Válidos
Móvel da casa Ligar Desligar

Cozinha 1 A
Sala 2 B
Quarto 3 C
Garagem 4 D
Portão 5 E
Luz Externa 6 F
Ar condicionado 7 G

Fonte: elaborada pelo autor

A tabela acima é muito simples de interpretar, nela temos os locais de uma


residência que serão automatizados, sendo que cozinha, sala, quarto e garagem
são luzes que serão acionadas. Temos também os caracteres validos dentro do
firmware, que funciona da seguinte forma, quando apertamos o botão ligar no
smartphone na aba cozinha (circulado em vermelho na Figura 19) por exemplo.
34

Figura 19 - Destaque de o Botão Ligar

Fonte: elaborada pelo autor

O que acontece, conforme a tabela mostra é o seguinte: é enviado o caractere


“1” para o modulo Bluetooth por meio de radio freqüência que o repassa para o
Arduino que por sua vez, com o devido firmware gravado, interpreta este
caractere e lança em uma de suas saídas também definida no firmware, um sinal
digital (0 desligado ou 1ligado) neste caso o 1, esse sinal vai para um modulo
rele que funciona como a interface elétrica do projeto, este modulo transforma o
sinal digital em sinal elétrico, acendendo assim o dispositivo final, neste caso
uma lâmpada.
Para desligar, a lógica é a mesma só que obviamente deve ser acionado o botão
desligar no smartphone como visto na figura 20.
35

Figura 20 - Destaque de o botão desligar

Fonte: elaborada pelo autor

Pressionado o botão desligar a única mudança com relação a ligar, é o caractere


enviado, desta vez é enviado o caractere “A” como observado na tabela. O
caminho percorrido é o mesmo, modulo Bluetooth, Arduino. No firmware esta
definida o caractere “A” como LOW ou seja ele desliga envia o sinal digital “0”
para o modulo rele, que por sua vez corta o sinal elétrico apagando nesse caso a
luz.
Como pôde ser observado, o funcionamento do firmware do Arduino é muito
simples, simplicidade essa que é um dos objetivos deste trabalho.
36

4 – Resultados Obtidos

Este trabalho se mostrou valido, já que os testes estabelecidos foram concluídos


com êxito. O teste inicial com LED funcionou corretamente, como pode ser
observado na figura 21.

Figura 21 - Testes com LED

Fonte: elaborada pelo autor

Nos testes foi possível observar também, que o aplicativo DOMOCONTROL se


mostrou em perfeito funcionamento, capaz de se comunicar com o modulo Bluetooth
e de enviar os caracteres estabelecidos de forma correta para o Arduino. O modulo
Bluetooth por sua vez, mostrou em alguns poucos momentos, problema na conexão
com o smartphone, sendo necessário tentar conectar duas a três vezes para
conseguir tal conexão.
37

O Arduino com a utilização do firmware criado, funcionou de forma correta, sendo


capaz de ler e interpretar os caracteres enviados do aplicativo no smartphone
Android, e executando assim sua função de ligar e desligar o LED, no caso do teste.
38

Conclusão

Atualmente, com o avanço da tecnologia as inovações tecnológicas tem


tornado a vida muito mais pratica, como a automação residencial (Domótica) por
exemplo, tema este do nosso estudo.
O trabalho se mostrou de grande valia, uma vez que atendeu as expectativas
funcionando corretamente nos testes com LED.
Os objetivos propostos inicialmente foram alcançados com sucesso. Foi
desenvolvido um controle residencial via smartphone de baixo custo e utilizando em
sua maioria tecnologias open source, o aplicativo para o smartphone assim como a
firmware para a placa Arduino, todos foram desenvolvidos, testados e concluídos.
A construção deste projeto foi dividida em três partes: a primeira se trata do
desenvolvimento do aplicativo de controle para o sistema Android com a utilização
da ferramenta App Inventor.; a segunda etapa trata-se da programação do firmware
e hardware Arduino; a terceira por sua vez, é a montagem de todos os componentes
e testes.
Os experimentos com LED obtiveram resultados esperados, o projeto em
questão conseguiu acende-los e apagá-los ou seja controlá-los. O teste de distancia
saiu como esperado alcançando a distancia limite do dispositivo sendo este de 10
metros, com uma ressalva, o teste foi estabelecido em uma residência onde mesmo
com as portas dos cômodos fechadas, não se encontravam obstáculos para a
transmissão do sinal entre os ambientes por possuir entre os mesmos um vão na
parte superior.
Experimentos em tomadas não foram feitos mas tais experimentos teriam sido
interessantes de serem executados, pois com eles teríamos a comprovação ou não
da hipótese de que é possível ligar e controlar quaisquer dispositivos ligados ou
plugados ao mesmo. Outro experimento interessante e que seria de grande valia,
porem não foi executado, seria a de conectar vários módulos Bluetooth entre si
numa topologia piconet ou até mesmo uma scatternet, para com isso obter um limite
muito maior de alcance (distancia) .
Para projetos futuros pode-se incrementar e desenvolver um aplicativo muito
mais completo como um botão apenas para ligar e desligar com alteração de cores
entre as ações, por exemplo quando estiver alguma luz acesa ela mostra o botão
39

azul e quando estiver apagada mostra o mesmo botão na cor vermelha, podem-se
também controlar por comando de voz as ações.
Recomenda-se também um mesmo controle residencial com a possibilidade
além de o Bluetooth, de controle pela internet, isso é possível com a criação de um
servidor local como o APACHE que é gratuito e uma pagina PHP muito semelhante
ao aplicativo, com isso a limitação de distancia simplesmente não existiria sendo
capaz de controlar uma residência de qualquer lugar do mundo. Esta se mostra uma
alternativa muito interessante e de baixo custo.
Por fim sugere-se utilizar uma placa Arduino com maior numero de portas de
entrada/saídas como o Arduino MEGA por exemplo que possui 54 portas. Sendo
assim possível controlar um numero muito maior de dispositivos. Ou até mesmo a
confecção de uma placa semelhante.
40

Referências

Daniel O. Basconcello Filho

http://www.robotizando.com.br/curso_arduino_o_que_e_arduino_pg1.php

Daniel O. Basconcello Filho

http://www.robotizando.com.br/curso_arduino_software_pg1.php

netfontes.com.br

Por 2012 Massachusetts Institute of Technology - http://appinventor.mit.edu/

Por Alexandre Guiss - http://migre.me/gI3Jt

Por Allan Romanato - http://migre.me/gI3WY

Por Ana Paula Pereira - http://www.baixaki.com.br/download/app-inventor.htm

Por Arduino e Cia - http://migre.me/gI3XR

Por Arduino Store - http://arduino.cc/en/Main/arduinoBoardUno

Por Bernardo Amaral - http://migre.me/gI45Y

Por Carlos Yassunori Kobayashi - http://migre.me/gI3Sm

Por Eduardo Karasinski - http://migre.me/gI3TS

Por Emerson Alecrim - http://www.infowester.com/bluetooth.php

Por Luiz Carlos Amariz - http://www.infoescola.com/tecnologia/bluetooth/

Por Pedro Pinto - http://migre.me/gI3Lb

Por Ricardo - http://www.superdownloads.com.br/download/81/app-inventor/

www.bluetooth.com
41

Apêndice A

Tabela com os materiais utilizados e os devidos valores.

Quantidade Descrição Valor Unidade Valor Total


1 Arduino UNO R$99,90 R$99,90
1 Modulo Bluetooth R$57,00 R$57,00
1 Protoboard R$14,00 R$14,00
7 LED R$0,23 R$1,61
7 Resistor de 1K R$0,10 R$0,70
1 Bateria de 9Volts R$11,90 R$11,90
1 Adaptador de Bateria de 9 Volts R$3,00 R$3,00
R$188,11
42

Apêndice B

Firmware do Arduino

// firmware DOMOCONTROL
// PROJETO DE CONCLUSÃO DE CURSO DE TELECOMUNICAÇÕES
// ETEC JORGE STREET
// desenvolvedores:
// Mauro Filho
// David Dias
// Bruno Alencar
// Samy Sabe El Aish
// Vinicius S.S.

void setup() //inicio do programa


{
pinMode(13,OUTPUT); // define pino 13 como saida
pinMode(12,OUTPUT); // define pino 12 como saida
pinMode(11,OUTPUT); // define pino 11 como saida
pinMode(10,OUTPUT); // define pino 10 como saida
pinMode(9,OUTPUT); // define pino 9 como saida
pinMode(8,OUTPUT); // define pino 8 como saida
pinMode(7,OUTPUT); // define pino 7 como saida
pinMode(6,OUTPUT); // define pino 6 como saida
Serial.begin(9600); // define a velocidade de comunicação com default
}
void loop() // inicio do loop
{
char c = Serial.read(); // define caractere como "c"

if(c == '1')digitalWrite(13,HIGH); // se caracter "c" for igual 1 saida 13 alta (liga)


if(c == '2')digitalWrite(12,HIGH); // se caracter "c" for igual 2 saida 12 alta (liga)
if(c == '3')digitalWrite(11,HIGH); // se caracter "c" for igual 3 saida 11 alta (liga)
if(c == '4')digitalWrite(10,HIGH); // se caracter "c" for igual 4 saida 10 alta (liga)
if(c == '5')digitalWrite(9,HIGH); // se caracter "c" for igual 5 saida 9 alta (liga)
if(c == '6')digitalWrite(8,HIGH); // se caracter "c" for igual 6 saida 8 alta (liga)
if(c == '7')digitalWrite(7,HIGH); // se caracter "c" for igual 7 saida 7 alta (liga)
if(c == '8')digitalWrite(6,HIGH); // se caracter "c" for igual 8 saida 6 alta (liga)

if(c == 'A')digitalWrite(13,LOW); // se caracter "c" for igual A saida 13 baixa (desliga)


43

if(c == 'B')digitalWrite(12,LOW); // se caracter "c" for igual B saida 12 baixa (desliga)


if(c == 'C')digitalWrite(11,LOW); // se caracter "c" for igual C saida 11 baixa (desliga)
if(c == 'D')digitalWrite(10,LOW); // se caracter "c" for igual D saida 10 baixa (desliga)
if(c == 'E')digitalWrite(9,LOW); // se caracter "c" for igual E saida 9 baixa (desliga)
if(c == 'F')digitalWrite(8,LOW); // se caracter "c" for igual F saida 8 baixa (desliga)
if(c == 'G')digitalWrite(7,LOW); // se caracter "c" for igual G saida 7 baixa (desliga)
if(c == 'H')digitalWrite(6,LOW); // se caracter "c" for igual H saida 6 baixa (desliga)

delay(1000); // define delay tempo de resposta em 1000ms


}

Você também pode gostar