Imagine a seguinte situação: está calor, você está na cama e quer mudar a velocidade do ventilador. Ter que se levantar para alterar não é bem o que você queria, não é mesmo? Que tal um ventilador controlado por Bluetooth através do seu celular? Para comprar algo assim é um pouco caro, mas nesse post iremos ensiná-lo a transformar seu ventilador tradicional de chave manual em um super ventilador controlado pelo smartphone! Isso tudo de forma simples, barata e prática, garantindo acessibilidade de conforto tecnológico a baixo custo, inclusão de pessoas deficientes no uso desta tecnologia e o desenvolvimento da cultura maker (pois encorajar pessoas a colocar a mão da massa é o que nos move). Vale a ressalva de que este é um projeto que pode ser atribuído a outros eletrodomésticos que você queira automatizar.
Orientamos aos caros leitores que garantam a sua própria segurança no desenvolvimento deste projeto. É necessário utilizar equipamentos de segurança e possuir habilidade para trabalhar com eletricidade.
E aí, vamos por a mão na massa? Preparado para aprender? Então pegue aquele seu ventilador velho que está largado no canto do quarto e vamos deixar de conversa! Assista o vídeo abaixo e veja como ficará seu ventilador.
Materiais necessários
Para adaptar esse ventilador será necessário algumas ferramentas:
- Tesoura
- Estilete
- Cola Quente
- Cola instantânea
- Estanho para solda
- Ferro de Solda
- Fita Isolante
- Lixa
Não esqueça de seus EPI’s (Equipamento de Proteção Individual):
- Luvas
- Óculos de proteção
- Mascara
Além dos itens citados acima, os seguintes componentes são necessários:
- 01 x Arduino UNO
- 01 x Módulo relé 4 canais
- 01 x Módulo Bluetooth HC-05 (ou similar)
- 04 x Resistores 330 Ohms
- 01 x Resistor 1K Ohms
- 01 x Resistor 2K Ohms
- 03 x Leds de Alto Brilho Branco
- 01 x Led Vermelho
- 01 x Mini Prtoboard
- 01 x Chave Táctil Push Button
Desmontando o ventilador
Vamos começar desmontando o ventilador. Como existem vários modelos de ventiladores no Brasil, não temos como demonstrar precisamente o passo-a-passo de como desmontá-lo. Porém, todos são bastante simples e intuitivos e a maioria tem as peças fixadas por travas. Nesse primeiro passo é necessário retirar a chave (botão rotatório que regula a velocidade do ventilador) e observar a posição e cores dos fios conforme figura abaixo.
Observe a posição dos fios no seletor e anote cautelosamente. Essa informação será muito importante para que a lógica de programação funcione adequadamente. Lembre-se que as cores podem mudar de acordo com o modelo do ventilador. Nesse exemplo, utilizamos um ventilador da marca Malory.
Adaptando o ventilador para ser controlado via Bluetooth
Chegou a hora de substituir a chave convencional pelo relé! Usaremos um relé de quatro canais onde cada canal substituirá uma posição da chave que tem 04 estágios: Ligar, velocidade 1, velocidade 2 e velocidade 3.
O esquema de montagem feito no Fritzing mostra detalhadamente como deve ser feita a ligação dos componentes.
Conexão do relé com o ventilador: Os fios azul, vermelho, branco e amarelo eram os que antes estavam conectados na chave seletora. Agora é o relé quem irá exercer a função da chave seletora e, portanto, precisamos conectar os fios conforme a figura acima.
Conexão do relé com o Arduino: Os pinos IN1, IN2 e IN3 do relé devem ser conectados nas portas digitais 5, 6 e 7 do Arduino.
Conexão dos LEDs e botão com o Arduino: Ligue o botão na porta digital 4 e os LEDs nas portas digitais 8, 9, 10 e 11.
Conexão do módulo Bluetooth com o Arduino: Os pinos TX e RX do Módulo Bluetooth HC-05 deve ser ligados nos pinos 0 (RX) e 1 (TX) do Arduino, respectivamente. Perceba que entre o pino RX do módulo Bluetooth e o pino TX do Arduino há um divisor de tensão. Isso é necessário pois o módulo HC-05 trabalha em um nível lógico de 3,3V. (Para ter mais informações sobre esta conexão acesse o post Como usar o Arduino Bluetooth HC-05 em modo mestre).
Observe como fica a montagem do circuito nas figuras abaixo:
Embutindo o circuito na parte inferior do ventilador, veremos que a estética do ventilador permanece a mesma de quando era original, sem fios soltos nem placas a mostra.
Código para o ventilador controlado via Bluetooth
Agora que o circuito está montado, podemos programar nosso Arduino. Abra a sua IDE e copie o código que iremos explicar em seguida:
#include <PushButton.h> // uso a biblioteca com controle de debounce #define Vmaxima 7 // pino referente ao rele da velocidade maxima #define Vmedia 6 // pino referente ao rele da velocidade media #define Vbaixa 5 // pino referente ao rele da velocidade minima #define pinBotao 4 #define V0 11 // led de refente a velocidade 0 #define V1 10 // led de refente a velocidade 1 #define V2 9 // led de refente a velocidade 2 #define V3 8 // led de refente a velocidade 3 int contador = 0; // variavel do tipo inteiro para fazer a contagem int comando; PushButton botao(pinBotao); // crio uma classe chamada botao para a porta pinBotao (pino 4) void setup() { Serial.begin(9600); //Inicio uma comunico serial pinMode(Vmaxima,OUTPUT); //Defino essa porta como saida pinMode(Vmedia,OUTPUT); //Defino essa porta como saida pinMode(Vbaixa,OUTPUT); //Defino essa porta como saida pinMode(V0,OUTPUT); //Defino essa porta como saida pinMode(V1,OUTPUT); //Defino essa porta como saida pinMode(V2,OUTPUT); //Defino essa porta como saida pinMode(V3,OUTPUT); //Defino essa porta como saida digitalWrite(Vmaxima,1); // deligo os reles digitalWrite(Vmedia, 1); digitalWrite(Vbaixa, 1); digitalWrite(V0, 1); // ligo o led vermelho } void loop() { botao.button_loop(); if (botao.pressed()) contador++; if(Serial.available()>0){ //verifico se a comunicao serial esta disnponivel e se ela for maior que "0" ela entra nesse if. comando = Serial.read(); //Leio a serial e cerrego na variavel "comando". if(comando=='a') contador=1; //Se comando for 'a' contador recebe 1 if(comando=='b') contador=2; //Se comando for 'b' contador recebe 2 if(comando=='c') contador=3; //Se comando for 'c' contador recebe 3 if(comando=='d') contador=0; //Se comando for 'd' contador recebe 0 } //VELOCIDADE MINIMA if(contador==1){ digitalWrite(Vmaxima,0); digitalWrite(Vmedia, 1); digitalWrite(Vbaixa, 1); digitalWrite(V0,0); digitalWrite(V1,0); digitalWrite(V2,0); digitalWrite(V3,1); } //VELOCIDADE MEDIA else if(contador==2){ digitalWrite(Vmaxima,1); digitalWrite(Vmedia, 0); digitalWrite(Vbaixa, 1); digitalWrite(V0,0); digitalWrite(V1,0); digitalWrite(V2,1); digitalWrite(V3,0); } //VELOCIDADE MAXIMA else if(contador==3){ digitalWrite(Vmaxima,1); digitalWrite(Vmedia, 1); digitalWrite(Vbaixa, 0); digitalWrite(V0,0); digitalWrite(V1,1); digitalWrite(V2,0); digitalWrite(V3,0); } //DELISGADO else if(contador==0){ digitalWrite(Vmaxima,1); digitalWrite(Vmedia, 1); digitalWrite(Vbaixa, 1); digitalWrite(V0,1); digitalWrite(V1,0); digitalWrite(V2,0); digitalWrite(V3,0); } else if(contador==4) contador=0; }
Nosso programa tem 3 áreas de destaque, a área de DECLARAÇÃO, o SETUP e o LOOP. Começando pelo primeiro ambiente, logo na primeira linha temos a importação da biblioteca PushButton.h que você pode baixar no link: Biblioteca PushButton.
#include <PushButton.h> // uso a biblioteca com controle de debounce #define Vmaxima 7 // pino referente ao rele da velocidade maxima #define Vmedia 6 // pino referente ao rele da velocidade media #define Vbaixa 5 // pino referente ao rele da velocidade minima #define pinBotao 4 #define V0 11 // led de refente a velocidade 0 #define V1 10 // led de refente a velocidade 1 #define V2 9 // led de refente a velocidade 2 #define V3 8 // led de refente a velocidade 3 int contador = 0; // variavel do tipo inteiro para fazer a contagem int comando; PushButton botao(pinBotao); // crio uma classe chamada botao para a porta pinBotao (pino 4)
Da linha 3 até a linha 12 do código temos a declaração das variáveis anexas as referidas portas do Arduino.
A linha 14 inicializa o “contador” em zero. Essa variável terá a função de gravar o estado em que o ventilador está, garantindo as mudanças de velocidade.
Na linha 15, a variável “comando” corresponde ao carácter que será enviado pelo celular. Dependendo do carácter recebido via Bluetooth, o Arduino irá acionar a velocidade correspondente no ventilador.
Já na linha 17 instanciamos um objeto a classe PushButton.
Na segunda parte do código temos o void setup, nele são descritas todas as configurações e inicializações necessárias para o bom funcionamento do código.
void setup() { Serial.begin(9600); //Inicio uma comunico serial pinMode(Vmaxima,OUTPUT); //Defino essa porta como saida pinMode(Vmedia,OUTPUT); //Defino essa porta como saida pinMode(Vbaixa,OUTPUT); //Defino essa porta como saida pinMode(V0,OUTPUT); //Defino essa porta como saida pinMode(V1,OUTPUT); //Defino essa porta como saida pinMode(V2,OUTPUT); //Defino essa porta como saida pinMode(V3,OUTPUT); //Defino essa porta como saida digitalWrite(Vmaxima,1); // deligo os reles digitalWrite(Vmedia, 1); digitalWrite(Vbaixa, 1); digitalWrite(V0, 1); // ligo o led vermelho }
Na linha 20 a comunicação serial é inicializada a uma taxa de transferência de 9600 baunds.
Da linha 22 até a 29 do nosso código configuramos as portas que estão conectadas os LEDs e o relé.
Logo em seguida nas linhas 31, 32 e 33 desligo todos os relés para garantir que o ventilador, ao ser conectado na tomada, inicialize desligado.
Na linha 35 o LED vermelho é inicializado sinalizando para o usuário que o ventilador esta desligado, porém energizado e aguardando o comando para ligar.
No loop dividimos a explicação em duas áreas importantes: a forma de controle do ventilador e o acionamento e identificação da sua velocidade.
void loop() { botao.button_loop(); if (botao.pressed()) contador++; if(Serial.available()>0){ //verifico se a comunicao serial esta disnponivel e se ela for maior que "0" ela entra nesse if. comando = Serial.read(); //Leio a serial e cerrego na variavel "comando". if(comando=='a') contador=1; //Se comando for 'a' contador recebe 1 if(comando=='b') contador=2; //Se comando for 'b' contador recebe 2 if(comando=='c') contador=3; //Se comando for 'c' contador recebe 3 if(comando=='d') contador=0; //Se comando for 'd' contador recebe 0 }
Na linha 41 são definidas as formas de controle do ventilador. Caso o botão seja pressionado, a variável “contador” é incrementada mudando a velocidade do ventilador.
A partir da linha 43, fazemos a definição da velocidade a partir do comando recebido através da porta serial com a comunicação Bluetooth. Para cada carácter recebido (a, b, c, d) o programa associa a uma mesma condicional numérica, como se o comando tivesse sido executado através do botão.
Essa condição é mostrada na imagem abaixo:
//VELOCIDADE MINIMA if(contador==1){ digitalWrite(Vmaxima,0); digitalWrite(Vmedia, 1); digitalWrite(Vbaixa, 1); digitalWrite(V0,0); digitalWrite(V1,0); digitalWrite(V2,0); digitalWrite(V3,1); } //VELOCIDADE MEDIA else if(contador==2){ digitalWrite(Vmaxima,1); digitalWrite(Vmedia, 0); digitalWrite(Vbaixa, 1); digitalWrite(V0,0); digitalWrite(V1,0); digitalWrite(V2,1); digitalWrite(V3,0); } //VELOCIDADE MAXIMA else if(contador==3){ digitalWrite(Vmaxima,1); digitalWrite(Vmedia, 1); digitalWrite(Vbaixa, 0); digitalWrite(V0,0); digitalWrite(V1,1); digitalWrite(V2,0); digitalWrite(V3,0); } //DELISGADO else if(contador==0){ digitalWrite(Vmaxima,1); digitalWrite(Vmedia, 1); digitalWrite(Vbaixa, 1); digitalWrite(V0,1); digitalWrite(V1,0); digitalWrite(V2,0); digitalWrite(V3,0); } else if(contador==4) contador=0; }
Observando a primeira condição na linha 53, vemos que se a variável “contador” for igual a 1, o relé e o led referente a velocidade baixa do ventilador são acionados. A lógica segue a mesma para as demais velocidades.
Controlando o ventilador via Bluetooth
O aplicativo utilizado para controle do ventilador foi o Bluetooth Eletronics (disponível para Android) e você pode baixá-lo clicando aqui.
Iremos criar uma aplicação simples contendo quatro botões: um para desligar o ventilador e outros três botões para alterar a velocidade. Para iniciar o processo de criação de seu aplicativo, clique em um novo painel e em seguida no botão Edit. Veja a figura:
Na barra lateral direita, você terá várias opções de ferramenta para interação. Para selecionar um botão, clique em Buttons.
Uma nova janela aparecerá, com algumas opções de botões para inserir no seu aplicativo.
Para inserir um botão, basta arrastar o mesmo para dentro do ambiente de desenvolvimento.
Agora é necessário vincular um caracter ao botão. Na linha 48 do código definimos que o comando desligar está vinculado ao caracter “d”. Por isso, devemos associar ao primeiro botão ao caracter “d”. Clique em Edit e digite em ambas caixas de texto a letra “d”.
Repita o processo para os outros três botões. Vincule a esses botões as letras “a”, “b” e “c”.
Após concluída essa etapa, saia do ambiente de desenvolvimento. Selecione o aplicativo recém criado e clique em Connect. Caso seja a primeira vez que você esteja pareando seu smartphone ao módulo HC-05, clique em Discover, na lista Discovered Devices selecione o módulo HC-05, clique em Pair e digite a senha “1234”. Depois, na lista Paired Devices, selecione novamente o módulo HC-05, clique em Connect e por fim clique em Done.
Para executar o aplicativo, selecione o mesmo em clique em Run.
Agora você já pode controlar seu ventilador através do seu smartphone!
Conclusão
Este projeto tem por objetivo conscientizar a reutilização de eletrodomésticos e eletrônicos diminuindo assim o lixo tecnológico, bem como inserir nossos leitores no mundo Maker onde você mesmo desenvolve seus projetos e criações. Pegue essa ideia e amplie ela, aprimore, desenvolva e comente aqui seus resultados, estamos esperando ansiosos seu feedback para apreciarmos seu crescimento.
Gostou de aprender a controlar um ventilador via Bluetooth do seu smartphone usando o Arduino? Ajude-nos a melhorar o blog comentando abaixo sobre este tutorial.
estava projetando algo do tipo e resolvi pesquisar pois estava tentando reduzir o numero de reles e descobri que nao teria como (usando reles comuns de 2 posicoes) tem quem usar 3 reles (sendo q um deles é o ON/OFF), entao encontrei o seu projeto na internet. Gostaria de dar uma dica, reles dao pau ou ate mesmo o programa ou o micro, as vezes os contatos colam numa posicao. Se acontecer isso a forma como voce ligou pode energizar mais de uma bobina do motor ao mesmo tempo, nao sei o que acontece kkkkkk sera que vai ter cheiro de amper queimado kkkkk. entao a dica é mudar o projeto e usar eles na forma de cascata, assim nunca ira acontecer de ligar as 2 ou 3 bobinas do motor ao mesmo tempo (que é a peça mais cara), o que pode acontecer é nao mudar a velocidade. Desvantagem para ligar a ultima chave da cascata teria que ligar os 3 reles, gasta mais energia mA dos reles e aumenta os desgastes dos 3 reles. o que pode ser feito para minimizar o problema é escolher qual velocidade mais se usa e colocar logo no RL2 (NF/NC) assim ao acionar o RL1 (NA/NO)(ON/ONFF) ele ja liga na velocidade que vc mais usa, economizando desgaste dos demais reles. E para evitar o faiscamento em todos os reles, o melhor seria ligar ele na sequencia invertida, do ultimo para o primeiro assim ao ligar o primeiro os demais ja estariam posicionados na velocidade correta, nao ocorrendo o faiscamento nos contatos. Ate mesmo usaria sempre o RL1 desligando-o antes de mudar de velocidade e ele sempre o ultimo a ligar, dai o desgaste dos contatos seria mais nele.
Olá.
O relé “cola” o contato quando realmente ele chegou ao seu fim de vida útil.
Isso pode acontecer por diversos fatores, mas os dois mais importantes são: quantidade de acionamentos e corrente elétrica que passa pelo relé. Ou seja, isso depende do quanto o usuário vai utilizar esse sistema e da potência do ventilador a ser usado.
Relacionado a faiscamento e ruído dos acionamentos, o ideal é usar um filtro supressor de ruído em paralelo com cada bobina. Isso vale para todos os circuitos, ou seja, ligar um filtro supressor em cada terminal de carga indutiva.
Fico a disposição.
Att.
Vitor Mattos.
MakerHero.
Olá, eu estou fazendo este projeto, porém a linha 38 ( botao.button_loop(); ) não esta na biblioteca que precisa baixar, gostaria de uma solução, eu não sei o que fazer.. Obrigado !!
Olá,
Achei muito interessante o projeto! O que seria legal é adaptar o projeto para ser controlado pelo Google Home por comando de voz! Aí seria bacana mesmo!
quero fazer ventilador com bletooth
oi eu fiz esse projeto e nao consigo instalar a biblioteca pushboton vcs tem essa biblioteca
Olá Thiago,
Você pode ir em Ferramentas -> Gerenciar Bibliotecas na IDE do Arduino
Digitar Pushbutton na barra de pesquisa e rolar para baixo até encontrar a biblioteca
“Pushbutton by Pololu” e instalar
Talvez precise alterar na primeira linha de para (com b minúsculo)
Abraços!
Vinícius – Equipe MakerHero
Boa Tarde Sandro, parabéns pelo Artigo. gostei muito. minha duvida e se eu apenas derivar o fios da chave seletora terei controle tanto via Bluetooth e também manual?
Gostei do projeto , já conhecia o aplicativo.
Parabéns pelo projeto.