UNIVERSIDADE FEDERAL FLUMINENSE ALEX VIZEU LOPES DE …€¦ · desenvolver um aplicativo para...
Transcript of UNIVERSIDADE FEDERAL FLUMINENSE ALEX VIZEU LOPES DE …€¦ · desenvolver um aplicativo para...
UNIVERSIDADE FEDERAL FLUMINENSE
ALEX VIZEU LOPES DE MELLO
AUTOMAÇÃO RESIDENCIAL UTILIZANDO O ARDUÍNO
Niterói
2016
ALEX VIZEU LOPES DE MELLO
AUTOMAÇÃO RESIDENCIAL UTILIZANDO O ARDUÍNO
Trabalho de Conclusão de Curso
submetido ao Curso de Tecnologia em
Sistemas de Computação da
Universidade Federal Fluminense como
requisito parcial para obtenção do título
de Tecnólogo em Sistemas de
Computação.
Orientador(a):
Bruno Dembogurski
NITERÓI
2016
Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF
M527 Mello, Alex Vizeu Lopes de
Automação residencial utilizando o Arduíno / Alex Vizeu Lopes
de Mello. – Niterói, RJ : [s.n.], 2016.
69 f.
Projeto Final (Tecnólogo em Sistemas de Computação) –
Universidade Federal Fluminense, 2016.
Orientador: Bruno Dembogurski.
1. Arduíno. 2. Automação residencial. 3. Android (Recurso
eletrônico). I. Título.
CDD 629.892
ALEX VIZEU LOPES DE MELLO
AUTOMAÇÃO RESIDENCIAL UTILIZANDO O ARDUÍNO
Trabalho de Conclusão de Curso
submetido ao Curso de Tecnologia em
Sistemas de Computação da
Universidade Federal Fluminense como
requisito parcial para obtenção do título
de Tecnólogo em Sistemas de
Computação.
Niterói, 20 de Dezembro de 2016.
Banca Examinadora:
_________________________________________
Prof. Marden Braga Pasinato, M.Sc
Universidade Federal do Rio de Janeiro - UFRJ
_________________________________________
Prof. Bruno José Dembogurski, D.Sc
Universidade Federal Rural do Rio de Janeiro - UFRRJ
Dedico este trabalho a mim mesmo, pois
embora muitos tenham me ajudado, cheguei
onde estou graças ao meu esforço.
AGRADECIMENTOS
Ao amigo Suemi Almeida, que atuou como
um co-orientador escolhido por mim neste
trabalho.
À Coordenadora do curso de Computação do
pólo de Três Rios Isabel Hortência, sempre
presente e disposta a sanar qualquer duvida.
Aos tutores do curso Roberto Yacoub,
Marcelo Tavares, Alexandre (Física), Rodrigo
(Matemática), Luiz Carlos, Aline Rodrigues e
André Luiz.
E aos amigos que fiz durante este curso e me
ajudaram nesta jornada de minha vida,
Audrey Henrique, Danilo do Nascimento,
Douglas Gonçalves, Guilherme
Przewodowski, Isabelle Vilela, Jaimar Soares,
Jonas Moreira, Jonatan Oliveira, Lucas
Chaves, Lucas Loreiro, Marco carvalho,
Nathã Muniz, Nicolas Assis, Samuel Braga,
Tarique Vieira, Wendel, Wesley Kopke.
Desculpe se me esqueci de alguém, mas fiz
esta lista as pressas com a ajuda do
Facebook.
RESUMO
O assunto principal falado neste trabalho é a Automação residencial. Em segundo plano é falado como o Arduíno, uma placa básica de robótica, pode ser utilizado para este fim. Para isso, inicialmente serão mostrados os conceitos básicos da automação residencial, em seguida o assunto tratado é um de seus pilares, a eletrônica, onde é conceituado um circuito eletrônico e mostrado seus componentes. Então, é apresentada a placa Arduíno sua composição e como pode ser programada. Serão mostradas as possíveis formas de se interagir com o usuário, se aprofundando em uma delas, que é através do Bluetooth, onde será ensinado como desenvolver um aplicativo para Android, usando o MIT AppInventor. E concluindo este trabalho será feito um projeto básico de automação, onde será automatizado um cômodo, controlando o acendimento de sua lâmpada além de vários aparelhos eletrônicos
Palavras-chaves: Automação residencial, Arduíno e Android.
LISTA DE ILUSTRAÇÕES
Figura 1: Esquema explicativo da automação . ......................................................... 13
Figura 2: Representações dos circuitos eletrônicos .................................................. 15
Figura 3: Resistores – Representações e exemplo. .................................................. 16
Figura 4: Tabela para cálculo da resistência ............................................................. 17
Figura 5: Diodo – Representação e exemplos alinhados. ......................................... 17
Figura 6: Transistor – Representações e exemplo .................................................... 18
Figura 7: Módulo relé ................................................................................................ 18
Figura 8: Buzzer ........................................................................................................ 19
Figura 9: Motor .......................................................................................................... 19
Figura 10: Servo motor .............................................................................................. 20
Figura 11: Display LCD 4x20 ..................................................................................... 21
Figura 12: LEDs ........................................................................................................ 21
Figura 13: LEDs infravermelhos. ............................................................................... 22
Figura 14: Cabo LED infravermelho .......................................................................... 22
Figura 15: Botão ........................................................................................................ 23
Figura 16: Potenciômetro – Funcionamento e exemplo ............................................ 24
Figura 17: Receptor infravermelho. ........................................................................... 24
Figura 18: Sensor de distância ultrassônico .............................................................. 25
Figura 19: Sensor de umidade e temperatura ........................................................... 25
Figura 20: Sensor de chuva ...................................................................................... 26
Figura 21: Sensor de luminosidade. .......................................................................... 26
Figura 22: Arduíno – Tipos de placas. ....................................................................... 27
Figura 23: Arduíno – Vista superior ........................................................................... 28
Figura 24: Compilador arduíno .................................................................................. 29
Figura 25: Exemplo de código – Blink ....................................................................... 31
Figura 26: Interação personalizada ........................................................................... 32
Figura 27: Ethernet shield ......................................................................................... 33
Figura 28: Código ethernet shield. ............................................................................ 34
Figura 29: Módulo bluetooth ...................................................................................... 34
Figura 30: Página inicial do site MIT AppInventor. .................................................... 36
Figura 31: MIT AppInventor – Tela de projetos ......................................................... 37
Figura 32: Tela inicial de criação de aplicativos ........................................................ 38
Figura 33: Componentes do MIT AppInventor ........................................................... 40
Figura 34: Tela de blocos .......................................................................................... 41
Figura 35: Menu Conectar (testando o aplicativo). .................................................... 43
Figura 36: MIT AI2 Companion ................................................................................. 43
Figura 37: Menu Compilar ......................................................................................... 44
Figura 38: Cômodo que será automatizado. ............................................................. 45
Figura 39: Circuito eletrônico do projeto .................................................................... 46
Figura 40: Circuito lâmpada ...................................................................................... 47
Figura 41: Código do arduíno – Parte 01. ................................................................. 51
Figura 42: Código do arduíno – Parte 02 .................................................................. 52
Figura 43: Código do arduíno – Parte 03 .................................................................. 53
Figura 44: Código do arduíno – Parte 04. ................................................................. 54
Figura 45: Visualizador do aplicativo ......................................................................... 56
Figura 46: Componentes do aplicativo – Parte 01 ..................................................... 57
Figura 47: Componentes do aplicativo – Parte 02 ..................................................... 58
Figura 48: Código do aplicativo – Configurando bluetooth – Parte 01 ...................... 59
Figura 49: Código do aplicativo – Configurando bluetooth – Parte 02 ...................... 60
Figura 50: Código do aplicativo – Aplicando efeito .................................................... 61
Figura 51: Código do aplicativo – Comandos bluetooth – Parte 01 ........................... 62
Figura 52: Código do aplicativo – Comandos bluetooth – Parte 02 ........................... 63
LISTA DE TABELAS
Tabela 1: Listagem dos códigos infravermelho do ar condicionado. ......................... 48
Tabela 2: Listagem dos códigos infravermelho da.Oi TV .......................................... 49
Tabela 3: Listagem dos códigos infravermelho da TV PHILIPS. ............................... 50
Tabela 4: Listagem dos códigos infravermelho do som VoxStorm. ........................... 51
LISTA DE ABREVIATURAS E SIGLAS
LCD – Liquid Crystal Display (Display de Cristal Líquido)
LED – Light emittent Diode (Diodo emissor de Luz)
MIT – Massachusetts Institute of Technology (Instituto de tecnologia de
Massachusetts - EUA)
LDR – Light Dependent Resistor (Resistor Dependente de Luz)
SUMÁRIO
RESUMO..................................................................................................................... 6
LISTA DE ILUSTRAÇÕES .......................................................................................... 7
LISTA DE TABELAS ................................................................................................... 9
LISTA DE ABREVIATURAS E SIGLAS .................................................................... 10
1 INTRODUÇÃO ................................................................................................... 13
2 CIRCUITO E COMPONENTES ELETRÔNICOS .............................................. 14
2.1 O CIRCUITO ELETRÔNICO ....................................................................... 15
2.1.1 OS COMPONENTES PRESENTES NO CIRCUITO ........................... 16
2.1.1.1 RESISTORES ................................................................................ 16
2.1.1.2 DIODOS ......................................................................................... 17
2.1.1.3 TRANSISTORES ........................................................................... 17
2.2 COMPONENTES DE SAÍDA ...................................................................... 18
2.2.1 RELÉ ................................................................................................... 18
2.2.2 BUZZER .............................................................................................. 19
2.2.3 MOTOR ............................................................................................... 19
2.2.4 SERVO MOTOR .................................................................................. 20
2.2.5 DISPLAY LCD ...................................................................................... 21
2.2.6 LED ...................................................................................................... 21
2.2.6.1 LED INFRAVERMELHO ................................................................ 22
2.2.6.2 CABO INFRAVERMELHO ............................................................. 22
2.3 COMPONENTES DE ENTRADA ................................................................ 23
2.3.1 BOTÃO ................................................................................................ 23
2.3.2 POTENCIÔMETRO ............................................................................. 24
2.3.3 RECEPTOR INFRAVERMELHO ......................................................... 24
2.3.4 SENSOR DE DISTÂNCIA ULTRASSÔNICO ....................................... 25
2.3.5 SENSOR DE TEMPERATURA E UMIDADE ....................................... 25
2.3.6 SENSOR DE CHUVA .......................................................................... 26
2.3.7 SENSOR DE LUMINOSIDADE ............................................................ 26
3 O ARDUÍNO ....................................................................................................... 27
3.1 HARDWARE ............................................................................................... 28
3.2 SOFTWARE ................................................................................................ 29
3.2.1 EXEMPLO DE CÓDIGO ...................................................................... 30
4 INTERAÇÃO COM O USUÁRIO ........................................................................ 32
4.1 INTERFACE PERSONALIZADA ................................................................. 32
4.2 INTRANET .................................................................................................. 33
4.3 BLUETOOTH .............................................................................................. 34
5 DESENVOLVENDO UM APLICATIVO COM O MIT APPINVENTOR................ 35
5.1 PRIMEIROS PASSOS ................................................................................ 36
5.1.1 BARRA DE MENU ............................................................................... 37
5.2 NOVO PROJETO ........................................................................................ 38
5.2.1 TELA DESIGNER ................................................................................ 39
5.2.2 TELA BLOCOS (PROGRAMAÇÃO) .................................................... 41
5.3 TESTANDO E EXPORTANDO O APLICATIVO ......................................... 42
6 PROJETO BÁSICO DE AUTOMAÇÃO RESIDENCIAL ..................................... 45
6.1 CIRCUITO ELETRÔNICO .......................................................................... 46
6.2 CÓDIGO DO ARDUÍNO .............................................................................. 48
6.3 O APLICATIVO DE INTERFACE ................................................................ 55
6.3.1 COMPONENTES DO APLICATIVO .................................................... 55
6.3.2 CÓDIGO DO APLICATIVO .................................................................. 59
CONCLUSÕES E TRABALHOS FUTUROS ............................................................. 64
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 65
15
1 INTRODUÇÃO
Este trabalho tem como tema principal a Automação Residencial,
mostrando como o Arduíno pode ser útil e pratico em seu desenvolvimento, uma vez
que a robótica vem se mostrando cada vez mais abrangente com as recentes e cada
vez mais freqüente novidades.
Muito se é falado sobre o assunto, mas quando se procura um material
definitivo sobre o assunto, não se encontra. Sempre é encontrado um conteúdo
disperso, sendo preciso fazer varias pesquisas e procurar em vários sites para
realizar um único projeto. Buscando reunir esse conteúdo, trazendo uma abordagem
bastante didática sobre o assunto, pretendo preencher essa lacuna e também servir
como um guia para quem pretende iniciar no assunto ou mesmo busca se
aprofundar. Então, vamos começar.
O primeiro passo a ser dado deve ser entender como funciona a
automação residencial. Para facilitar esta compreensão deve se analisar o esquema
a seguir:
Figura 1: Esquema explicativo da automação
16
Neste esquema, ao lado esquerdo encontram-se os sensores e
receptores, que captam os dados necessários e os enviam para um controlador
central, este controlador se comunica com o usuário do sistema através da interface
de interação, e após o usuário reagir, o controlador central recebe a resposta
enviada pela interface, ele se utiliza dos atuadores ou transmissores para realizar a
tarefa que foi ordenada.
No 2º Capitulo deste trabalho será falado sobre circuito e componentes
eletrônicos de entrada e saída de dados. Onde no esquema o circuito será a parte
física de todo o conjunto. Os componentes de entrada, representado pelos sensores
e receptores. E os componentes de saída, representados pelos atuadores e
transmissores.
No Capitulo 3, o assunto tratado será o Controlador Central, para ser mais
especifico, sobre o Arduíno, seus componentes e seu programa.
No Capitulo 4 será explicado como pode ser feita a comunicação com o
usuário, pelo lado do controlador central.
No Capitulo 5, será enfatizado um dos métodos explicado no capitulo
anterior, enfatizando a criação de um aplicativo Android, usando o MIT AppInventor.
No Capitulo 6 será sintetizado tudo o que foi falado até o momento, e
montaremos um projeto básico de Automação Residencial.
E finalizando, no Capitulo 7 será tratada a conclusão do trabalho e
apresentada sua bibliografia.
2 CIRCUITO E COMPONENTES ELETRÔNICOS
Ao se iniciar um projeto de Automação Residencial, é essencial definir o
circuito eletrônico que irá compor o projeto, pois o circuito eletrônico será
responsável pela comunicação entre o controlador central e os demais
componentes, inclusive os que compõem a interação com o usuário, além de
distribuir a energia necessária para o funcionamento destes componentes.
17
2.1 O CIRCUITO ELETRÔNICO
O circuito eletrônico pode ser feito de muitas formas, serão citados alguns
exemplos partindo da forma mais complexa até a mais simples para então se
aprofundar na considerada mais eficaz.
Como primeiro exemplo, pode-se citar o circuito impresso em uma placa.
Neste exemplo é usada uma placa de silício e os caminhos, onde passará a corrente
elétrica, são impressos em cobre. Existem formas industriais e também caseiras de
se imprimir um circuito em uma placa, porém ambos vão exigir de você um
conhecimento mais profundo em eletrônica.
Outra forma de se fazer um circuito eletrônico é através de placas de
prototipagem que utilizam o método Wire up, ou seja, fios são usados para substituir
os caminhos impressos nas placas. Usando este método, existem duas formas de se
fazer o circuito eletrônico, uma delas usando soldas, o que não é viável para quem
está começando na área, e outra forma onde simplesmente se encaixa os fios na
placa, e para isso são usados a Proto Board que é uma placa de prototipagem para
circuitos experimentais, também conhecida como placa de ensaio ou matriz de
contato, possui furos que se conectam na vertical e normalmente em suas
extremidades superior e inferior duas linhas que se conectam na horizontal.
Para montar o circuito nesta placa, normalmente são usados fios
conhecidos como jumpers, que são fios curtos, com comprimento variando
normalmente entre 5 e 20 centímetros e possuem suas pontas metálicas ideais para
circuito de encaixe.
Figura 2: Representações do circuito eletrônico [1]
18
2.1.1 OS COMPONENTES PRESENTES NO CIRCUITO ELETRÔNICO
Além dos fios e da placa citados anteriormente, existem outros
componentes que compõem um circuito eletrônico, como resistores, diodos,
transistores, entre outros.
É importante citar que a quantidade de componentes eletrônicos
atualmente é muito grande, o que faz com que citar todos aqui, (alem de cansativo)
seja desnecessário. Como o objetivo deste trabalho é ter um foco didático sobre o
assunto, optei por citar apenas os principais, ou seja, os mais úteis no campo da
domótica,
2.1.1.1 Resistores
Os resistores são componentes cujo objetivo inicial era transformar
energia elétrica em energia térmica. Porém são muito utilizados atualmente para
limitar a corrente elétrica, possibilitando dessa forma, controlar a tensão da corrente
que chegará a determinado componente. Sua resistência é medida em Ohm (Ω) e
pode ser calculada através das faixas pintadas em seu corpo.
Figura 3: Resistores – Representações e exemplo [2]
19
Figura 4: Tabela para calculo da resistência. [3]
2.1.1.2 Diodos
São componentes eletrônicos que permitem a passagem da corrente em
apenas um sentido, impedindo o fluxo no sentido oposto. (para isso entende-se que
a corrente esteja operando dentro de seus limites de tensão).
Figura 5: Diodo – Representação e exemplos alinhados [4]
2.1.1.3 Transistores
Transistores ou transístores são componentes eletrônicos que possuem
várias funções, suas principais são a amplificação de sinais eletrônicos, e também
20
funcionar como controlador, que interrompe ou libera a passagem da corrente
elétrica.
Figura 6: Transistor - Representações e exemplo [5]
2.2 COMPONENTES DE SAÍDA (TRANSMISSORES/ ATUADORES)
2.2.1 RELÉ
Figura 7: Módulo relé [6]
Este componente funciona como um interruptor eletromecânico,
controlando uma corrente de diferente tensão, liberando ou interrompendo a
corrente quando acionado.
21
Conectados ao circuito do arduíno são 3 pinos, o GND ligado ao 0 volt, o
VCC ligado a 5 volts, esses irão alimentar o relé, e um terceiro pino IN que será
responsável por acionar o relé. E para se comunicar ao circuito de maior tensão, o
relé possui 3 contatos, um Comum ou Central (C), um Normalmente Aberto (NA) que
em sua posição normal fica aberto, e ao relé ser acionado, fecha o circuito com o
contato C. enquanto o terceiro contato Normalmente Fechado (NF) em sua posição
normal fica fechando o circuito com o contato C e ao abre quando o relé é acionado.
2.2.2 BUZZER
Figura 8: Buzzer [7]
Este componente é um dispositivo emissor de som. Recomenda-se ser
ligado a uma saída analógica onde pode se controlar a freqüência do som emitido,
para isso usa-se a seguinte função: tone(Pino, freqüência, tempo);
2.2.3 MOTOR
Figura 9: Motor de corrente continua [8]
22
Motor de corrente continua (ou em inglês DC Motor) é uma maquina que
transforma energia elétrica em energia mecânica. Existem diversos motores com
diferentes voltagens, porém o mais comum quando trabalhamos com o Arduíno é o
de 5 volts. Devido a sua amperagem, não é recomendado que se ligue esse tipo de
motor diretamente nos pinos do Arduíno. Recomenda-se o uso de resistores ou até
mesmo circuitos integrados ou circuito ponte H.
2.2.4 SERVO MOTOR
Figura 10: Servo motor [9]
Constituído basicamente por um motor de corrente continua,
engrenagens de redução sensores e um eixo rotor, o servo motor apresentará um
movimento onde conseguimos controlar sua posição medida em ângulos, obtendo
assim uma precisão de seus movimentos.
23
2.2.5 DISPLAY LCD
Figura 11: Display LCD 4x20 [10]
Muito útil no ramo da domótica, pois nos mostra dados que estão sendo
usados no sistema. Muito utilizado em interfaces personalizadas. Possuindo vários
formatos, os mais comuns são 16x2 e 4x20 sendo o numero menor a quantidade de
linhas e o maior a quantidade de caracteres por linha. Este no exemplo possui 4
linhas com 20 caracteres cada.
2.2.6 LED
Figura 12: LEDs [11]
Do Inglês Light Emitting Diode, que significa Diodo emissor de luz. Essas
“pequenas lâmpadas” são muito comuns em projetos, testes de circuito e no
aprendizado da eletrônica e também do Arduíno. Por ser um diodo, possui duas
extremidades, sendo um catôdo e um anôdo, que quando energizadas de forma
correta emite luz.
24
2.2.6.1 LED INFRAVERMELHO
Figura 13: LEDs infravermelhos [12]
Este LED tem sua aparência e seu funcionamento idêntico aos demais
LEDs, a única diferença está em sua composição, utilizando o arsenieto de gálio,
este LED emite luz infravermelha.
Usado em controles-remotos para controlar aparelhos eletrônicos, este
sinal pode ser replicado pelo Arduíno utilizando a biblioteca adequada.
2.2.7 CABO LED INFRAVERMELHO
Figura 14: Cabo LED infravermelho [13]
Este material foi desenvolvido exatamente para ser usado em automação
residencial. Possui uma extensão de 5 metros, é composto por um LED
25
infravermelho em uma extremidade, e na extremidade oposta possui os fios que
serão ligados para se acionar o LED.
2.3 COMPONENTES DE ENTRADA (SENSORES/ RECEPTORES)
2.3.1 BOTÃO
Figura 15: Botão [14]
O botão é um componente eletrônico que funciona controlando a
passagem da corrente elétrica, permitindo sua passagem quando acionado, sua
usabilidade será especifica para a interação com o usuário, já que tem que ser
acionado fisicamente. Sua função é a de um “gatilho”, que chama uma parte do
código pré programado.
26
2.3.2 POTENCIÔMETRO
Figura 16: Potenciômetro – Funcionamento e exemplo [15]
O potenciômetro funciona variando a resistência em certo ponto de seu
circuito pelo simples movimento de seu eixo. Pode ser usado como um sensor
quando se busca movimentos gradativos e pode ser aplicado direto ao circuito, não
precisando necessariamente estar conectado a um controlador.
2.3.3 RECEPTOR INFRAVERMELHO
Figura 17: Receptor infravermelho [16]
São módulos que recebem o sinal infravermelho, o decodifica e envia
para um microprocessador para que posteriormente possamos reproduzir este sinal
através de um emissor infravermelho. Sua estrutura interna é complexa, composta
por um diodo e um pré-amplificador montados em uma estrutura de chumbo,
27
2.3.4 SENSOR DE DISTÂNCIA ULTRASSÔNICO
Figura 18: Sensor de distancia [17]
Este sensor funciona emitindo e recebendo pulsos ultrassônicos. Calcula
a distancia do objeto mais próximo de acordo com o tempo que este pulso demora a
retornar. Sendo capaz de medir distancias entre 2cm e 4 metros possui uma
precisão de 3mm. Sendo muito útil na automação residencial, podendo ser usado
como sensor de presença, ou para determinar se determinada porta ou janela está
aberta, por exemplo.
2.3.5 SENSOR DE TEMPERATURA E UMIDADE
Figura 19: Sensor de temperatura e unidade [18]
Este componente será um dos mais usados em projetos de automação
residencial. Como o próprio nome diz, ele serve para medir a temperatura e umidade
do ambiente, servindo dessa forma para deixar o ambiente mais confortável, por
28
exemplo, acionando um aquecedor em caso de frio ou ar condicionado em caso de
calor.
2.3.6 SENSOR DE CHUVA
Figura 20: Sensor de chuva [19]
Este sensor possui um circuito aberto que quando molhado irá se fechar,
indicando a presença de água. Muito útil na automação residencial onde se pode
programar, por exemplo, o fechamento de janelas quando for acionado.
2.3.7 SENSOR DE LUMINOSIDADE
Figura 21: Sensor de luminosidade [20]
29
Também conhecido como LDR do inglês Light Dependent Resistor que
traduzido significa resistor dependente de luz, este apresenta uma baixa resistência
em alta luminosidade e sua resistência aumenta quanto menor for a luminosidade.
Muito útil na automação residencial para uso externo, por exemplo, para
iluminar certo local à noite ou em dias mais escuros.
3 O ARDUINO
O Arduíno é uma placa eletrônica programável, ou seja, permite
programar o que é feito com os dados em suas entradas e saídas, o tornando ideal
para quem está iniciando na robótica (ou em nosso caso domótica), até mesmo
projetos artísticos que envolvam tecnologia e também para curiosos e outros
aficionados por tecnologia.
O Arduíno em sua versão mais recente possui três modelos: O Arduíno
Nano, o Arduíno Uno e o Arduíno Mega. Sendo o Nano, uma versão mais compacta
da placa, por isso, também mais barata, contendo seus componentes essenciais. O
Uno a versão mais popular da placa, também conhecida como a “tradicional”, por
esse motivo será o modelo que iremos nos basear neste trabalho. E o Mega a
versão estendida da placa, contendo mais pinos para prototipagem.
Figura 22: Arduíno – Tipos de placas [21]
30
3.1 HARDWARE
Figura 23: Arduíno – Vista superior [22]
O Arduíno Uno possui micro controlador ATmega328P, possui 29 pinos
para prototipagem, entre eles: 14 entradas/saídas digitais [onde 2 também são
usadas para saída e entrada de dados (RX/TX) e 6 são usadas como saídas PWM];
6 entradas analógicas; 7 Pinos de energia, [sendo eles 3 Grounds (GND), um 3,3
Volts, um 5 Volts (VCC), e 2 Pinos de referência (IOREF e AREF)]. Possui também
um cristal oscilador de 16MHz, conexão USB, uma entrada para fontes, soquete
para ICPS, e um botão de reset. [23]
Para conectá-lo a um computador é necessário um cabo USB – AB, ou
pode ser ligado simplesmente na energia, através de uma fonte ou baterias, sendo
recomendado uma tensão de entrada entre 7 e 12 V.
31
3.2 SOFTWARE
Figura 24: Compilador Arduíno
“O Arduino é um compilador gcc (C e C++) baseado em Writing e que usa
uma interface gráfica construída em Java baseado no projeto Processing. Tudo isso
se resume a um programa IDE (ambiente de desenvolvimento integrado) muito
simples de usar e de estender com bibliotecas que podem ser facilmente
encontradas na internet.” [24]
Para se programar o Arduino são necessárias duas funções Bases que
são a setup() e a loop(). Sendo a setup responsável pela configuração inicial do
programa que vai ser rodado, e a loop responsável pela parte do código que será
repetido, ou seja, que estará sendo executada enquanto a placa está enviando e
recebendo os comandos.
A sintaxe usada é a mesma da linguagem C, que em minha opinião é bem
simples de se trabalhar, porém cada componente eletrônico que será utilizado
necessitará de algoritmos e instruções específicas, alguns necessitando até mesmo
de bibliotecas próprias.
32
3.2.1 EXEMPLO DE CODIGO
Este exemplo é um dos mais simples do arduino, o “Blink” responsável por piscar o
LED que tem no arduino, conectado ao pino 13. E ao se conectar um LED ao pino
13 do arduino, obtêm-se o mesmo resultado.
Em resumo, este código cria uma variável chamada led, do tipo inteiro e
de valor 13 (o pino que irá piscar). Em seguida, na função setup(), este pino é
configurado como uma saída. E na função loop() este pino irá receber o valor alto
(HIGH), fazendo que ele acenda, passado um segundo, o pino irá receber o valor
baixo (LOW) fazendo com que ele apague, passado um segundo a função loop() irá
se repetir. Isso irá acontecer enquanto o Arduíno estiver ligado ou quando o código
for alterado.
33
Figura 25: Exemplo de código - Blink
34
4 INTERAÇÃO COM O USUÁRIO
A interação do Arduíno ou mesmo outro controlador central com o usuário
pode ser feita de várias maneiras, mas todas elas obedecendo a um padrão. Sempre
recebendo dados do controlador e mostrando-os para o usuário, e apos o usuário
responder, recebendo os comandos do usuário e os transmitindo para o controlador.
Resumindo, é preciso ao menos mostrar os dados para o usuário e
receber seus comandos. Estas são as funções básicas de uma interface.
4.1 INTERFACE PERSONALIZADA
Uma forma bem simples de se fazer uma interface com o usuário é
personalizando uma, podemos fazer isso usando um display LCD e alguns botões,
por exemplo. Mostrando todos os dados que recebemos no visor e programando os
botões para realizar as ações que desejamos.
Figura 26: Interação personalizada [25]
Sua aparência não será a mais satisfatória, por isso esta interface é
recomendada como aprendizado enquanto se estiver começando ao menos que
35
você já possua métodos de fazer uma caixa de proteção ou algo do tipo que não
exponha os fios e componentes internos.
Se este for o caso pode-se também usar uma interface personalizada
como interface principal e adicionarmos outro ou outros tipos de interfaces remotas a
fim de se obter uma experiência mais completa.
4.2 INTRANET
Figura 27: Ethernet Shield [26]
Para se fazer esse tipo de interface é preciso da placa de Intranet (em
inglês: Ethernet Shield) que se encaixa no Arduíno. Essa placa se conectará com o
roteador, fazendo com que qualquer dispositivo conectado a ele, consiga agora se
conectar com o Arduíno.
Dessa forma o alcance da interface é o mesmo do roteador, resumindo,
se o dispositivo consegue se conectar ao roteador poderá acessar a interface.
O código do Arduíno poderá usar como base o exemplo “Web Server”,
acessado pelo caminho: Files > Examples > Ethernet > Web Server. As principais
configurações serão o Mac address e o IP, sendo que o MAC address dependerá de
sua placa e o IP de configurações locais em seu roteador e será o endereço que
36
deverá ser digitado no navegador para acessar a página virtual criada pelo código
do Arduíno.
Figura 28: Código Ethernet Shield
4.3 BLUETOOTH
Para esta interação será necessário o Módulo Bluetooth conectado ao
Arduíno
Figura 29: Módulo Bluetooth [27]
Sua conexão é bem simples, porém precisará de algum aplicativo
instalado em seu dispositivo para estabelecermos uma comunicação via Bluetooth,
consegue-se encontrar aplicativos prontos com funções pré-definidas, mas se o
objetivo for uma interface personalizada, recomenda-se criar seu próprio aplicativo.
O módulo Bluetooth possui 4 pinos: 2 de alimentação, o GND (Ground)
ligado em 0 Volt e o VCC (5 Volts). E os outros dois, uma para transmissão de dados
(TX), que deve ser ligado no receptor de dados do arduíno (RX) e o Receptor de
dados do Bluetooth (RX) que deve ser ligado no transmissor de dados do Arduíno
(TX).
37
Seu alcance é de aproximadamente 10 metros, porém a versão do
Bluetooth encontrada no dispositivo que quiser se conectar irá influenciar este
alcance, o que deve ser levado em conta durante o planejamento do projeto e se
esta interação é realmente viável.
5 DESENVOLVENDO UM APP COM MIT APPINVENTOR
O MIT AppInventor é um software online desenvolvido pelo instituto
educacional MIT, no intuito de popularizar a criação de aplicativos, facilitando a sua
compreensão e simplificando o processo de criação. Ele tem um caráter didático, e
seu publico alvo são todos os entusiastas que pretendem aprender como criar seu
próprio aplicativo.
O MIT AppInventor atualmente se encontra em sua segunda versão. E
sua utilização é bastante simples, ele conta com duas telas, uma de Design, onde
aplicamos a aparência do aplicativo e acrescentamos seus componentes. E outra
tela de programação, que por sua vez utiliza a programação em blocos que é um
estilo de programação bastante simplificado (até por seu foco didático) não
necessitando o conhecimento em nenhuma linguagem específica, apenas em
lógicas de programação, que para quem não sabe, esta é uma ótima ferramenta de
ensino. Além de quem já programa, não precisar se preocupar com a sintaxe de
alguma linguagem, apenas com o algoritmo a ser desenvolvido.
38
5.1 PRIMEIROS PASSOS
Antes de tudo é aconselhado acessar o site do MIT AppInventor, cujo
endereço é http://appinventor.mit.edu. Neste endereço é acessada a pagina inicial,
que mostrará as novidades mais recentes, tutorias e outras ajudas, como mostra a
imagem a seguir:
Figura 30: Página inicial do site MIT AppInventor [28]
Para acessar o software de criação, clique no botão laranja na direita com
os dizeres “Create apps!”. Este botão direcionará para o endereço
http://ai2.appinventor.mit.edu, Onde será pedido para fazer login em uma conta do
Google para poder acessar o software. Após fazer o login, deve-se ainda permitir o
MIT AppInventor acesse nossa conta do Google. Esta permissão poderá ser
39
estendida por 30 dias caso seja marcada uma caixa de checagem referente e esta
extensão.
Uma vez feito o login e permitido o acesso, pode-se dar inicio a criação do
aplicativo. Quando o acessamos pela primeira vez, a tela mostrada é a de criação de
um novo projeto, mas quando já temos nossos projetos, a tela mostrada inicialmente
é a “Meus projetos”, mudando automaticamente para o projeto modificado mais
recente.
Figura 31: MIT AppInventor – Tela Meus Projetos [29]
5.1.1 BARRA DE MENU
Nesta barra encontram-se os seguintes menus:
Projetos, neste menu se tem total controle sobre os projetos,
podendo criar um novo, importar, exportar excluir, salvar o projeto
entre outras opções mais especificas;
Conectar, este menu permite testar o aplicativo em nosso aparelho
ou em um simulador, mais informações sobre este menu serão
dadas posteriormente;
Compilar, compila o aplicativo no formato .apk, podendo ser salvo
no computador ou fazer o download direto em nosso dispositivo;
40
Ajuda, permite acessar a pagina de ajuda, para tirar duvidas,
tutoriais, entre outros;
Meus Projetos, levará para a pagina Meus Projetos;
Galerias, permite visualizar projetos publicados por outros usuários;
Guia, leva para a página de ajuda no site;
Reportar um problema, leva para um fórum sobre o software;
Idioma, permite escolher o idioma de nossa preferencia;
Usuário, permite editar o perfil e sair (fazer logout).
5.2 NOVO PROJETO
Ao se iniciar um novo projeto a primeira coisa que nos é pedida é um
nome para o projeto. Uma vez escolhido o nome, é aberta a tela inicial de criação do
aplicativo, como exemplo foi usado o nome “Ola_Mundo”.
Figura 32: Tela inicial de criação do aplicativo [30]
A criação do aplicativo é divida em duas telas, esta que está sendo
mostrada é a tela “Designer”, onde são adicionados os componentes do aplicativo e
41
é montado seu design, ou seja, sua aparência. Além desta tela, há também a tela
“Blocos” onde será feita a programação do aplicativo.
5.2.1 TELA DESIGNER
A tela “Designer” é dividida em quatro Colunas: Paletas; Visualizador,
Componentes; Propriedades.
Na coluna “Paletas” estão presentes todos os componentes que podem
ser adicionados ao nosso aplicativo. Na coluna “Visualizador” esta uma prévia da
tela do aplicativo que está sendo criado, é nela onde são adicionados os
componentes que irão compor o aplicativo, isso é feito simplesmente clicando no
componente na paleta e o arrastando para o visualizador. Na coluna “Componentes”
serão listados todos os componentes que foram adicionados ao nosso aplicativo. E
na coluna “Propriedades” são exibidas as propriedades de cada componente. Cada
componente poderá possuir uma propriedade exclusiva, porém a maioria
compartilha propriedades em comum, como por exemplo, altura, largura, cor de
fundo, texto de exibição, entre outras.
Segue uma imagem com todos os componentes disponíveis, separados
por categorias. Como seus nomes são auto-explicativos acredito que não haja a
necessidade de descrevê-los individualmente.
42
Figura 33: Componentes do MIT AppInventor [31]
43
5.2.2 TELA BLOCOS (PROGRAMAÇÃO)
Figura 34: Tela de Blocos [32]
Esta tela é dividida em duas colunas. A esquerda tem a coluna de blocos
e a direita a coluna Visualizador. Os blocos desejados são montados, clicando nos
objetos na coluna de blocos e os arrastando para o palco do visualizador. E de
acordo com o encaixe de cada bloco, é montado o código desejado.
Os blocos disponíveis para o uso na codificação do projeto são uma
infinidade, divididos em duas categorias. Os Internos representam os blocos
essenciais para a programação, contendo as ferramentas da lógica de programação,
e eles estão divididos em 8 sub-categorias:
Controle, contendo funções lógicas como if, if then else, for, while,
entre outros;
Lógica, Verdadeiro, falso, igual, diferente, e, ou, não;
Matemática, números, operações matemáticas, numero aleatório,
frações, seno, cosseno, entre outros;
44
Texto, contendo operações de string, como concatenação,
tamanho, maiúscula, entre outras;
Lista, permite criar, editar e outras operações em uma lista;
Cores, permite selecionar alguma cor ou criar uma no padrão RGB;
Variáveis, permite criar variáveis globais, locais ou obter seus
valores;
Procedimento, responsável pela criação de procedimentos, parte
essencial na lógica de programação.
Enquanto na categoria seguinte estão os blocos específicos de cada
componente que foram adicionados no aplicativo que está sendo construindo, por
exemplo, um botão contém o bloco para quando este for clicado, além de suas
propriedades, como altura, largura, cor de fundo texto de apresentação entre outros.
E assim também com todos os demais componentes que foram adicionados na tela
Designer.
Mais exemplos e imagens demonstrativas desse modo de programação
serão mostrados no capitulo seguinte, onde será mostrado o aplicativo criado para o
controle residencial.
5.3 TESTANDO E EXPORTANDO O APLICATIVO
Para testar o aplicativo, deve-se clicar no menu conectar, onde serão
exibidas as três opções para testar o aplicativo: Assistente AI; Emulador; USB. Mais
duas opções caso seja necessário reiniciar a conexão durante o teste.
45
Figura 35: Menu conectar (Testando o aplicativo) [33]
A primeira opção, o Assistente AI (que é a minha preferida) o teste é feito
diretamente em seu dispositivo. Para isso é necessário ter instalado o aplicativo “MIT
AI2 Companion” que pode ser obtido na Play Store através do seguinte endereço:
https://play.google.com/store/apps/details?id=edu.mit.appinventor.aicompanion3&hl=
pt_BR
Figura 36: MIT AI2 Companion [34]
Este aplicativo quando aberto irá pedir um código hexadecimal ou um QR
Code, onde ambos são fornecidos ao se clicar na opção “Assistente AI”. Após digitar
o código ou visualizar o QR Code, o aplicativo que está sendo desenvolvido é aberto
automaticamente no dispositivo que está sendo usado para o teste.
A segunda opção para testar seu aplicativo é o “Emulador”, para isso é
necessário a instalação do “aiStarter”. Eu optei por não fazer esta instalação, uma
vez que utilizo o método anterior.
E a terceira opção é via USB. Esta é opção menos recomendada, pois vai
precisar de ambos os softwares instalados, tanto o “aiStarter” no computador, como
46
o aplicativo “MIT AI2 Companion” instalado em seu dispositivo. Esta opção foi feita
para se realizar o teste em tempo real caso não haja conexão via wi-fi.
Depois de testado o aplicativo, e ele estiver funcionando da maneira
desejada, é chegado o momento de exportar a versão final do aplicativo, ou seja,
compilar seu arquivo de instalação.
Figura 37: Menu Compilar [35]
A versão final do aplicativo é compilada no formato .apk, esta é a
extensão do arquivo de instalação em nosso dispositivo. Ao clicar no menu
Compilar, são oferecidas duas opções para baixarmos o arquivo final. Uma delas é
diretamente em nosso dispositivo, através de um QR Code que contém o link de
Download. Outra opção é baixar o arquivo para nosso computador. Eu escolho esta
opção quando quero ter um backup do arquivo, ou seja, uma cópia de segurança, do
contrário escolho a primeira opção por sua praticidade.
47
6 PROJETO BÁSICO DE AUTOMAÇÃO RESIDENCIAL
Neste projeto será feita a automação de um cômodo, será usado como
exemplo uma sala. Nela será automatizado o acendimento de sua lâmpada e o
controle alguns equipamentos eletrônicos, são eles: um ar-condicionado, um
aparelho de som e uma TV com um receptor de sinal.
Para se controlar o acendimento da lapada, será usado um relé, e os
demais aparelhos eletrônicos, assumindo que todos eles possuam controle remoto
infravermelho, será usado um LED emissor de infravermelho, estrategicamente
posicionado para cada aparelho.
Como interface com o usuário, será usado o que foi passado no capitulo
anterior, ou seja, um aplicativo Android criado com o AppInventor, que irá se
comunicar com o controlador central via Bluetooth.
Figura 38: Cômodo que será automatizado [36]
48
6.1 CICUITO ELETRONICO
O circuito eletrônico do projeto terá um Arduíno Uno (e sua fonte de
alimentação), será usado como exemplo a protoboard e fios jumpers, terá um
módulo Bluetooth para a interação com o usuário, um módulo Relé para controlar o
acendimento da lâmpada e serão usados também quatro cabos com emissor
infravermelho na ponta, pra controle dos aparelhos eletrônicos, e como a biblioteca
IR usa apenas o pino 3 como saída do código infravermelho, será usado um
multiplexador para encaminhar esse sinal para o cabo correspondente ao aparelho
desejado
Figura 39: Circuito eletrônico do projeto
49
O módulo Bluetooth possui 4 pinos: 2 de alimentação, o GND (Ground)
ligado em 0 Volt e o VCC (5 Volts). E os outros dois, uma para transmissão de dados
(TX), que será ligado no receptor de dados do Arduíno (RX) e o Receptor de dados
do Bluetooth (RX) que será ligado no transmissor de dados do Arduíno (TX).
O multiplexador em um de seus lados possui 8 pinos, sendo 2 de energia
(GND e VCC), EN (Enable), Ligado ao pino 13 em nosso projeto, que quando
ativado permite a passagem do sinal, SIG (Signal) em nosso projeto o pino 3, cujo
sinal será encaminhado, S0, S1, S2, S3 esses 4 pinos, em nosso projeto ligados aos
pinos 11, 10, 9 e 8, respectivamente, irão transmitir um código em binário que dirá
para qual das 16 saídas do lado oposto o sinal do pino SIG será encaminhado.
No lado oposto serão usados apenas 4 dos 16 pinos de saída. No pino C0
será conectado o cabo IR responsável por controlar o ar condicionado, no pino C1 o
cabo responsável por controlar a Oi TV, no pino C2 o cabo responsável por controlar
a TV e no Pino C3 o cabo responsável por controlar o som. No lado oposto de cada
um desses cabos haverá um resistor de 220 Ohms conectado com o GND. Este
resistor servirá para diminuir a tensão da corrente que passará pelo LED IR,
evitando com que este sobrecarregue e queime.
O relé, além do GND e VCC, possui o pino IN que em nosso projeto
estará ligado ao pino 5 no Arduíno. No lado oposto, em um dos fios que vai para a
lâmpada, uma ponta estará ligada no contato Comum, ou Central (C) e a outra ponta
no contato Normalmente Aberto (NA ou em inglês NO). Dessa forma o circuito
fechará permitindo passagem da corrente quando o pino 5 do Arduíno for acionado.
Para utilizar o relé em conjunto com um interruptor, é recomendado que
sejam ligados em paralelo, assim pode-se controlar a lâmpada de forma
independente por ambos os dispositivos, mas lembrando que uma vez a lâmpada
acesa por um dispositivo, ela deve ser apagada pelo mesmo dispositivo. Não
podemos acender a lâmpada pelo interruptor e apagar pelo relé, nem vice-versa.
Figura 40: Circuito lâmpada
50
6.2 CÓDIGO DO ARDUINO
Neste projeto em especifico, estão sendo usados dois componentes que
necessitam de bibliotecas próprias para funcionarem corretamente. São eles os
LEDs emissores de infravermelho e o multiplexador. Ao se comprar esses itens,
normalmente seus vendedores disponibilizam esta biblioteca para se baixar, embora
sejam encontradas com facilidade na internet, em sites de confiança.
Para instalar essas bibliotecas, é usado um procedimento bem simples.
Deve-se copiar a pasta fornecida para o diretório “Libraries” no local de instalação do
compilador. E caso essa pasta esteja em algum local protegido pelo sistema
operacional, como a pasta “Arquivos de Programa”, por exemplo, será necessária a
permissão do administrador para copiar esta pasta. Depois disso será necessário
apenas de uma chamada para a biblioteca no código.
Antes de iniciar a programação deste projeto, foi necessário um
levantamento dos códigos infravermelhos de cada função de seus respectivos
controles, isso foi feito com um receptor infravermelho ligado ao Arduíno e usando
um código que vem como exemplo na biblioteca IR que é o exemplo IR-Dump, que
nos diz o tipo de decodificação, o código em hexadecimal, e quantos bits possui
esse código. Seguem as tabelas com os códigos lidos no receptor:
Tabela 1: Listagem dos códigos infravermelho do ar condicionado
Ar Condicionado
Tecla Decodificador Código (Hex) bits
Power NEC 1AF807F 32
+ NEC 1AF10EF 32
- NEC 1AFD02F 32
Modo NEC 1AFF40B 32
Velocidade NEC 1AF34CB 32
Timer NEC 1AF20DF 32
51
Tabela 2: Listagem dos códigos infravermelho da Oi TV
OiTV
Tecla Decodificador Código (Hex) bits
Power (Oi TV) RC6 8072240C 36
VOD RC6 807224F0 36
APP RC6 8072A4FD 36
DVR RC6 807224F1 36
0 RC6 80722400 36
1 RC6 80722401 36
2 RC6 80722402 36
3 RC6 80722403 36
4 RC6 80722404 36
5 RC6 80722405 36
6 RC6 80722406 36
7 RC6 80722407 36
8 RC6 80722408 36
9 RC6 80722409 36
Legenda RC6 8072A44B 36
Menu RC6 80722454 36
Audio RC6 807224A1 36
Guia RC6 8072A4CC 36
Seta Cima RC6 80722458 36
Seta Baixo RC6 80722459 36
Seta Esquerda RC6 8072245A 36
Seta Direita RC6 8072245B 36
OK RC6 8072245C 36
Oi TV RC6 8072A49F 36
Sair RC6 80722483 36
Info RC6 8072A40F 36
Vol + RC6 8072A410 36
Vol - RC6 8072A411 36
Ch + RC6 8072241E 36
Ch - RC6 8072A41F 36
Return RC6 8072A4A9 36
Mute RC6 8072240D 36
52
Tabela 3: Listagem dos códigos infravermelho da TV PHILIPS
TV PHILIPS: (prefixos: 5 e D)
Tecla Decodificador Cód (Hex) bits
Power: RC5 58C 12
AV/TV: RC5 5B9 12
Timer: RC5 5A6 12
Mute: RC5 58D 12
CH+: RC5 5A0 12
CH-: RC5 5A1 12
Vol-: RC5 591 12
Vol+: RC5 590 12
menu: RC5 D8E 12
guide: RC5 5A2 12
1 RC5 581 12
2 RC5 582 12
3 RC5 583 12
4 RC5 584 12
5 RC5 585 12
6 RC5 586 12
7 RC5 587 12
8 RC5 588 12
9 RC5 589 12
0 RC5 580 12
53
Tabela 3: Listagem dos códigos infravermelho do Som VoxStorm
Som VoxStorm
Tecla Decodificador Código (Hex) bits
Power NEC FFA25D 32
Mode NEC FF629D 32
Mute NEC FFE21D 32
play/pause NEC FF22DD 32
Prev NEC FF02FD 32
Next NEC FFC23D 32
Eq NEC FFE01F 32
Vol - NEC FFA857 32
Vol + NEC FF906F 32
Repeat NEC FF9867 32
USB/SD NEC FFB04F 32
Agora já se tem tudo o que é preciso para começar a programar o
Arduíno. E o código que foi feito para o projeto será mostrado por partes, com
comentários que explicarão o que cada trecho faz.
Figura 41: Código do Arduíno – Parte 01
54
Figura 42: Código do Arduíno – Parte 02
55
Figura 43: Código do Arduíno – Parte 03
56
Figura 44: Código do Arduíno – Parte 04
57
6.3 O APLICATIVO DE INTERFACE
O aplicativo que fará parte do projeto terá como plataforma o sistema
operacional Android, e será feito através do MIT AppInventor 2, cujas
funcionalidades e “capacidade” foram explicados no capitulo anterior.
6.3.1 COMPONENTES DO APLICATIVO
Neste aplicativo serão usados: Um botão responsável pela conexão com
o Bluetooth; Um Activity Starter, que solicitará o acionamento do Bluetooth, caso o
mesmo esteja desabilitado no dispositivo; Um Notifier, que mostrará uma mensagem
de alerta caso o Bluetooth esteja desabilitado no dispositivo, chamando o Activity
Starter para a sua ativação; Um Bluetooth Client, que será responsável pela conexão
e troca de dados com o dispositivo bluetooth; Um List Picker, para nos mostrar os
dispositivos Bluetooth que estão próximos e são possíveis de se parear; Alguns
Arrangements para adicionar espaçamento e alinhar os componentes, melhorando a
estética visual do aplicativo; Alguns botões que serão utilizados para controlar o
efeito de sanfonamento; Demais botões para acionamento das funções que
desejamos ativar nos aparelhos eletrônicos; E algumas tabelas que irão conter
esses botões, afim de dispor-los de forma estética e também esconder e mostrar os
botões quando forem solicitados no efeito de sanfonamento.
A disposição destes componentes será feita de acordo com a imagem 45
mostrada a seguir, e a listagem completa de todos os componentes utilizados serão
mostrados nas imagens 46 e 47 mostradas em seguida:
58
Figura 45: Visualizador do aplicativo [37]
59
Figura 46: Componentes do aplicativo - Parte 1 [38]
60
Figura 47: Componentes do aplicativo - Parte 2 [39]
61
6.3.2 CODIGO DO APLICATIVO
Depois de apresentar todos os componentes que farão parte do
aplicativo, chegou à hora de programar suas funções para que o aplicativo funcione
como desejado. Como o código ficou um pouco extenso e também para facilitar sua
compreensão, foi dividido em algumas partes.
A primeira parte do código refere-se à conexão Bluetooth. O primeiro
bloco faz com que ao inicializar o aplicativo seja feita uma checagem caso o
Bluetooth não esteja ativado, a “Activity Starter” irá solicitar sua ativação.
Quando o botão “Conectar” for clicado, se o Bluetooth estiver ativado e
conectado, ira desfazer esta conexão, ou seja, a função inversa, senão será
chamado o “List Picker1” ativado os blocos 4 e 5. E caso o Bluetooth estiver
desativado, o “Notifier” nos mostrará uma mensagem solicitando sua ativação.
Figura 48: Código aplicativo - Configurando Bluetooth – Parte 1 [40]
62
Caso a mensagem escolhida no notificador “Notifier1” for sim, o Iniciador
de Atividade “ActivityStarter1” será chamado para ativar o Bluetooth do dispositivo.
Quando a Lista de escolha “ListPicker1” for ativada, antes de sua escolha
ela listará os endereços e nomes dos dispositivos Bluetooth possíveis de se parear.
Após um endereço ser selecionado, o Bluetooth se conecta com este
dispositivo, uma mensagem será mostrada dizendo que o Bluetooth está conectado
e o texto do botão conectar será modificado, já que agora ele terá a função inversa
que já foi programada no inicio do bloco 1. E caso não haja a conexão, será
mostrada a mensagem dizendo que não foi possível conectar. Finalizando assim a
parte do código responsável pela conexão Bluetooth.
Figura 49: Código aplicativo - Configurando Bluetooth – Parte 2 [41]
A imagem seguinte se refere à parte do código responsável pelo efeito de
sanfonamento que irá mostrar e esconder os botões responsáveis pelo controle de
cada equipamento.
63
Nestes blocos de código, primeiro é criada uma variável global de nome
Status e valor inicial 0.
O bloco seguinte é um procedimento que de acordo com o valor contido
nessa variável irá definir os componentes de qual aparelho será mostrado, todos os
demais ficarão escondidos.
E os 4 últimos blocos desta parte, nos diz de acordo com qual botão for
clicado, o comportamento que deve ser tomado para que o efeito funcione
corretamente, isso é feito atribuindo o valor desejado a variável “Status” e em
seguida chamado o procedimento “Accordion”.
Figura 50: Código aplicativo - Aplicando efeito [42]
Os blocos a seguir asseguram que cada um dos botões que exercerão
alguma função envie um numero especifico que ao ser recebido pelo Arduíno realize
a função desejada.
64
Figura 51: Código do aplicativo – Comandos por Bluetooth – Parte 01 [43]
65
Figura 52: Código do aplicativo – Comandos por Bluetooth – Parte 02 [44]
66
CONCLUSÃO E TRABALHOS FUTUROS
Embora o foco principal deste trabalho seja a automação residencial. O
foco principal de seu autor, atualmente, é o Arduíno. Esta placa tida como simples
ou básica é capaz de grandes feitos.
Pessoalmente, venho me aprofundando e a estudando. Tenho muitas
idéias que ainda não tive tempo de colocar em prática, como sistemas mais
complexos para fechamento e abertura de janelas, cortinas, portas corrediças e
similares, móveis automatizados e também alguns trabalhos artísticos que
promovem a interação com o espectador.
67
REFERÊNCIAS BIBLIOGRÁFICAS
1. LABORATÓRIO DE GARAGEM. Tutorial mini gerador de freqüência.
<http://labdegaragem.com/profiles/blogs/-parte-1-protoboatutorial-mini-
gerador-de-frequenciasrd> Acesso em 31 nov 2016.
2. SÓ FÍSICA. Resistores.
<http://www.sofisica.com.br/conteudos/Eletromagnetismo/Eletrodinamica/resis
tores.php> Acesso em 31 nov. 2016.
KÍTOR, Glauber Luciano. Info Escola - Resistores.
<http://www.infoescola.com/fisica/resistores/> Acesso em 31 nov. 2016.
3. Mundo da elétrica. Código de cores de resistores.
<https://www.mundodaeletrica.com.br/codigo-de-cores-de-resistores/> Acesso
em 01 dez 2016.
4. Wikipédia. Diodo semicondutor.
<https://pt.wikipedia.org/wiki/Diodo_semicondutor> Acesso em 01 dez 2016.
5. Electrónica. Transístor. <http://www.electronica-pt.com/componentes-
eletronicos/transistor-tipos> Acesso em 01 dez 2016.
SANTOS, Diego Marcelo. Infoescola - Transístor.
<http://www.infoescola.com/eletronica/transistor/> Acesso em 01 dez 2016.
6. INOBOT. Módulo Relé 1 canal. <http://www.inobot.com.br/pd-18f35a-
modulo-rele-1-canal.html> Acesso em 05 mai 2016.
7. MOTA, Alan. Usando o buzzer com Arduíno – Transdutor piezo elétrico.
<http://blog.vidadesilicio.com.br/arduino/basico/usando-o-buzzer-com-arduino-
transdutor-piezo-eletrico/> Acesso em 02 dez 2016.
8. Roboshop. Brushed DC Motor 2 (RM2).
<http://www.robotshop.com/en/solarbotics-regular-motor-2.html> Acesso em
02 dez 2016.
68
9. WERNANDYS. Mercado Livre – Micro Servo Motor Tower Pro 9g Sg90 .
<http://produto.mercadolivre.com.br/MLB-680033318-micro-servo-motor-
tower-pro-9g-sg90-frete-r-990-_JM> Acesso em 31 nov 2016.
10. HW Kitchen. Open Source Eletronics Cooking.
<http://www.hwkitchen.com/products/lcd-display-4x20-characters/> Acesso
em 02 dez 2016.
11. ABC da Eletrõnica. O que são LEDs. <http://www.abcdaeletronica.com.br/o-
que-sao-leds/> Acesso em 05 mai 2016.
12. Smartphone ofertas. Led ir.
<http://smartphoneofertas.blogspot.com.br/2013/11/led-ir.html> Acesso em 05
mai 2016.
13. Robocore. Albatroz Cabo IR - 5m.
<https://www.robocore.net/loja/produtos/albatross-cabo-ir-5m.html> Acesso
em 20 nov 2016.
14. VALDEREDOFERREIRA. Mercado Livre – Botão Switch H Para Arduino.
<http://produto.mercadolivre.com.br/MLB-742723756-boto-switch-h-6x6x5mm-
para-arduino-_JM > Acesso em 31 nov 2016.
15. DOS REIS, Mauro. Potenciômetro.
<http://baudaeletronica.blogspot.com.br/2011/09/potenciometro.html > Acesso
em 31 nov 2016.
16. Arduino – Projetos e Experiências. Emissor e receptor infravermelho.
<http://arduinoprojexp.blogspot.com.br/2014/07/emissor-e-receptor-
infravermelho.html> Acesso em 31 nov 2016.
17. FritzenLab. Sensor de distância ultrassônico SR04 – com Arduino.
<http://fritzenlab.com.br/2016/01/sensor-de-distancia-ultrassonico-sr04-com-
arduino/> Acesso em 31 nov 2016.
18. Auto Core Robótica. DHT11 Sensor de umidade e temperatura.
<https://www.autocorerobotica.com.br/dht11-sensor-de-umidade-e-
temperatura> Acesso em 05 mai 2016.
19. ACL INFO. Sensor de Chuva Arduino.
<http://www.aclinformatica.com/products.php?product=sensor-de-chuva-
arduino> Acesso em 31 nov 2016.
69
20. Baú da Eletrônica. LDR 5mm (Sensor de Luminosidade).
<http://www.baudaeletronica.com.br/ldr-5mm-sendor-de-luminosidade.html>
Acesso em 31 nov 2016.
21. ARDUINO. Arduino Micro.
<https://www.arduino.cc/en/Main/ArduinoBoardMicro> Acesso em 05 mai
2016.
ARDUINO. Arduino Uno.
<https://www.arduino.cc/en/Main/ArduinoBoardUno> Acesso em 05 mai 2016.
ARDUINO. Arduino Mega 2560.
<https://www.arduino.cc/en/Main/ArduinoBoardMega2560> Acesso em 05 mai
2016.
22. Robocore. Arduino Uno R3 – Original da Itália.
<https://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=120>
Acesso em 05 mai 2016.
23. Robocore. Arduino Uno R3 – Original da Itália.
<https://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=120>
Acesso em 05 mai 2016.
24. FILHO, Daniel O. Basconcello. Aula1 – O que é Arduino.
<http://www.robotizando.com.br/curso_arduino_o_que_e_arduino_pg1.php>
Acesso em 05 mai 2016.
25. Blog Arduino Brasil. Arduino – Menu em LCD 16x2 (Parte 2).
<http://arduinobrasil.blogspot.com.br/2014/01/arduino-menu-em-lcd-16x2-
parte-2.html> Acesso em 02 dez 2016.
26. Arduino. Arduino Ethernet Shield V2.
<https://www.arduino.cc/en/Main/ArduinoEthernetShield> Acesso em 05 mai
2016.
27. Blog Arduino By Myself. Arduino - Bluetooth.
<https://arduinobymyself.blogspot.com.br/2012/11/arduino-bluetooth.html>
Acesso em 01 dez 2016.
28. MIT App Inventor. <http://appinventor.mit.edu/explore/> Acesso em 19 nov
2016.
29. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
30. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
70
31. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
32. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
33. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
34. Google Play. MIT AI2 Companion.
<https://play.google.com/store/apps/details?id=edu.mit.appinventor.aicompani
on3&hl=pt_BR> Acesso em 19 nov 2016.
35. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
36. Planner 5d. Planner 5d . < https://planner5d.com/pt/e/> Acesso em 04 nov
2016.
37. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
38. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
39. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
40. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
41. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
42. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
43. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.
44. MIT App Inventor. <http://ai2.appinventor.mit.edu/> Acesso em 19 nov 2016.