Servo leftgate, rightgate;
int lamp1=3,lamp2=37, lamp3=36, lamp4=31, lamp5=4, fan1=33, fan2=41, fan3=5, fan4=38, aircond1=5, aircond2=6 , door1=46;
int door2=48, buzzer=28;
int state = 0, switch1_state = 0, times, firstconnect=1, alarm_slowrity, bithigh=0;
int flag = 1, pir=A5, lamp1on, x=0,flag1=0, displaydelay, lastdisplay=0, unfounddelay=0, flagfound=false;
long first_time, count=0, BPM=0, lastmillis, lastbpm=60;
boolean readpulses=false;
int pulsePin = 0, standardbpm = 790; // Pulse Sensor purple wire connected to analog pin 0
int blinkPin = 13; // pin to blink led at each beat
int fadePin = 5; // pin to do fancy classy fading blink at each beat
int fadeRate = 0, bitpm, bitdelay=0, unbitdelay=0, lastunfound=0; // used to fade LED on with PWM on fadePin
// int that holds raw Analog in 0. updated every 2mS
volatile int Signal; // holds the incoming raw data
volatile int IBI = 600, highcount=0; // int that holds the time interval between beats! Must be seeded!
volatile boolean Pulse = false; // "True" when User's live heartbeat is detected. "False" when not a "live beat".
volatile boolean QS = false; // becomes true when Arduoino finds a beat.
static boolean serialVisual = false; // Set to 'false' by Default. Re-set to 'true' to see Arduino Serial Monitor ASCII Visual Pulse
boolean flagunfound=false, firstunfound=0, displaybpm=false, autolamp1;
void setup()
{
pinMode(blinkPin,OUTPUT); // pin that will blink to your heartbeat!
pinMode(pulsePin,INPUT);
pinMode(fadePin,OUTPUT); // pin that will fade to your heartbeat! // we agree to talk fast!
interruptSetup();
leftgate.attach(12);
rightgate.attach(13);
pinMode(pir, INPUT);
pinMode(lamp1, OUTPUT);
pinMode(lamp2, OUTPUT);
pinMode(lamp3, OUTPUT);
pinMode(lamp4, OUTPUT);
pinMode(lamp5, OUTPUT);
pinMode(fan1, OUTPUT);
pinMode(fan2, OUTPUT);
pinMode(fan3, OUTPUT);
pinMode(fan4, OUTPUT);
pinMode(aircond1, OUTPUT);
pinMode(aircond2, OUTPUT);
pinMode(door1, OUTPUT);
pinMode(door2, OUTPUT);
pinMode(buzzer, OUTPUT);
digitalWrite(lamp1, HIGH);
digitalWrite(lamp2, HIGH);
digitalWrite(lamp3, HIGH);
digitalWrite(lamp4, HIGH);
digitalWrite(lamp5, HIGH);
digitalWrite(fan1, LOW);
digitalWrite(fan2, LOW);
digitalWrite(fan3, LOW);
digitalWrite(fan4, LOW);
digitalWrite(aircond1, LOW);
digitalWrite(aircond2, LOW);
digitalWrite(buzzer, LOW);
leftgate.write(0);
Serial.begin(9600);
}
void loop()
{
digitalWrite(5,HIGH);
//if(readpulses==true)
//readpulse();
if(analogRead(pir)>250&&lamp1on==1&&autolamp1==true){
digitalWrite(lamp1,LOW);
//delay(2000);
}
else
digitalWrite(lamp1,HIGH);
while (Serial.available() > 0)
{
state = Serial.read();
Serial.println(state);
flag = 1;
flag1=0;
if (state == 236)//input="1"
{
readpulses=false;
}
if (state == 43)//input="1"
{
first_time=millis();
}
if((millis()-first_time)>350){
if (state == 101)//input="1"
{
digitalWrite(lamp1, LOW);
lamp1on=0;
if (flag == 0)
{
flag = 1;
}
}
else if (state == 237)
{
autolamp1=true;
Serial.println("auto on");
}
else if (state == 238)
{
autolamp1=false;
Serial.println("auto off");
}
else if (state == 102)
{
digitalWrite(lamp2, LOW);
if (flag == 0)
{
flag = 1;
}
}
else if (state == 103)
{
digitalWrite(lamp3, LOW);
if (flag1 == 0)
{
flag1 = 1;
}
}
else if (state == 104)
{
digitalWrite(lamp4, LOW);
if (flag == 0)
{
flag = 1;
}
}
else if (state == 105)
{
digitalWrite(lamp1, HIGH);
lamp1on=1;
if (flag == 0)
{
flag = 1;
}
}
else if (state == 106)
{
digitalWrite(lamp2, HIGH);
if (flag == 0)
{
flag = 1;
}
}
else if (state == 107)
{
digitalWrite(lamp3, HIGH);
if (flag == 0)
{
flag = 1;
}
}
else if (state == 108)
{
digitalWrite(lamp4, HIGH);
if (flag == 0)
{
flag = 1;
}
}
else if (state == 109)
{
digitalWrite(fan1, HIGH);
if (flag == 0)
{
flag = 1;
}
}
else if (state == 110)
{
digitalWrite(fan2, HIGH);
if (flag == 0)
{
Serial.println("fan2:ON");
flag = 1;
}
}
else if (state == 111)
{
digitalWrite(fan3, HIGH);
if (flag == 0)
{
Serial.println("fan3:ON");
flag = 1;
}
}
else if (state == 112)
{
digitalWrite(fan4, HIGH);
if (flag == 0)
{
Serial.println("fan4:ON");
flag = 1;
}
}
else if (state == 113)
{
digitalWrite(fan1, LOW);
if (flag == 0)
{
Serial.println("fan1:OFF");
flag = 1;
}
}
else if (state == 114)
{
digitalWrite(fan2, LOW);
if (flag == 0)
{
Serial.println("fan2:OFF");
flag = 1;
}
}
else if (state == 115)
{
digitalWrite(fan3, LOW);
if (flag == 0)
{
Serial.println("fan3:OFF");
flag = 1;
}
}
else if (state == 116)
{
digitalWrite(fan4, LOW);
if (flag == 0)
{
Serial.println("fan4:OFF");
flag = 1;
}
}
else if (state == 117)
{
leftgate.write(90);
if (flag == 0)
{
Serial.println("LEFT OPEN");
flag = 1;
}
}
else if (state == 118)
{
rightgate.write(0);
if (flag == 0)
{
Serial.println("RIGHT OPEN");
flag = 1;
}
}
else if (state == 119)
{
leftgate.write(0);
if (flag == 0)
{
Serial.println("LEFT CLOSED");
flag = 1;
}
}
else if (state == 120)
{
rightgate.write(90);
if (flag == 0)
{
Serial.println("RIGHT CLOSED");
flag = 1;
}
}
else if (state == 121)
{
digitalWrite(aircond1, LOW);
if (flag == 0)
{
Serial.println("aircond1: ON");
flag = 1;
}
}
else if (state == 122)
{
digitalWrite(aircond2, LOW);
if (flag == 0)
{
Serial.println("aircond2: ON");
flag = 1;
}
}
else if (state == 124)
{
digitalWrite(aircond1, HIGH);
if (flag == 0)
{
Serial.println("aircond1: OFF");
flag = 1;
}
}
else if (state == 125)
{
digitalWrite(aircond2, HIGH);
if (flag == 0)
{
Serial.println("aircond2: OFF");
flag = 1;
}
}
else if (state == 127)
{
digitalWrite(door1, HIGH);
if (flag == 0)
{
Serial.println("door1:OPEN");
flag = 1;
}
}
else if (state == 128)
{
digitalWrite(door2, HIGH);
if (flag == 0)
{
Serial.println("door2:OPEN");
flag = 1;
}
}
else if (state == 129)
{
digitalWrite(door1, LOW);
if (flag == 0)
{
Serial.println("door1:CLOSED");
flag = 1;
}
}
else if (state == 130)
{
digitalWrite(door2, LOW);
if (flag == 0)
{
Serial.println("door2:CLOSED");
flag = 1;
}
}
else if (state == 131)
{
Serial.println("Alarm: ON");
Alarm(alarm_slowrity);
}
else if (state >132 && state<234)
{
alarm_slowrity=state*6;
}
else if (state == 235)
{
readpulses=true;
}
else
flag=0;
}
}
}
void Alarm(int beep_delay)
{
int Astate;
for( int x=0;x<55;x++)
{
Astate=Serial.read();
if(Astate>131&&Astate<234){
if(Astate>132&&Astate<234)
beep_delay=Astate*6;
if(Astate==132)
x=55;}
digitalWrite(buzzer,HIGH);
delay(50);
digitalWrite(buzzer,LOW);
delay(beep_delay);
}
}
void readpulsefunction(void){
}
void readpulse(void){
Serial.print(Signal);
Serial.println(standardbpm);
Serial.print("#"); //ASCII Art Madness
Serial.print(bitpm);
Serial.print("-");
if (QS == true){
Serial.print("#"); //ASCII Art Madness
Serial.print(5);
Serial.print("-");
flagunfound=false;// A Heartbeat Was Found
// BPM and IBI have been Determined
// Quantified Self "QS" true when arduino finds a heartbeat
digitalWrite(blinkPin,HIGH); // Blink LED, we got a beat.
fadeRate = 255; // Makes the LED Fade Effect Happen
QS = false; // reset the Quantified Self flag for next time
}
else {
Serial.print("#"); //ASCII Art Madness
Serial.print(BPM);
Serial.print("-");
digitalWrite(blinkPin,LOW); // There is not beat, turn off pin 13 LED
}
ledFadeToBeat(); // Makes the LED Fade Effect Happen
delay(20);
}
