/**************************************************
* Smart Object Detection System using ESP32 Microcontroller *
* SUBMITTED BY CO,MA DIANNA R. *
* SUBMITTED TO PROF. MICHAEL T. SAMONTE *
* *************************************************/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
const int trigPin = 5;
const int echoPin = 18;
Servo servo;
LiquidCrystal_I2C lcd(0x27, 16, 4); // I2C address 0x27, 20 columns and 4 rows
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.backlight();
lcd.init();
servo.attach(19);
servo.write(90);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // Divide by 29.1 or multiply by 0.0343 to convert microseconds to centimeters
lcd.setCursor(0, 0);
lcd.print("Distance: " + String(distance) + " cm");
int servoAngle = 90; // Default servo angle
if (distance <= 10) {
servoAngle = 0;
} else if (distance <= 20) {
servoAngle = 90;
} else if (distance <= 30) {
servoAngle = 180;
}
lcd.setCursor(0, 1);
lcd.print("Servo Angle: " + String(servoAngle) + " deg.");
servo.write(servoAngle);
lcd.setCursor(0, 2);
lcd.print ("Created By: ");
lcd.setCursor(0, 3);
lcd.print ("CHRYZTAN SAMONG");
delay(500); // Delay for one second before taking the next measurement
}