CODE WITH FIREBASE :
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
// Replace with your network credentials
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
// Replace with your Firebase project credentials
#define FIREBASE_HOST "YOUR_FIREBASE_HOST"
#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"
// Define the Firebase data object
FirebaseData firebaseData;
const int trigFront = 2; // Trig pin for front sensor
const int echoFront = 6; // Echo pin for front sensor
const int trigBack = 3; // Trig pin for back sensor
const int echoBack = 7; // Echo pin for back sensor
const int trigLeft = 4; // Trig pin for left sensor
const int echoLeft = 8; // Echo pin for left sensor
const int trigRight = 5; // Trig pin for right sensor
const int echoRight = 9; // Echo pin for right sensor
const int redLED = 10; // Pin for red LED
const int greenLED = 11; // Pin for green LED
long duration;
int distanceFront, distanceBack, distanceLeft, distanceRight;
int targetDistanceFront, targetDistanceLeft, targetDistanceRight;
void setup() {
[Link](9600);
[Link](ssid, password);
[Link]("Connecting to Wi-Fi");
while ([Link]() != WL_CONNECTED) {
delay(500);
[Link](".");
}
[Link]();
[Link]("Connected to Wi-Fi");
[Link](FIREBASE_HOST, FIREBASE_AUTH);
[Link](true);
pinMode(trigFront, OUTPUT);
pinMode(echoFront, INPUT);
pinMode(trigBack, OUTPUT);
pinMode(echoBack, INPUT);
pinMode(trigLeft, OUTPUT);
pinMode(echoLeft, INPUT);
pinMode(trigRight, OUTPUT);
pinMode(echoRight, INPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
}
void loop() {
// Read target distances from Firebase
if ([Link](firebaseData, "/distanceFront")) {
targetDistanceFront = [Link]();
} else {
[Link]("Failed to get front distance from Firebase");
[Link]([Link]());
}
if ([Link](firebaseData, "/distanceLeft")) {
targetDistanceLeft = [Link]();
} else {
[Link]("Failed to get left distance from Firebase");
[Link]([Link]());
}
if ([Link](firebaseData, "/distanceRight")) {
targetDistanceRight = [Link]();
} else {
[Link]("Failed to get right distance from Firebase");
[Link]([Link]());
}
distanceFront = getDistance(trigFront, echoFront);
[Link]("Distance Front: ");
[Link](distanceFront);
distanceBack = getDistance(trigBack, echoBack);
[Link]("Distance Back: ");
[Link](distanceBack);
distanceLeft = getDistance(trigLeft, echoLeft);
[Link]("Distance Left: ");
[Link](distanceLeft);
distanceRight = getDistance(trigRight, echoRight);
[Link]("Distance Right: ");
[Link](distanceRight);
if (distanceFront == targetDistanceFront && distanceLeft == targetDistanceLeft
&& distanceRight == targetDistanceRight) {
digitalWrite(greenLED, HIGH);
digitalWrite(redLED, LOW);
} else {
digitalWrite(greenLED, LOW);
digitalWrite(redLED, HIGH);
}
delay(1000); // Delay to avoid excessive serial printing
}
int getDistance(int trigPin, int echoPin) {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2; // Convert duration to cm
return distance;
}