#include <Wire.h>
#include <RTClib.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#define TRIG_PIN 5 // GPIO pin for ultrasonic sensor Trig
#define ECHO_PIN 18 // GPIO pin for ultrasonic sensor Echo
#define redPin 2 // GPIO pin for LED RED
#define greenPin 18 //GPIO pin for GREEN LED
#define bluePin 37 //GPIO pin gfor BLUE LED
void setup() {
pinMode(TRIG_PIN, OUTPUT); // Set Trig pin as output
pinMode(ECHO_PIN, INPUT); // Set Echo pin as input
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin,OUTPUT); // Set LED pin as output
digitalWrite(greenPin, HIGH);
digitalWrite(redPin, LOW); // Turn off LED initially
Serial.begin(99600); // Initialize serial monitor for debugging
}
void loop() {
// Send a pulse to the ultrasonic sensor
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Measure the echo pulse duration
long duration = pulseIn(ECHO_PIN, HIGH);
// Calculate the distance (in cm)
int distance = duration * 0.034 / 2;
// Debug: Print distance to the Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Turn LED on/off based on distance
if (distance > 0 && distance < 5.0) {
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
delay(10000) ; // Turn on red LED
} else {
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);// Turn off red LED
}
// Green LED stays ON all the time
delay(100); // Short delay before the next measurement
}