
const int trigPin = 9;
const int echoPin = 10;
const int ProxSensor = 2;
const int relayPin = 12;
int inputVal = 0;
long duration;
int distance;
char piInput = 'N';

void setup() {
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW);
  Serial.begin(9600); // Starts the serial communication
  pinMode(ProxSensor,INPUT);    //Pin 2 is connected to the output of proximity sensor

}

void loop() {

  boolean IROK = false;
  boolean UltraOK = false;
  // Clears the trigPin
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);
  // Calculating the distance
  distance= duration*0.034/2;

  if (distance < 70) UltraOK = true;  
  else UltraOK = false;

  if(digitalRead(ProxSensor) == LOW ) IROK = true;
  else  IROK = false;

  //if (IROK && UltraOK) Serial.println("A");
  if (IROK && UltraOK && Serial.available() > 0 ){
    if (Serial.read() == 'O') {
      digitalWrite(relayPin, HIGH);
      delay(5000);
      digitalWrite(relayPin, LOW);
      IROK = false;
      UltraOK = false;
      serialFlush();

    }
  }
  IROK = false;
  UltraOK = false;

  //Read from Pi here

}

void serialFlush(){
  while(Serial.available() > 0) {
    char t = Serial.read();
  }
}   





