#include <SoftwareSerial.h>
SoftwareSerial SIM900A(0,1);
int StopSending =0;
int WindowClose=8;
int WindowOpen=9;
int Pir=2;
int EngineSwitch=3;
int WindowSwitch=4;
int LedEngineRun=6;
int LedEngineStop=7;
int PirLedStatus=5;
int Counter=0;
void setup(){
//Serial.begin(9600);
SIM900A.begin(9600);
pinMode(EngineSwitch, INPUT_PULLUP);
pinMode(Pir, INPUT_PULLUP);
pinMode(WindowSwitch, INPUT_PULLUP);
pinMode(WindowClose, OUTPUT);
pinMode(WindowOpen, OUTPUT);
pinMode(LedEngineRun, OUTPUT);
pinMode(LedEngineStop, OUTPUT);
pinMode(PirLedStatus, OUTPUT);
}
void loop()
{
int EngineSwitchValue = digitalRead(3);
int WindowSwitchValue = digitalRead(4);
int PirValue = digitalRead(2);
///////////////////////////////////////////////////////////////////////////pir led status//////////////////
if (PirValue == HIGH)
{
digitalWrite(PirLedStatus, HIGH);
}
else if (PirValue == LOW)
{
digitalWrite(PirLedStatus, LOW);
}
///////////////////////////////////////////////////////////ENGINE led status
if (EngineSwitchValue == HIGH)
{
digitalWrite(LedEngineStop, LOW);
digitalWrite(LedEngineRun, HIGH);
StopSending =0;
}
else
{
digitalWrite(LedEngineStop,HIGH);
digitalWrite(LedEngineRun, LOW);
}
///////////////////////////////////////////////////////////////////power window relay/////////////////
if (WindowSwitchValue == LOW && Counter == 0 && EngineSwitchValue == HIGH)
{
Counter=1;
digitalWrite(WindowClose, LOW);
digitalWrite(WindowOpen, HIGH);
delay(3000);
digitalWrite(WindowClose, LOW);
digitalWrite(WindowOpen, LOW);
}
else if (WindowSwitchValue == LOW && Counter == 1 && EngineSwitchValue == HIGH)
{
Counter=0;
digitalWrite(WindowClose, HIGH);
digitalWrite(WindowOpen, LOW);
delay(3000);
digitalWrite(WindowClose, LOW);
digitalWrite(WindowOpen, LOW);
}
///////////////////////////////////////////////////////////////////detect baby and engine off/////////////////
if (PirValue == HIGH && EngineSwitchValue == LOW && StopSending == LOW) //CHILD INSIDE CAR WITH ENGINE STOP
{
Counter=1;
digitalWrite(WindowClose, LOW);
digitalWrite(WindowOpen, HIGH);
delay(3000);
digitalWrite(WindowClose, LOW);
digitalWrite(WindowOpen, LOW);
SIM900A.println("AT+CMGF=1");
delay(1000);
SIM900A.println("AT+CMGS=\"+60126199749\"\r");
delay(1000);
SIM900A.println("Child On Board!!");
delay(100);
SIM900A.println((char)26);// ASCII code of CTRL+Z
delay(1000);
StopSending =1;
delay(500);
}
}
Comments
Please log in or sign up to comment.