SandroMesquitaBianorPixelsEscola
Published © GPL3+

Cellular Controlled Fan

Turn your traditional fan or broken button thrown in the garage into a super fan controlled by your smartphone.

IntermediateFull instructions provided2,657
Cellular Controlled Fan

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
HC-05 Bluetooth Module
HC-05 Bluetooth Module
×1
Relay Module (Generic)
×1
5 mm LED: Red
5 mm LED: Red
×1
High Brightness LED, White
High Brightness LED, White
×3
Phone Charger 5V
×1

Software apps and online services

MIT App Inventor
MIT App Inventor

Hand tools and fabrication machines

Plier, Cutting
Plier, Cutting
Plier, Side Cutting
Plier, Side Cutting
Tape, Electrical
Tape, Electrical
Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free

Story

Read more

Schematics

Wiring diagram

Code

Code of Fun automation

Arduino
#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;
  }
 

Credits

SandroMesquita

SandroMesquita

14 projects • 113 followers
Professor de robótica com Arduino e Raspberry, estudando e aplicando conhecimentos de I.A. usando a Linguagem Python como base.
Bianor

Bianor

10 projects • 56 followers
PixelsEscola

PixelsEscola

14 projects • 69 followers

Comments