#include <SoftwareSerial.h>
#include <HCSR04.h>
// https://www.youtube.com/channel/UCaXI2PcsTlH5g0et67kdD6g
  //
// Smart Stick for Blind peoples //
// By MOHD SOHAIL //

const int trigPin1 = 6;
const int echoPin1 = 3;
const int trigPin2 = 4;
const int echoPin2 = 5;
const int trigPin3 = 8;
const int echoPin3 = 9;
const int vibmotorPin =13;
const int watersensor = A0;

SoftwareSerial HC_12(10,11);   // D10 =TX    D11  =RX
long duration1;
long duration2;
long duration3;
int distance1;
int distance2;
int distance3;
int safetyDistance;
int waterLevel;
int stairsWidth;
int Upstair_flag;
#define FORCE_SENSOR_PIN A1
void setup() {
pinMode(trigPin1, OUTPUT); 
pinMode(echoPin1, INPUT); 
pinMode(trigPin2, OUTPUT); 
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT); 
pinMode(echoPin3, INPUT);
pinMode(vibmotorPin, OUTPUT);
pinMode(FORCE_SENSOR_PIN, INPUT);
Serial.begin(9600);
HC_12.begin(9600);

}


void loop() {
  int analogReading = analogRead(FORCE_SENSOR_PIN);
 Serial.print("Force sensor reading = ");
  Serial.println(analogReading); // print the raw analog reading

  if(analogReading>400){
 if(HC_12.available()) {
   
    Serial.println("fine");
}
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////5                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
waterLevel =analogRead(watersensor);
//Serial.print("water ");
//Serial.println(waterLevel);
if(waterLevel >= 500)
{
 Serial.print("water: ");
  Serial.println(waterLevel);
  //digitalWrite(vibmotorPin, HIGH);
  HC_12.write(1);
  Serial.println(1);
}
//  else  digitalWrite(vibmotorPin, LOW);                                         // WATER CODE 


////////////////////////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);

digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
  
//digitalWrite(trigPin3, LOW);
//delayMicroseconds(2);
digitalWrite(trigPin3, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin3, LOW);
duration3= pulseIn(echoPin3, HIGH);

distance1= duration1*0.034/2;
distance2= duration2*0.034/2;
distance3= duration3*0.034/2;
stairsWidth=distance1-distance2-6;
//  Serial.print("d1: ");
//Serial.println(distance1);
// Serial.print("d2: ");
//Serial.println(distance2);
 Serial.print("d3: ");
Serial.println(distance3);
if(25<=stairsWidth && stairsWidth<=35)
{
  
//digitalWrite(vibmotorPin, HIGH);   
Serial.println("Stairs: ");  
Upstair_flag=1;                                                                     //upstairs case 
HC_12.write(2);
Serial.println(2);

}

else if(distance1<=50 || distance2<=44)
{
  if(Upstair_flag==1)
  {
    
    digitalWrite(vibmotorPin, HIGH);   
    HC_12.write(2);
    Upstair_flag=0;
   
    }
    else{
digitalWrite(vibmotorPin, HIGH);   
HC_12.write(3);
Serial.println(3);
    }
}
else if(distance3>100&&distance3<=134)       //downstairs
{
  Serial.println(4);
  HC_12.write(4);
}
else if(distance3>135) //hole
{
  Serial.println(5);
  HC_12.write(5);
}


else {digitalWrite(vibmotorPin, LOW);                                     
       HC_12.write("7");
} 
//Serial.print("Distance1: ");
//Serial.println(distance1);
//Serial.print("Distance2: ");
//Serial.println(distance2);


                        // there is an object 
  }
}
