Techatronic
Published

GSM based home automation using Arduino and Sim900

This is a GSM-based home automation project in which we are controlling the appliances using Arduino and GSM module.

IntermediateProtip2 hours1,658
GSM based home automation using Arduino and Sim900

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
sim 900
×1
9V battery (generic)
9V battery (generic)
×1
4-CHANNEL RELAY CONTROLLER FOR I2C
ControlEverything.com 4-CHANNEL RELAY CONTROLLER FOR I2C
×1
LED Light Bulb, Frosted GLS
LED Light Bulb, Frosted GLS
×1
Resistor 220 ohm
Resistor 220 ohm
×1
USB-A to B Cable
USB-A to B Cable
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Code

Code snippet #1

Plain text
 // Techatronic.com  
 #define Bulb1 3  
 #define Bulb2 4  
 #define Bulb3 5  
 int temp=0,i=0;  
 int led=8;  
 char str[15];  
 void setup()  
 {  
 Serial.begin(9600);  
 pinMode(led, OUTPUT);  
 pinMode(Bulb1, OUTPUT);  
 pinMode(Bulb2, OUTPUT);  
 pinMode(Bulb3, OUTPUT);  
 digitalWrite(Bulb1,HIGH);  
 digitalWrite(Bulb2,HIGH);  
 digitalWrite(Bulb3,HIGH);  
 Serial.println("AT+CNMI=2,2,0,0,0");  
 delay(500);  
 Serial.println("AT+CMGF=1");  
 delay(1000);  
 }  
 void loop()  
 {  
 if(temp==1)  
 {  
 check();  
 temp=0;  
 i=0;  
 delay(1000);  
 }  
 }  
 void serialEvent()  
 {  
 while(Serial.available())  
 {  
 if(Serial.find("#A."))  
 {  
 digitalWrite(8, HIGH);  
 delay(1000);  
 digitalWrite(8, LOW);  
 while (Serial.available())  
 {  
 char inChar=Serial.read();  
 str[i++]=inChar;  
 if(inChar=='*')  
 {  
 temp=1;  
 return;  
 }  
 }  
 }  
 }  
 }  
 void check()  
 {  
 if(!(strncmp(str,"bulb1 on",8)))  
 {  
 digitalWrite(Bulb1, LOW);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb1 off",9)))  
 {  
 digitalWrite(Bulb1, HIGH);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb2 on",8)))  
 {  
 digitalWrite(Bulb2, LOW);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb2 off",9)))  
 {  
 digitalWrite(Bulb2, HIGH);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb3 on",8)))  
 {  
 digitalWrite(Bulb3, LOW);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb3 off",9)))  
 {  
 digitalWrite(Bulb3, HIGH);  
 delay(200);  
 }  
 else if(!(strncmp(str,"all on",6)))  
 {  
 digitalWrite(Bulb1, LOW);  
 digitalWrite(Bulb2, LOW);  
 digitalWrite(Bulb3, LOW);  
 delay(200);  
 }  
 else if(!(strncmp(str,"all off",7)))  
 {  
 digitalWrite(Bulb1, HIGH);  
 digitalWrite(Bulb2, HIGH);  
 digitalWrite(Bulb3, HIGH);  
 delay(200);  
 }  
 }  

Code snippet #2

Plain text
 // Techatronic.com  
 #define Bulb1 3  
 #define Bulb2 4  
 #define Bulb3 5  
 int temp=0,i=0;  
 int led=8;  
 char str[15];  
 void setup()  
 {  
 Serial.begin(9600);  
 pinMode(led, OUTPUT);  
 pinMode(Bulb1, OUTPUT);  
 pinMode(Bulb2, OUTPUT);  
 pinMode(Bulb3, OUTPUT);  
 digitalWrite(Bulb1,HIGH);  
 digitalWrite(Bulb2,HIGH);  
 digitalWrite(Bulb3,HIGH);  
 Serial.println("AT+CNMI=2,2,0,0,0");  
 delay(500);  
 Serial.println("AT+CMGF=1");  
 delay(1000);  
 }  
 void loop()  
 {  
 if(temp==1)  
 {  
 check();  
 temp=0;  
 i=0;  
 delay(1000);  
 }  
 }  
 void serialEvent()  
 {  
 while(Serial.available())  
 {  
 if(Serial.find("#A."))  
 {  
 digitalWrite(8, HIGH);  
 delay(1000);  
 digitalWrite(8, LOW);  
 while (Serial.available())  
 {  
 char inChar=Serial.read();  
 str[i++]=inChar;  
 if(inChar=='*')  
 {  
 temp=1;  
 return;  
 }  
 }  
 }  
 }  
 }  
 void check()  
 {  
 if(!(strncmp(str,"bulb1 on",8)))  
 {  
 digitalWrite(Bulb1, LOW);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb1 off",9)))  
 {  
 digitalWrite(Bulb1, HIGH);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb2 on",8)))  
 {  
 digitalWrite(Bulb2, LOW);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb2 off",9)))  
 {  
 digitalWrite(Bulb2, HIGH);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb3 on",8)))  
 {  
 digitalWrite(Bulb3, LOW);  
 delay(200);  
 }  
 else if(!(strncmp(str,"bulb3 off",9)))  
 {  
 digitalWrite(Bulb3, HIGH);  
 delay(200);  
 }  
 else if(!(strncmp(str,"all on",6)))  
 {  
 digitalWrite(Bulb1, LOW);  
 digitalWrite(Bulb2, LOW);  
 digitalWrite(Bulb3, LOW);  
 delay(200);  
 }  
 else if(!(strncmp(str,"all off",7)))  
 {  
 digitalWrite(Bulb1, HIGH);  
 digitalWrite(Bulb2, HIGH);  
 digitalWrite(Bulb3, HIGH);  
 delay(200);  
 }  
 }  

Credits

Techatronic
73 projects • 132 followers
Electronic engineer
Contact

Comments

Please log in or sign up to comment.