Automação
com
Arduino e Android
Autor: Eng. Luan Bispo
Introdução
Neste eBook você aprenderá a desenvolver um sistema de
automação com Arduino comandado por Android, via Bluetooth.
Você aprenderá a desenvolver o Aplicativo Android, o
programa do Arduino e as ligações elétricas e eletrônicas, sem
necessidade de conhecimento prévio nessas áreas.
Materiais necessários:
1 x Arduino (neste curso será usado o Uno)
1 x Módulo Bluetooth HC-06
1
Autor: Eng. Luan Bispo
1 x Protoboard
LED
LDR
2
Autor: Eng. Luan Bispo
Jumpers MachoxMacho
Resistores de 220Ω e 10kΩ
3
Autor: Eng. Luan Bispo
Módulo 1 – Aplicativo Android
O MIT APP INVENTOR
A plataforma utilizada para desenvolver o Aplicativo para o
Android será o MIT App Inventor, que é uma aplicação de código
aberto que foi desenvolvido pela Google e atualmente é mantida
pelo MIT (Massachusetts Institute of Technology).
O MIT App Inventor é acessado através do navegador de
internet, pelo link: ai2.appinventor.mit.edu
Após acessar, será necessário efetuar o login utilizando uma
conta Google:
4
Autor: Eng. Luan Bispo
Feito o login, a tela inicial é aberta, onde podem ser
acessados todos os menus:
Na guia “Projetos”, você poderá acessar os seus projetos
anteriores, iniciar um novo, importar os que você salvou em seu
computador, salvá-lo e exportá-lo.
5
Autor: Eng. Luan Bispo
Em “Conectar”, você poderá conectar o seu celular com o
projeto via Wifi* em Assistente AI ou pelo USB. Também poderá
simular um celular na aplicação, em Emulador. Caso aconteça
algum problema ou você desconecte o seu celular e queira conectá-
lo novamente, poderá reiniciar a conexão.
*Para conectar via Wifi, primeiramente você deverá ter o
Aplicativo MIT AI2 Companion em seu celular, que pode ser
baixado no Play Store.
6
Autor: Eng. Luan Bispo
E poderá escanear ou digitar o código de 6 dígitos:
Para utilizar o Emulador ou via USB, você deverá ter em seu
computador o Software aiStarter, que pode ser baixado neste link:
http://appinventor.mit.edu/explore/ai2/setup-emulator.html
Na aba “Conectar”, você poderá baixar o seu projeto via QR
Code ou direto para o seu computador.
7
Autor: Eng. Luan Bispo
Para começar a desenvolver, vamos clicar em “Iniciar um
novo projeto” e dar um nome ao aplicativo:
Após dar o nome ao aplicativo, vamos para a tela de
desenvolvimento.
Esta tela é dividida em duas partes principais: Designer e
Blocos.
8
Autor: Eng. Luan Bispo
No Designer é onde faremos toda a parte da interface do
aplicativo com o usuário, como botões, imagens e textos.
Na tela de Blocos é onde faremos a programação do
Aplicativo.
9
Autor: Eng. Luan Bispo
DESENVOLVIMENTO DO APLICATIVO
Agora vamos iniciar o desenvolvimento do Aplicativo
Bluetooth.
De início vamos carregar as imagens que serão usadas para
os botões:
Vamos adicionar 2 botões: um para conectar ao bluetooth e
outro para acender e apagar o LED. Também vamos adicionar uma
lista, que ficará invisível para o usuário.
10
Autor: Eng. Luan Bispo
Nas Propriedades da Tela, vamos definir seu Alinhamento
Horizontal como “Centro”, a Cor de Fundo para “Preto” e desmarcar
a opção de Título Visível.
Em Propriedades do Botão 1, vamos adicionar a imagem
“bluetooth”, definir a altura e largura para 75 pixels e apagar o texto.
11
Autor: Eng. Luan Bispo
Em Componentes, vamos alterar o nome do Botão1 para
“btn_conexao”.
Abaixo do btn_conexao, vamos adicionar uma “Legenda”,
alterar o texto para “Conectar Bluetooth” e mudar a cor do Texto
para “Branco”.
12
Autor: Eng. Luan Bispo
Para deixar a Lista invisível vamos às Propriedades e
desmarcamos a opção “Visível”.
Agora vamos alterar o nome do Botão 2 para “btn_luz”. Em
Propriedades vamos adicionar a Imagem “lamp_off” e apagar o
texto.
13
Autor: Eng. Luan Bispo
Para distanciar o btn_luz da legenda do botão acima, iremos
adicionar um bloco de “Organização” entre eles (este bloco não
ficará visível ao usuário, somente o seu espaçamento).
Com isso a aparência do nosso aplicativo está pronta:
14
Autor: Eng. Luan Bispo
Ainda na Tela de Design, vamos adicionar:
Notificador, para exibir um alerta;
ClienteBluetooth, para fazer a conexão;
IniciadorDeAtividade, para iniciar a ativação do
bluetooth;
Temporizador, para receber os status do Arduino.
Nas propriedades de “ClienteBluetooth1”, vamos remover a
opção “seguro”.
15
Autor: Eng. Luan Bispo
Nas propriedades de “IniciadorDeAtividades1”, no campo de
Ação, devemos escrever o seguinte texto:
android.bluetooth.adapter.action.REQUEST_ENABLE
Para o “Temporizador1” devemos alterar o Intervalo para 100.
16
Autor: Eng. Luan Bispo
Após finalizar a parte do Design do nosso aplicativo, vamos
começar a desenvolver a programação dele. Para isso vamos à aba
de “Blocos” e vamos criar uma variável chamada “recebe_bluetooth”
e adicionar um texto vazio. Esta variável será responsável por
receber o que chega ao ClienteBluetooth1 para podermos analisar
esta informação.
17
Autor: Eng. Luan Bispo
O próximo passo é, ao inicializar a Tela Inicial do Aplicativo (o
App Inventor não permite que o Bluetooth funcione em mais telas),
verificar se o bluetooth está disponível ou não. Se não estiver
ativado, irá mandar uma notificação para o usuário.
18
Autor: Eng. Luan Bispo
Para iniciar a conexão do bluetooth, devemos criar algumas
condições para quando clicarmos no botão btn_conexão:
Caso o bluetooth já esteja ativo e conectado, vamos
desconectar e mudar o texto da Legenda.
19
Autor: Eng. Luan Bispo
Caso o bluetooth esteja ativo, mas não conectado,
vamos abrir a “EscolheLista1”.
Caso o bluetooth não esteja ativo, vamos gerar uma
notificação para o usuário informando-o que deve ativá-
lo e dar a opção de Ok e Sair do aplicativo.
20
Autor: Eng. Luan Bispo
21
Autor: Eng. Luan Bispo
Com disse anteriormente, se o Bluetooth estiver ativo, mas
não conectado, a lista será aberta quando clicarmos no botão.
Quando a lista abre ela tem dois parâmetros: AntesDeEscolher e
DepoisDeEscolher.
AntesDeEscolher – Este parâmetro Lista os dados do
Bluetooth. Ou seja, esta lista vai receber os elementos
que já estão pareados com o seu celular.
22
Autor: Eng. Luan Bispo
DepoisDeEscolher – Após pegar os dados escolhidos
pelo usuário temos que conectar a eles.
Se o bluetooth conectar, vamos mandar uma
mensagem ao usuário dizendo que está conectado e
mudar a legenda.
23
Autor: Eng. Luan Bispo
Para o Arduino não ficar mandando informações o tempo todo
e somente mandar quando conectar-se ao aplicativo iremos criar
uma condição que mandará o caractere “s” e ele responderá com o
seu status atual (esta parte será vista na programação do Arduino).
Caso não seja possível conectar o Bluetooth vamos mandar
outro alerta ao usuário, informando o problema.
24
Autor: Eng. Luan Bispo
Agora faremos o acionamento pelo botão “btn_luz”. Quando
clicarmos nele, vamos enviar o caractere “L” para o Arduino, para
que ele possa interpretá-lo e ligar a sua saída.
Para receber os dados do Arduino, vamos utilizar o
“Temporizador1”. Por segurança faremos com que ele receba só se
o Bluetooth estiver conectado, pois ele já inicia habilitado.
Se o bluetooth estiver conectado, vamos verificar se há dados
enviados por ele (via serial) e se são maiores que zero.
Caso haja dados, vamos armazená-los na variável que
criamos no início da programação.
25
Autor: Eng. Luan Bispo
Para tratar os dados que recebemos do Arduino, vamos
analisar a informação que ele enviou e comparar com uma que
iremos pré-definir.
Caso recebermos que a luz (ou o LED) está acesa, vamos
mudar a imagem do botão para o da lâmpada acesa (lamp_on).
Caso esteja apagado, vamos utilizar a imagem “lamp_off”.
Agora o Aplicativo já está finalizado!
26
Autor: Eng. Luan Bispo
Módulo 2 – Arduino
IDE
O primeiro passo para utilizar o Arduino é baixar a IDE
(Integrated Development Environment ou Ambiente de
Desenvolvimento Integrado), que pode ser baixada no site oficial:
www.arduino.cc
Após baixar e instalar a IDE deve-se conectar o Arduino ao
computador através do cabo USB para instalar os drives.
27
Autor: Eng. Luan Bispo
Para configurar o modelo do Arduino e qual porta ele está
conectado, abrimos a IDE e vamos a Ferramentas, conforme a
imagem abaixo:
As principais funcionalidades da IDE do Arduino são:
Escrever o código do programa;
Salvar o código do programa;
Compilar um programa;
Transportar o código compilado para a placa do Arduino.
28
Autor: Eng. Luan Bispo
VERIFICANDO A LUMINOSIDADE
Antes de começar a desenvolver o programa da
automação, precisamos verificar qual é o valor que o sensor
LDR irá receber quando acendermos o LED.
Para isso, vamos montar um circuito usando apenas os
dois componentes e um fazer um programa que lê as
informações do LDR quando o LED está aceso e apagado.
Ligação do Circuito (deixar o LED próximo ao LDR):
Programa:
29
Autor: Eng. Luan Bispo
Após montar o circuito e carregar o programa para o
Arduino, abrimos o Serial Monitor e verificamos quais são os
valores.
Podemos assumir que no meu caso com o LED aceso o
valor lido pelo sensor é menor que 400 (no seu teste este
valor pode ser diferente, dependendo da claridade do
ambiente).
Vamos guardar esta informação para utilizá-la no
programa final da automação.
30
Autor: Eng. Luan Bispo
PROGRAMAÇÃO
Agora vamos iniciar a programação do Arduino.
Primeiro vamos definir os pinos em que iremos ligar o
LED e o LDR:
Agora definir o pino do LED como saída (não precisa
declarar o pino do LDR como entrada) deixando o nível lógico
baixo para ele começar desligado e iniciar a porta serial:
Para armazenar as informações lidas pela serial do
Arduino vamos criar uma variável do tipo char e uma int para
armazenar a informação do sensor:
Agora vamos verificar se o que chega à serial é a
informação que mandamos quando apertamos o botão do
LED no aplicativo. Se for, vamos mandar acionar a saída de
acordo com o estado anterior (se estava desligado, liga e se já
estava ligado, desliga):
31
Autor: Eng. Luan Bispo
Para saber se o LED está ligado ou não vamos analisar
a informação do LDR. Vamos enviar esta informação via serial
para o aplicativo para que ele possa trocar a imagem do
botão.
Agora é só baixar para o Arduino!
32
Autor: Eng. Luan Bispo
Módulo 3 – Ligações e Teste
Após finalizar a programação do Aplicativo e do Arduino,
vamos montar o circuito com os componentes.
Esquema de Ligação:
Ligação:
33
Autor: Eng. Luan Bispo
TESTANDO O APLICATIVO
Iniciando o aplicativo com o bluetooth desligado:
Clicando no botão de conexão com bluetooth desativado:
34
Autor: Eng. Luan Bispo
Bluetooth ativado, mas não conectado:
Após conectar o bluetooth:
35
Autor: Eng. Luan Bispo
Acendendo a Luz e recebendo sinal do Sensor informando
que está acesa:
LED aceso e iluminando o LDR:
36
Autor: Eng. Luan Bispo
Para automatizar a iluminação de uma casa, podemos
usar este mesmo conceito de acionamento. No lugar do LED
podemos colocar um Transistor + Relé (ensinado no curso de
Eletrônica Básica) e acionar as lâmpadas em paralelo com o
Interruptor.
O sensor LDR pode ser usado, porém ele pode não ser
tão preciso, pois mesmo se a lâmpada estiver apagada, mas
houver uma iluminação nele, o aplicativo vai mostrar que a
lâmpada está acesa. O recomendado seria usar um sensor de
corrente em serie com a lâmpada. Quando ela ligar, o sensor
irá informar ao Arduino que há corrente passando por ela e
informará corretamente o acionamento.
Isso tornará o seu projeto mais profissional e seguro!
37
Autor: Eng. Luan Bispo