Tutorial: Sistema Simples de Automação com Bluetooth

Olá Garagistas!

Neste tutorial vamos mostrar como criar um sistema simples de automação para controlar luzes, ventiladores, contatores e outros dispositivos em uma residência ou comércio.

Este projeto permite que cada relé da placa AutomationBoard seja acionando pelo celular, através do aplicativo "Arduino Bluetooth Control", que envia caracteres para o módulo bluetooth HC-06 (4 pinos). O Arduino, ou no caso, a AutomationBoard, por sua vez, recebe esses caracteres via serial (vindos através) do módulo e toma a ação de ligar ou desligar os relés conforme a programação que explicaremos mais à frente.

Assim, conforme a imagem acima, configuramos cada botão do aplicativo para ligar ou desligar um relé específico na placa.

Materiais

1x Placa AutomationBoard (incluir conversor e cabo com plug de tomada)

1x Módulo Bluetooth HC-06 (4 pinos)

4x Jumpers M/F

Funcionamento

O funcionamento deste projeto é muito simples. O aplicativo "Arduino Bluetooth Control" envia para o módulo bluetooth um caracter diferente para cada botão e em cada situação. Assim, se apertarmos o primeiro botão, ele muda para "ON", fica verde e envia o caracter "A". Se apertarmos o mesmo botão novamente, ele muda para "OFF", fica vermelho e envia o caracter "a" para o módulo bluetooth. E assim sucessivamente, "B" ou "b" para o segundo botão, "C" ou "c" para o terceiro botão, etc. 

O módulo bluetooth HC-06 que utilizamos, funciona como um conversor, entre o padrão bluetooth e serial. Assim, os caracteres recebidos pelo circuito de rádio são retransmitidos via serial para a AutomationBoard.

A AutomationBoard funciona exatamente como um Arduino UNO. Criamos uma porta serial nos pinos 10 e 11, via programação. No nosso código ela recebe os caracteres enviados pelo módulo e decide o que fazer: se receber o caracter "A", liga o relé 1, se receber o caracter "a", desliga o relé 1, se receber o caracter "B", liga o relé 2, e assim por diante.

Conexões

Graças às facilidades proporcionadas pela AutomationBoard (fonte onboard, relés onboard, headers, etc), são necessários apenas 4 jumpers. Confira a foto acima ou siga a tabela abaixo para fazer as conexões:

Módulo HC-06 VCC <---> AutomationBoard 5V

Módulo HC-06 GND <---> AutomationBoard GND

Módulo HC-06 RXD <---> AutomationBoard Pino 11

Módulo HC-06 TXD <---> AutomationBoard Pino 10

O módulo HC-06 é tolerante ao nível 5V, então não é necessário usar conversores de nível lógico.

Mostraremos mais para frente como conectar cargas como lâmpadas, ventiladores, contatores, etc. Por enquanto, vamos nos concentrar em acionar os relés e verificar o acendimento dos seus respectivos LEDs.

Feitas as conexões acima, e tendo o cabo de energia já ligado à AutomationBoard, conecte o módulo conversor USB/Serial para programar a placa e envie o código a seguir. Se você está usando a AutomationBoard pela primeira vez dê uma olhada neste tutorial para entender como programar a placa: Tutorial: Primeiros Passos com a Automation Board

Código comentado

//########################################

#include <SoftwareSerial.h>
/* Para que a comunicaçao com o modulo nao interfira na programacao da placa,
criamos uma nova porta serial para ele.
*/

SoftwareSerial minhaSoftSerial(10, 11); // pinos RX/TX para o modulo

void setup()
{
Serial.begin(9600); //porta serial (hardware) para monitorar os caracteres enviados
Serial.println("labdegaragem.com"); // mensagem de inicializacao

minhaSoftSerial.begin(9600); // inicializacao da porta serial para o modulo

pinMode(5, OUTPUT); // declara pino 5 como saida para o Rele 1
pinMode(6, OUTPUT); // declara pino 6 como saida para o Rele 2
pinMode(7, OUTPUT); // declara pino 7 como saida para o Rele 3
pinMode(8, OUTPUT); // declara pino 8 como saida para o Rele 4
}

void loop()
{
if (minhaSoftSerial.available()){ // Se a serial estiver disponivel, tem caracter para ler
char caracter = minhaSoftSerial.read(); // salva o caracter lido na variavel 'a'
Serial.write(caracter); // escreve o caracter recebido via bluetooth na serial do PC para conferencia
if (caracter=='A'){ digitalWrite(5, HIGH); } // Liga Rele 1
if (caracter=='a'){ digitalWrite(5, LOW); } // Desliga Rele 1
if (caracter=='B'){ digitalWrite(6, HIGH); } // Liga Rele 2
if (caracter=='b'){ digitalWrite(6, LOW); } // Desliga Rele 2
if (caracter=='C'){ digitalWrite(7, HIGH); } // Liga Rele 3
if (caracter=='c'){ digitalWrite(7, LOW); } // Desliga Rele 3
if (caracter=='D'){ digitalWrite(8, HIGH); } // Liga Rele 4
if (caracter=='d'){ digitalWrite(8, LOW); } // Desliga Rele 4
}
}

//############################################

Aplicativo

Baixe e instale o aplicativo "Arduino Bluetooth Control". Você poderá encontrá-lo na Google Play Store usando a busca e digitando "arduino bluetooth". Ele aparecerá como na imagem abaixo, na segunda posição.

Após aberto, o aplicativo aparecerá conforme a tela abaixo, você só precisa clicar em "Connect", na parte de baixo. 

Uma lista de dispositivos bluetooth irão aparecer, selecione HC-06. A senha é "1234". Caso tenha problemas para conectar o dispositivo, feche o aplicativo e conecte diretamente através do Android em "Configurações -> Bluetooth", depois abra novamente o aplicativo e repita o processo.

No momento que você parear o módulo com o celular, o LED vermelho no módulo HC-06 irá parar de piscar e ficará aceso, indicando que ele está pareado.

Pronto! Agora é só apertar os 4 primeiros botões e ouvir os estalos dos relés acionando na AutomationBoard. Os LEDs correspondentes a cada relé irão acender também. Você poderá personalizar os botões com os nomes das suas cargas, exemplo: "Lâmpada da Sala", "Cozinha", etc. Para isso, clique em "More->Button Name Settings".

Adicionando cargas

Ver os LEDs acender e escutar os estalos dos relés é legal. Mas o que vale mesmo é acionar cargas maiores. Então vamos lá...

Atenção:

1. Verifique a capacidade dos relés e não tente acionar cargas maiores que essa capacidade.

2. Não toque na placa sempre que ela estiver energizada. Há risco de choque.

3. Se você não tem experiência com instalações elétricas, procure um profissional habilitado para lhe auxiliar. Com rede elétrica não se brinca.

Uma pausa para entender o funcionamento dos relés

Os relés são dispositivos eletromecânicos que funcionam como um interruptor (liga/desliga). Repare que na placa AutomationBoard existem 3 conectores com parafusos para cada relé, abaixo deles os dizeres: NA, C e NF. Esses identificam cada pino conectado ao relé para que você possa conectar a sua carga da maneira correta.

NA: Normalmente Aberto - É o pino que só fechará contato quando o relé for acionado.

C: Comum - Esse pino alterna o contato entre os pinos NA e NF.

NF: Normalmente Fechado - É o pino que está em contato com o C quando o relé não está acionado e terá o contato aberto quando o relé acionar.

Veja a imagem abaixo para maior clareza:

Conectando uma lâmpada

Assim, para cada relé você poderá adicionar uma carga, conforme o exemplo da foto a seguir, onde conectamos uma lâmpada ao relé 4. Repare a conexão da lâmpada ao relé.

É isso aí! Boa sorte com o seu sistema. E não esqueça de compartilhar seu projeto com a comunidade.

Referências

http://labdegaragem.com/profiles/blogs/primeiros-passos-com-a-autom...

Exibições: 29064

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de luidgi silva magalhães em 11 abril 2017 às 14:14

Bem, sou iniciante, iria usar este exemplo para ativar e desativar um sistema de alarme através deste app... fui pesquisar com esses vendedores  http://lista.mercadolivre.com.br/bluetooth_CustId_155155928#D[A:bluetooth,SI:155155928]

http://lista.mercadolivre.com.br/bluetooth_CustId_230610294#D[A:bluetooth,SI:230610294]

qual serviria? ql a diferença do tranceiver; master; slave; master/slave; slave/master?...

Comentário de Marcelo Rodrigues em 17 março 2016 às 13:16

Leandro,

O App não precisa ficar em primeiro plano, mas não pode ser encerrado. Ou seja, você pode continuar usando o tablet ou celular. Nesse caso os estados não mudam.

Se encerrar o App e abrir de novo, os estados não serão atualizados. Nesse tutorial o App só envia caracteres para a placa, não lê nada de volta. É um tutorial para aprendizado, não é um projeto de um produto para o mercado.

Para ler o estado da lâmpada quando tiver um interruptor em paralelo será necessário o uso de um sensor de corrente. Se tiver corrente, a lâmpada está acesa.

Abraço!

Comentário de Leandro Cesar Agapito da Silveir em 17 março 2016 às 12:51
Pergunta. Se eu abrir o app e acender a lâmpada, se eu sair do app a lâmpada continua ligada? E quando eu abrir novamente o app, ele vai mostrar o estado da lâmpada como ligado?
Outra pergunta, se eu fizer uma ligação em paralelo pra acender tanto pelo interruptor como pelo app, o comando feito no interruptor, seja ligar ou desligar, vai alterar o estado no app?
Comentário de Marcelo Rodrigues em 3 março 2016 às 16:44

Heitor,

Não da maneira como estamos trabalhando este tutorial. Para dimerizar a lâmpada seria necessário outro circuito, com relé não é possível.

Abraço

Comentário de Heitor Augusto Erdei Georg em 3 março 2016 às 15:05

Muito bom saber!

deixa eu perguntar é possível controlar diretamente na placa através de interruptores pulsadores para ter um melhor controle de estado da luz?

Comentário de Marcelo Rodrigues em 3 março 2016 às 10:29

Heitor,

Sim. Você pode ter o controle manual do interruptor ou via bluetooth simultaneamente. Para isso, precisa ligar o relé como se ele fosse um interruptor paralelo comum em qualquer instalação elétrica.

Veja o esquema de ligação abaixo:

O esquema acima foi tirado do site: http://gambiarrista.blogspot.com.br/2011/04/como-instalar-um-interr... que dá mais informações sobre interruptores paralelos.

O relé tem 3 pinos, e funciona como um interruptor, mas ao invés de uma pessoa mudando a posição da chave, ele tem uma bobina interna que faz esse trabalho.

Boa sorte!

Comentário de Heitor Augusto Erdei Georg em 2 março 2016 às 16:40

este sistema é possível controlar via Bluetooth e interruptor de luz? se sim como?

Comentário de Marcelo Rodrigues em 26 fevereiro 2016 às 11:19

Horst,

Claro! Como sempre. Vamos te ligar aí!

Paulo,

Sem problema. Te mando uma placa já programada com o mesmo firmware do tutorial. Você precisará apenas instalar o App no seu celular e parear com o módulo. Vou te escrever para combinar.

Pessoal, obrigado pelo apoio a esse novo produto!

Abraços!

Comentário de Paulo Afonso em 25 fevereiro 2016 às 10:50

Olá Marcelo, parabéns pelo seu projeto!

Marcelo, tenho formação em Técnico de Eletrônica e Elétrica, mas já aposentado a muito tempo e iniciei os meus estudos nos tempos das Válvulas e dos micro processadores Z80 e procurei acompanhar a evolução das tecnologias na área, o que pude. Acompanho o "Laboratório de Garagem", em off, apenas corujando e já coisas fabulosas por aqui, no entanto Marcelo, gostaria de possuir este seu Projeto, "Sistema Simples de Automação com Bluetooth", mas para isto te faço uma pergunta, te comprando o Kit e tendo um Smartphone Androide 5.0 em diante é só instalar o programa no CEL que ele já está pronto para funcionar, pois que não sei programar e até aprender, levaria um tempo.

Posso adquirir seu produto e se divertir com ele sem a necessidade de ser um programador!
Se sim, como compra-lo, sou do Rio de Janeiro.

Paulo Afonso, obrigado Marcelo, aguardo!!
E-Mail - pasfrade@yahoo.com.br

Comentário de Paulo Farnocchi em 18 fevereiro 2016 às 9:21

Ok, agora saquei. Pensando bem não haveria mesmo razão de se ter algo similar mais em conta ao se produzir um módulo, fugiria da lógica. A explicação está muito boa. 

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço