Tuesday, 3 November 2015

Eg: SMART Home Arduino Program

1. #include<Servo.h>

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);
}