#include <LiquidCrystal_I2C.h>
#include <Wire.h>
// Initialize LCD at I2C address 0x27 for a 16x2 display
LiquidCrystal_I2C lcd(0x27, 16, 2); // Connection (SCL: D1/GPIO5, SDA: D2/GPIO4)
const int trigP=18;
const int echoP=5;
long duration;
int distance;
void setup()
{
pinMode(trigP,OUTPUT);
pinMode(echoP,INPUT);
Serial.begin(9600);
Wire.begin(); // Default works for ESP8266; use Wire.begin(SDA, SCL) for custom pins
// Initialize LCD and turn on backlight
lcd.init();
lcd.backlight();
// Print static labels on the LCD
lcd.setCursor(0, 0);
lcd.print("Distance: ");
}
void loop() {
digitalWrite(trigP,LOW);
delayMicroseconds(2);
digitalWrite(trigP,HIGH);
delayMicroseconds(10);
digitalWrite(trigP,LOW);
duration=pulseIn(echoP,HIGH);
distance=duration*0.034/2;
Serial.print("Distance=");
Serial.println(distance);
lcd.print(" "); // Clear previous value
lcd.setCursor(0, 1);
lcd.print(distance, 1); // Display distance
delay(500);
}