Muhammad_Munir
Published © GPL3+

Control AC Load with Voice Commands

Control AC Load with Voice Commands

IntermediateFull instructions provided635
Control AC Load with Voice Commands

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Relay (generic)
×4
Jumper wires (generic)
Jumper wires (generic)
×1
HC-05 Bluetooth Module
HC-05 Bluetooth Module
×1
BD139 Transistor
×4
2.2k Resistor
×4

Software apps and online services

Arduino Bluetooth Controller

Hand tools and fabrication machines

Hot glue gun (generic)
Hot glue gun (generic)
Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Code

Control AC load with Voice Command

Arduino
String voice;

#define r1 5
int relay1 = LOW;
#define r2 6
int relay2 = LOW;
#define r3 7
int relay3 = LOW;
#define r4 8
int relay4 = LOW;
void setup() 
{                                           
  Serial.begin(9600);
   pinMode(r1, OUTPUT); 
    pinMode(r2, OUTPUT);
    pinMode(r3, OUTPUT); 
    pinMode(r4, OUTPUT);
 }
void loop() {
 while (Serial.available())   //Check if there is an available byte to read
  {                            
  delay(10);                   //Delay added to make thing stable
  char c = Serial.read();      //Conduct a serial read
  voice += c;                  //Shorthand for voice = voice + c
  } 

  if (voice.length() > 0) 
  {
    Serial.println(voice);
   if(voice == "all off")                             
     {
            digitalWrite(r1,0);
            digitalWrite(r2,0);  //all off
            digitalWrite(r3,0);
            digitalWrite(r4,0);
            delay(250);
     }  
  else if(voice == "fan")                              
     {
    
            relay1 = ~ relay1;
            digitalWrite(r1,relay1);
            delay(250);
     }
  else if(voice == "light")                              
     {
            relay2 = ~ relay2;
            digitalWrite(r2,relay2);
            delay(250);
     }
  else if(voice == "lamp")                              
     {
            relay3 = ~ relay3;
            digitalWrite(r3,relay3);
            delay(250);
     }
      else if(voice == "tubelight")                              
     {
             relay4 = ~ relay4;
            digitalWrite(r4,relay4);
            delay(250);
     }
  voice="";                                                       //Reset the variable after initiating
  }}

Credits

Muhammad_Munir
79 projects • 56 followers
I am Arduino programmer, also expertise in ESP32 and 8266 wifi modules.

Comments