GSM and keypad based home security system

Your home needs maximum security against thievery and burglary and other kinds of crimes that might cause threat to your loved ones and properties inside it. this project is an example of simple electronic door lock system based on 8051(AT89s51) controller interfaced with keypad and GSM module. DC motors connected with controller are treated as door. user has got maximum three chances to enter correct user name and password and also before attempting last turn he/she is informed that this must be his/her last chance by displaying appropriate MSG on 16*2 LCD. if user somehow would made his/her all attempts wrong a  MSG will get delivered to  predefined number(owner number generally) on code.

Proteus Design

Code

#include<reg51.h>
#include<string.h>
#define lcdport P2
sbit rs=P3^4;
sbit rw=P3^5;
sbit en=P3^6;
sbit m1=P3^2;
sbit m2=P3^3;
sbit r1=P1^3;
sbit r2=P1^4;
sbit r3=P1^5;
sbit r4=P1^6;
sbit c1=P1^0;
sbit c2=P1^1;
sbit c3=P1^2;
char uid[]="54321";
char id[6];
sbit buzzer=P1^7;
void lcdint();
void user_id(char);
void lcdstring(char *);
void delay(int);
void lcdcmd(char);
void lcddata(char);
void check_id();
char scankey();
char check();
unsigned char Command_AT[]="AT\r";
unsigned char text_mode[]="AT+CMGF=1\r";
unsigned char send_msg[]="AT+CMGS =\"+91880232xxxx\"\r";
unsigned char msg[]="unauthorize client";
void uart_int();
void transmit(char);
void transmitstring(char *);
void sms();
void main()
{
int n;
char key,flag=0;
buzzer=0;
P2=0x00;
P1=0xff;
lcdint();
uart_int();
lcdstring("system is locked");
lcdcmd(0xc0);
lcdstring("enter user id");
lcdcmd(0x01);
lcdcmd(0x02);
back:
lcdstring("user_id");
lcdcmd(0xc0);
n=0;
while(n<5)
{
key=check();
id[n]=key;
lcddata('*');
delay(100);
n++;
}
lcdcmd(0x01);
lcdcmd(0x02);
if(strcmp(uid,id)==0)
{
flag=0;
lcdstring("id matched");
delay(500);
lcdcmd(0x01);
lcdcmd(0x02);
lcdstring("opening door");
m1=1;
m2=0;
delay(2000);
lcdcmd(0x01);
lcdcmd(0x02);
lcdstring("closing door");
m1=0;
m2=1;
delay(2000);
m1=0;
m2=0;
lcdcmd(0x01);
lcdcmd(0x02);
lcdstring("door closed");
lcdcmd(0x01);
lcdcmd(0x02);
}
else
{
flag++;
if(flag==2)
{
lcdstring("it's is ur");
lcdcmd(0xc0);
lcdstring("last chance");
delay(300);
lcdcmd(0x01);
lcdcmd(0x02);
}
if(flag==3)
{
buzzer=1;
sms();
}
lcdstring("try again");
delay(300);
lcdcmd(0x01);
lcdcmd(0x02);
}
goto back;
}
void uart_int()
{
TMOD=0x20;
TH1=0xfd;
SCON=0x50;
TR1=1;
}
void transmit(char a)
SBUF=a;
while(TI==0);
TI=0;
}
void transmitstring(char *s)
{
while(*s!='\0')
{
transmit(*s);
delay(5);
s++;
}
}
void sms()
{
transmitstring(Command_AT);
delay(200);
transmitstring(text_mode);
delay(200);
transmitstring(send_msg);
delay(200);
transmitstring(msg);
delay(200);
transmit(0x1A);//send command after receiving msg
delay(100);
lcdcmd(0x01);
lcdcmd(0x80);
lcdstring("MSG delivered");
delay(500);
}
char check()
{
char b='a';
while(b=='a')
{
b=scankey();
}
return b;
}
char scankey()
{
c1=c2=c3=1;
r1=r2=r3=r4=0;
r1=0;r2=r3=r4=1;
if(c1==0)
{
delay(2);
return '1';
}
if(c2==0)
{
delay(2);
return '2';
}
if(c3==0)
{
delay(2);
return '3';
}
r2=0;r1=r3=r4=1;
if(c1==0)
{
delay(2);
return '4';
}
if(c2==0)
{
delay(2);
return '5';
}
if(c3==0)
{
delay(2);
return '6';
}
r3=0;r1=r2=r4=1;
if(c1==0)
{
delay(2);
return '7';
}
if(c2==0)
{
delay(2);
return '8';
}
if(c3==0)
{
delay(2);
return '9';
}
r4=0;r1=r2=r3=1;
if(c1==0)
{
delay(2);
return '*';
}
if(c2==0)
{
delay(2);
return '0';
}
if(c3==0)
{
delay(2);
return '#';
}
return 'a';
}
void lcdstring(char *p)
{
while(*p!='\0')
{
lcddata(*p);
delay(10);
p++;
}
}
void lcdint()
{
lcdcmd(0x38);
delay(2);
lcdcmd(0x01);
delay(2);
lcdcmd(0x80);
delay(2);
lcdcmd(0x0e);
delay(2);
}
void delay(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<1275;j++);
}
void lcdcmd(char a)
{
lcdport=a;
rs=0;
rw=0;
en=1;
delay(1);
en=0;
}
void lcddata(char value)
{
lcdport=value;
rs=1;
rw=0;
en=1;
delay(1);
en=0;
}
 

VIDEO

 

Category: 

Share

Who's new

  • ravirajpatil871...
  • shubhambajoria
  • yassir
  • demiholyman890954
  • scottgillum51169040

Get Notified

 

Share

We are Social

Syndicate

Subscribe to Syndicate