control appliances using sms

5
Control Appliances using SMS Published November 22, 2011 | By Abbas Abdullahi The aim of this project, “Control Appliances via SMS using sim300cz gsm modem and ATMega16”, is to use GSM technology to automate and remotely control various household appliances. This project will aid student and developers to make use of sim300cz gsm modem in automation process. This design can be futher developed for more robust home automation. The transmit TXD of the mega16 connected to receive RXD of SIM300CZ and transmit TXD of the SIM300CZ connected to receive RXD of the mega16, once sms message “Device1 ON” or “Device1 OFF” is sent from mobile phone, the sim300cz will receive and send to microcontroller, the microcontroller will check the command and ON or OFF any of the relay. The relay can be connected to any device. Component: 1. ATMega16 Microcontroller 2. SIM300CZ GSM Modem 3. 6V Relay 4. 4MHZ Crystal Oscillator 5. 22pf Capacitor 6. 1k resistor 7. 1N4007 diodes 8. 2N222 transistor 9. 4k7 resistor You can get the component at www.microscale-embbed.com Source code

Upload: vijitha-kalass

Post on 20-Apr-2015

79 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Control Appliances Using SMS

Control Appliances using SMSPublished November 22, 2011 |  By Abbas Abdullahi

The aim of this project, “Control Appliances via SMS using sim300cz gsm modem and ATMega16”, is to use GSM technology to automate and remotely control various household appliances. This project will aid student and developers to make use of sim300cz gsm modem in automation process. This design can be futher developed for

 

more robust home automation. The transmit TXD of the mega16 connected to receive RXD of SIM300CZ and transmit TXD of the SIM300CZ connected to receive RXD of the mega16, once sms message “Device1 ON” or “Device1 OFF” is sent from mobile phone, the sim300cz will receive and send to microcontroller, the microcontroller will check the command and ON or OFF any of the relay. The relay can be connected to any device.

Component:1. ATMega16 Microcontroller2. SIM300CZ GSM Modem3. 6V Relay4. 4MHZ Crystal Oscillator5. 22pf Capacitor6. 1k resistor7. 1N4007 diodes8. 2N222 transistor9. 4k7 resistor

You can get the component at www.microscale-embbed.com

 

Source code

 

The source code is written using C language:

 

#include <avr/io.h>#include <avr/interrupt.h>

Page 2: Control Appliances Using SMS

#include <string.h>#include <util/delay.h>

unsigned int i=0;char enter=0x0D;char ctrZ=0x1A;

void USARTInit(){

//Set Baud rateUCSRA=0;UBRRL = 51;UBRRH = 0;UCSRC=(1<<URSEL)|(3<<UCSZ0);

//Enable The receiver and transmitterUCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);

}

char get_char(){

//Wait untill a data is availablewhile(!(UCSRA & (1<<RXC))){ }return UDR;

}

void put_char(char data){

//Wait untill the transmitter is readywhile(!(UCSRA & (1<<UDRE))){}

//Now write the data to USART bufferUDR=data;

}

void put_str(char* str){

unsigned char len;len=strlen(str);

for(int i=0;i<len;i++){

_delay_ms(100);

while((UCSRA & 0x20) == 0x0);

UDR=str[i];}

}

int main (void){

// set PORTA for output

Page 3: Control Appliances Using SMS

DDRA |= (1<<PA2) | (1<<PA1) | (1<<PD0);PORTA &= ~(1<<PA2) | (1<<PA1) | (1<<PA0);

USARTInit();_delay_ms(1000);

send("AT");put_str(dummy);

while(get_char()!='O');while(get_char()!='K');//Waiting for modem response

put_str("ATE0");put_str (dummy);

while(get_char()!='O');while(get_char()!='K');//Waiting for modem response

put_str ("AT+CMGF=1");put_str (dummy);

while(get_char()!='O');while(get_char()!='K');//Waiting for modem response

put_str ("AT+CNMI=2,2,0,0,0");put_str (dummy);

while(get_char()!='O');while(get_char()!='K');//Waiting for modem response

while(1){

rx[i]=get_char();i++;if(rx[i-2]==13 && rx[i-1]==10){

rx[i-1]='';rx[i-2]='';i=0;

if(strcmp(rx,"device1 ON")==0){

PORTA |= (1<<PA0);_delay_ms(1000);put_str ("AT");put_str (enter);put_str ("AT+CMGS=\"+gsm number\""); // you

need to add your gsm number here e.g +2348033870967put_str (enter);put_str ("device1 ON ");put_str (ctrZ);

}

if(strcmp(rx,"device1 OFF")==0){

PORTA |= (1<<PA1);

Page 4: Control Appliances Using SMS

_delay_ms(1000);put_str ("AT");put_str (enter);put_str ("AT+CMGS=\"+gsm number\"");put_str (enter);put_str ("device1 OFF ");put_str (ctrZ);

}

if(strcmp(rx,"device2 ON")==0){

PORTA |= (1<<PA2);_delay_ms(1000);put_str ("AT");put_str (enter);put_str ("AT+CMGS=\"+gsm number\"");put_str (enter);put_str ("device2 ON");put_str (ctrZ);

}

if(strcmp(rx,"device2 OFF")==0){

PORTA |= (1<<PA2);_delay_ms(1000);put_str ("AT");put_str (enter);put_str ("AT+CMGS=\"+gsm number\"");put_str (enter);put_str ("device2 OFF");put_str (ctrZ);

}

if(strcmp(rx,"device3 ON")==0){

PORTA |= (1<<PA2);_delay_ms(1000);put_str ("AT");put_str (enter);put_str ("AT+CMGS=\"+gsm number\"");put_str (enter);put_str ("device3 ON");put_str (ctrZ);

}

if(strcmp(rx,"device3 OFF")==0){

PORTA |= (1<<PA2);_delay_ms(1000);put_str ("AT");put_str (enter);put_str ("AT+CMGS=\"+gsm number\"");put_str (enter);put_str ("device3 OFF");put_str (ctrZ);

}

Page 5: Control Appliances Using SMS

}

}}