/*
String data;
const int DOR = 3; // Door Sensing
const int Bzr = 6; // Buzzer
const int Rly = 2; // Relay.
const int MSI = A0; // Motion Sensor Input
const int LSI = A1; // Light Sensor Input
const int DSPB = 4; // Display Light Blue
const int DSPR = 5; // Display Light RED
const int DSPG = 7; // Display Light Green
const int DSPW = 8; // Display Light White
const int KLED = 9; // key Led
const int HTA = 10; // High Tone Alarm
const int LTA = 11; // Low Tone Alarm
// Door Sataus Defining
int EDOR; // Enable Door Status input
int EDSA; // Enable Door Status Alarm
int ATS = 0; // Alarm Tone Sound
int EDAS; // Enable Door Alarm Sound
int CDS = 0; // Current Door Status
int PDS = 0; // Previous Door Status
int LMS = 1; // Lock Motion Sensor on Alarm
int DTS; // Door Tone Sound
// Motion Sensor Input
int EMS; // Enable Motion Sensor
int MSS; // Motion Sensor Sound
int MTS; // Motion Tone Sound
int MST; // Motion Sensor Trugger
int MTD; // Motion Trugger Delay
int CMR = 0; // Current Motion Sensor Reading
int DMS; // Disable Motion Sensor over Open Door
int AMF; // Anti Motion Sensor Flicker
int CMS = 0; // Current Motion State
int FMS = 0; // Final Motion State
int CDSS; // Current Door Status Define HIGH or LOW
// Light can be redifined as per user requirment
int MSL; // Motion Sensor Light
int DSL; // Door Signal Light
int DAL; // Door Alarm Light
int DSP; // Display Light Normal
int EDSP; // Enable Display Light
int LTS; // Light Tone Sound
// Time Farm Counting
long unsigned int CRT; // Current Running Time
long unsigned int DTT = 0; // Door Trugger TIme
long unsigned int FTT = 0; // Final Trugger Time
long unsigned int DSAW = 5000; // Door Sensor Alarm Wait
// Light Sensor defining
int LSL; // Light Sensor Limit
int ELS; // Enable Light Sensor
int CLS = 0; // Current Light Sensor Status
int LST1; // Light Sensor Task 1
int LST2; // Light Sensor Task 2
void Alarm()
{
if (EDAS == true && CRT - DTT >= DSAW && CDS == CDSS)
{
digitalWrite(Bzr, HIGH);
digitalWrite(DAL, HIGH);
digitalWrite(DTS, HIGH);
delay(250);
digitalWrite(Bzr, LOW);
digitalWrite(DAL, LOW);
digitalWrite(DTS, LOW);
delay(150);
}
if (EDAS == false && CRT - DTT >= DSAW && CDS == CDSS)
{
digitalWrite(DAL, HIGH);
delay(1500);
digitalWrite(DAL, LOW);
delay(500);
}
}
void setup()
{
pinMode(DOR, INPUT);
pinMode(MSI, INPUT_PULLUP);
pinMode(LSI, INPUT);
pinMode(DSPR, OUTPUT);
pinMode(DSPB, OUTPUT);
pinMode(DSPW, OUTPUT);
pinMode(Bzr, OUTPUT);
pinMode(DSPG, OUTPUT);
pinMode(Rly, OUTPUT);
pinMode(KLED, OUTPUT);
pinMode(HTA, OUTPUT);
pinMode(LTA, OUTPUT);
Serial.begin(9600);
/*
digitalWrite(DSPR, HIGH);
digitalWrite(DSPB, HIGH);
digitalWrite(DSPW, HIGH);
digitalWrite(DSPG, HIGH);
digitalWrite(Bzr, HIGH);
digitalWrite(KLED, HIGH);
digitalWrite(HTA, HIGH);
digitalWrite(LTA, HIGH);
digitalWrite(Rly, HIGH);
delay(150);
digitalWrite(DSPR, LOW);
digitalWrite(DSPB, LOW);
digitalWrite(DSPW, LOW);
digitalWrite(DSPG, LOW);
digitalWrite(Bzr, LOW);
digitalWrite(KLED, LOW);
digitalWrite(HTA, LOW);
digitalWrite(LTA, LOW);
*/
/*
// Default Settings
EDOR = 1; // Enable Door Input
EDSA = 1; // Enable Door Status Alarm
EDAS = 1; // Enable Door Alarm Sound
EDSP = 1; // Enable Display Light Normal
EMS = 1; // Enable Motion Senosor
MSS = 1; // Motion Sensor Sound
MTD = 500; // Motion Trugger Delay
AMF = 1; // Anti Motion Sensor Flicker
MSL = DSPG; // Motion Sensor Light
DSL = DSPB; // Door Signal Light
DAL = DSPR; // Door Alarm Light
DSP = DSPW; // Display Light
MST = Rly; // Motion Sensor Trugger
MTS = HTA; // Define Motion Sensor Tone
DTS = HTA; // Define Door Alarm Tone
CDSS = HIGH; // Current Door State Status
LSL = 1000; // Light Sensor Limit
ELS = 1; // Enable Light Sensor
}
void loop()
{
// Motion Sensor Conditon and configuration
if (EMS == true) // Enable Motion Senor Input
{ CMR = analogRead(MSI);
if ( CMR != FMS)
{
if(CMR >= 500 && AMF == true && DMS != true && MSS != true)
{
digitalWrite(DSP, LOW);
digitalWrite(MSL, HIGH);
digitalWrite(MST, HIGH);
delay(MTD);
digitalWrite(MSL, LOW);
digitalWrite(MST, LOW);
}
if(CMR >= 500 && AMF == true && DMS != true && MSS == true)
{
digitalWrite(DSP, LOW);
digitalWrite(MSL, HIGH);
digitalWrite(MST, HIGH);
digitalWrite(MTS, HIGH);
digitalWrite(Bzr, HIGH);
delay(MTD);
digitalWrite(MSL, LOW);
digitalWrite(MST, LOW);
digitalWrite(MTS, LOW);
digitalWrite(Bzr, LOW);
}
/*
if (DMS == true)
{Serial.println("Door Status Open");}
if ( DMS != true && CDS != HIGH)
{Serial.println(CMR);}
*/
/*
}
delay(10);
FMS = CMR;
}
if(CMR >= 500 && AMF != true && DMS != true && MSS == true)
{
digitalWrite(DSP, LOW);
digitalWrite(MSL, HIGH);
digitalWrite(MST, HIGH);
digitalWrite(MTS, HIGH);
digitalWrite(Bzr, HIGH);
delay(MTD);
}
else
{
digitalWrite(DSP, LOW);
digitalWrite(MSL, LOW);
digitalWrite(MST, LOW);
digitalWrite(MTS, LOW);
digitalWrite(Bzr, LOW);
}
// Door Sensor Configuration & Conditions
CRT = millis();
if ( EDOR == true)
{ CDS = digitalRead(DOR); }
if (CDS != PDS)
{
if (CDS == CDSS)
{
DTT = millis();
digitalWrite(DSL, HIGH);
Serial.print("Current Time State is ");
Serial.println(CRT);
}
else
{
digitalWrite(DSL, LOW);
Serial.print("Final Time State is ");
Serial.println(FTT);
}
delay(50);
}
FTT = CRT - DTT;
if(EDSA == true)
{
if( CRT - DTT >= DSAW && CDS == CDSS)
{
digitalWrite(DAL, HIGH);
digitalWrite(DSL, LOW);
digitalWrite(DSP, LOW);
}
else if( CDS != CDSS)
{
digitalWrite(DAL, LOW);
DTT = 0;
FTT = 0;
}
if (EDAS == true && CRT - DTT >= DSAW && CDS == CDSS)
{
digitalWrite(DSP, LOW);
Alarm();
}
else if ( EDAS == false && CRT - DTT >= DSAW && CDS == CDSS)
{ Alarm();}
else
{
digitalWrite(Bzr, LOW);
}
}
if (CDS == CDSS && LMS == true)
{ DMS = 1;}
else
{ DMS = 0;}
PDS = CDS;
if ( ELS == true)
{ CLS = analogRead(LSI);}
if ( CLS >= LSL)
{ digitalWrite(KLED, HIGH);}
else
{
digitalWrite(KLED, LOW);
}
if(CDS == CDSS && EDSP == true)
{ digitalWrite(DSP, LOW);}
else if (CLS >= LSL && ELS == true)
{ digitalWrite(DSPW, LOW);}
else if( EDSP == true)
{ digitalWrite(DSP, HIGH); }
else
{ digitalWrite(DSP, LOW); }
while(Serial.available()) {
delay(10);
char c=Serial.read();
if(c=='#')
{break; }
data += c;
}
if (data.length() > 0)
{
// Light Sensor Feedback & Configuration details
if (data =="Lstatus" )
{
Serial.print(F("Enable Light Sensor= ")); Serial.println(ELS); // Enable Light Sensor
Serial.print(F(" Light Sensor Limit= ")); Serial.println(LSL); // Light Sensor Limit
Serial.print(F("Current Light Sensor= ")); Serial.println(CLS); // Current Light Sensor Reading
Serial.print(F("Light Sensor Task 1= ")); Serial.println(LST1); // Light Sensor Task 1
Serial.print(F("Light Sensor Task 2= ")); Serial.println(LST2); // Light Sensor Task 2
}
if( data =="ELS0") // Disable Light Sensor
{ELS =false;}
if (data == "ELS1") // Enable Light Sensor
{ELS =true;}
if( data =="LSL0") // Light Sensor Limit defult
{LSL =100;}
if( data =="CLS") // Display Current Light sensor Reading
{Serial.println(CLS);}
if( data =="LSL1")
{Serial.println(F("L Sensor Limit"));
while (Serial.available()==0){}
LSL = Serial.parseInt();
if (LSL != 0)
Serial.print(F("LSL Ok")); } // Defining Light Sensor Reading
if(data == "LST10")
{LST1 = 0;}
if (data == "LST20")
{LST2 = 0;}
if (data == "LST11")
{Serial.println(F("Act in Dark 1"));
while (Serial.available()==0){}
LST1 = Serial.parseInt();
if(LST1 != 0)
Serial.print(F("LST1 Ok"));}
if (data == "LST21")
{ Serial.println(F("Act in Dark 2"));
while (Serial.available()==0){}
LST2 = Serial.parseInt();
if(LST2 != 0)
Serial.print(F("LST2 Ok"));}
// Door Sensing Configuration
if (data =="Dstatus" )
{
Serial.print(F("Enable Door Sensor = ")); Serial.println(EDOR); // Enable Light Sensor
Serial.print(F("Enable Door Status Alarm = ")); Serial.println(EDSA); // Light Sensor Limit
Serial.print(F("Enable Door Alarm Sound = ")); Serial.println(EDAS); // Current Light Sensor Reading
Serial.print(F("Lock Motion Sensor = ")); Serial.println(LMS); // Light Sensor Task 1
Serial.print(F("Current Door Status = ")); Serial.println(CDS); // Light Sensor Task 2
}
if(data == "EDOR0") // Disable Door Sensor
{EDOR = false;}
if (data == "EDOR1") // Enable Door Sensor
{EDOR = true;}
if(data == "EDSA0") // Disable Door Status Alarm
{EDSA = false;}
if(data == "EDSA1") // Enable Door Status Alarm
{EDSA = true;}
if(data =="EDAS0") // Disable Door Alarm Sound
{EDAS = false;}
if(data =="EDAS1") // Enable Door Alarm Sound
{EDAS = true;}
if(data =="LMS0") // UnLock Motion Sensor on Alarm
{LMS = false;}
if(data =="LMS1") // Lock Motion Sensor on Alarm
{LMS = true;}
if(data == "DSAW") // Get Delay Alarm on Open Door
{Serial.println(F(" Door Alarm wait Time is "));
Serial.println(DSAW);}
if(data == "DSAW1")
{Serial.println(F("Door Alarm wait Time = "));
while (Serial.available()==0){}
DSAW = Serial.parseInt();
if (DSAW != 0)
Serial.print(F("DSAW Ok")); } // Defining Door Sense Alarm Wait
// Motion Sensor Configuration
if (data =="Dstatus" )
{
Serial.print(F("Enable Motion Sensor = ")); Serial.println(EMS); // Enable Motion Sensor
Serial.print(F("Enable Motion Sound = ")); Serial.println(MSS); // Enable Motion Sensor Sound
Serial.print(F("Enable Motion Truggered = ")); Serial.println(MST); // Enable Motion Sensor Trugger
Serial.print(F("Motion Truggered Delay = ")); Serial.println(MTD); // Define Motion Sensor Truggered Delay
Serial.print(F("Disable Motion Sensor Lock = ")); Serial.println(DMS); // Disable Motion Sensor Lock
}
if(data == "EMS0") // Disable Door Sensor
{EMS = false;}
if (data == "EMS1") // Enable Door Sensor
{EMS = true;}
if(data == "MSS0") // Disable Door Status Alarm
{MSS = false;}
if(data == "MSS1") // Enable Door Status Alarm
{MSS = true;}
if(data =="MST0") // Disable Door Alarm Sound
{MST = false;}
if(data =="MST1") // Enable Door Alarm Sound
{MST = true;}
if(data =="DMS0") // UnLock Motion Sensor on Alarm
{DMS = false;}
if(data =="DMS1") // Lock Motion Sensor on Alarm
{DMS = true;}
if(data == "MTD") // Get Delay Alarm on Open Door
{Serial.println(F(" Motion Truggered Delay is "));
Serial.println(MTD);}
if(data == "MTD1")
{Serial.println(F("Motion Truggered Delay = "));
while (Serial.available()==0){}
MTD = Serial.parseInt();
if (MTD != 0)
Serial.print(F("MTD Ok")); } // Defining Door Sense Alarm Wait
// Light Configuration
if ( data == "LIGHT")
{
Serial.print(F("Motion Sensor Light = ")); Serial.println(MSL); // Motion Sensor light
Serial.print(F("Door Signal Light = ")); Serial.println(DSL); // Door Signal Light
Serial.print(F("Door Alarm Light = ")); Serial.println(DAL); // Door Alarm Light
Serial.print(F("Normal Display Light = ")); Serial.println(DSP); // Light Sensor Task 1
Serial.print(F("Enable Display Light = ")); Serial.println(EDSP); // Light Sensor Task 2
Serial.print(F("Alarm Tone Sound = ")); Serial.println(ATS); // Alarm Tone Sound
Serial.print(F("Door Tone Sound = ")); Serial.println(DTS); // Door Tone Sound
Serial.print(F("Motion Tone Sound = ")); Serial.println(MTS); // Motion Tone Sound
Serial.print(F("Light Tone SOund = ")); Serial.println(LTS); // Light Tone Sound
}
if(data == "DSP0") // Disable Display Light
{EDSP = false;}
if(data == "DSP1") // Enable Dispaly Light
{EDSP = true;}
if(data == "ATS1") // Set Alarm Tone Sound HIGH
{ATS = true; }
if(data == "ATS0") // Set Alarm Tone Sound to LOW
{ATS = false;}
if(data == "DTS0") // Set Door Tone Sound to LOW
{DTS = false;}
if(data == "DTS1") // Set Door Tone Sound to HIGH
{DTS = true; }
if(data == "MTS0") // Motion Tone Sound to LOW
{MTS = false; }
if(data == "MTS1") // Motion Tone Sound to HIGH
{MTS = true; }
if(data == "LTS0") // Light Tone Sound to LOW
{LTS = false; }
if(data == "LTS1") // Light Tone Sound to HIGH
{LTS = true;}
if(data == "MSL")
{Serial.println(F("Motion Sensor Light = "));
while (Serial.available()==0){}
MSL = Serial.parseInt();
if (MSL != 0)
Serial.print(F("MSL Ok")); } // Defining Motion Sense Light
if(data == "DSL")
{Serial.println(F("Door Signal Light = "));
while (Serial.available()==0){}
DSL = Serial.parseInt();
if (DSL != 0)
Serial.print(F("DSL Ok")); } // Defining Door Sense Light
if(data == "DAL")
{Serial.println(F("Door Alarm Light = "));
while (Serial.available()==0){}
DAL = Serial.parseInt();
if (DAL != 0)
Serial.print(F("DAL Ok")); } // Defining Door Alarm Light
if(data == "DSP")
{Serial.println(F("Display Light = "));
while (Serial.available()==0){}
DSP = Serial.parseInt();
if (DSP != 0)
Serial.print(F("DSP Ok")); } // Display Light Normal
}
data = "";
}
*/
// Stored Porgram of pervious code simulator
// need to adjust Hardware configuration to run upside code
const int DOR = 3; // Door Sensing
const int Bzr = 6; // Buzzer
const int Rly = 2; // Relay.
const int MSI = A0; // Motion Sensor Input
const int LSI = A1; // Light Sensor Input
const int DSPB = 4; // Display Light Blue
const int DSPR = 5; // Display Light RED
const int DSPG = 7; // Display Light Green
const int DSPW = 8; // Display Light White
const int KLED = 9; // key Led
const int HTA = 10; // High Tone Alarm
const int LTA = 11; // Low Tone Alarm
// Motion Sensor Input
int EMS = 1; // Enable Motion Sensor DONE
int MSS = 1; // Motion Sensor Sound DONE
int MTS = 0; // Motion Tone Sound HIGH/LOW
int MST = 1; // Motion Sensor Trugger
int MTD = 500; // Motion Trugger Delay
int CMR = 0; // Current Motion Sensor Reading
int DMS = 0; // Disable Motion Sensor over Open Door
int AMF = 1; // Anti Motion Sensor Flicker
int FMS = 0; // Final Motion State
int MSL; // Motion Sensor Light
int EDSP = 1;
int DSP; // Display Light Define
void setup()
{
Serial.begin(9600);
pinMode(DOR, INPUT);
pinMode(MSI, INPUT);
pinMode(LSI, INPUT);
pinMode(DSPR, OUTPUT);
pinMode(DSPB, OUTPUT);
pinMode(DSPW, OUTPUT);
pinMode(Bzr, OUTPUT);
pinMode(DSPG, OUTPUT);
pinMode(Rly, OUTPUT);
pinMode(KLED, OUTPUT);
pinMode(HTA, OUTPUT);
pinMode(LTA, OUTPUT);
MSL = DSPB; // user Define Motion Sensor Light
DSP = DSPW; // user Define Display Light
MST = Rly; // user Define Motion Sensor Trugger
MTS = LTA; // user Define Motion Sensor Tone volume
}
void loop()
{
// Motion Sensor Function
if (EMS == true) // Enable Motion Senor Input
{ CMR = analogRead(MSI);
if ( CMR != FMS)
{
if(CMR >= 100 && AMF == true && DMS != true && MSS != true)
{
digitalWrite(DSP, LOW);
digitalWrite(MSL, HIGH);
digitalWrite(MST, HIGH);
delay(MTD);
digitalWrite(MSL, LOW);
digitalWrite(MST, LOW);
}
if(CMR >= 100 && AMF == true && DMS != true && MSS == true)
{
digitalWrite(DSP, LOW);
digitalWrite(MSL, HIGH);
digitalWrite(MST, HIGH);
digitalWrite(MTS, HIGH);
digitalWrite(Bzr, HIGH);
delay(MTD);
digitalWrite(MSL, LOW);
digitalWrite(MST, LOW);
digitalWrite(MTS, LOW);
digitalWrite(Bzr, LOW);
}
Serial.println(CMR);
}
delay(10);
FMS = CMR;
}
if(CMR >= 100 && AMF != true && DMS != true && MSS == true)
{
digitalWrite(DSP, LOW);
digitalWrite(MSL, HIGH);
digitalWrite(MST, HIGH);
digitalWrite(MTS, HIGH);
digitalWrite(Bzr, HIGH);
delay(MTD);
}
else
{
digitalWrite(DSP, LOW);
digitalWrite(MSL, LOW);
digitalWrite(MST, LOW);
digitalWrite(MTS, LOW);
digitalWrite(Bzr, LOW);
}
if (EDSP == true)
{ digitalWrite(DSP, HIGH);}
else
{digitalWrite(DSP, LOW);}
}