#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <Ultrasonic.h>
// Initialize the LCD display
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (adjust if needed)
// Initialize the DHT sensor
#define DHTPIN 7
#define DHTTYPE DHT22 // Change to DHT22 if using DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
lcd.init();
lcd.backlight();
dht.begin();
}
void loop() {
// Read ultrasonic distance
float distance_cm = readUltrasonicDistance();
// Read temperature from DHT sensor
float temperature_C = dht.readTemperature();
// Display results on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distance: ");
lcd.print(distance_cm);
lcd.print(" cm");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperature_C);
lcd.print(" C");
delay(10); // Update every second
}
float readUltrasonicDistance() {
// Generate 10-microsecond pulse to TRIG pin
digitalWrite(9, HIGH);
delayMicroseconds(10);
digitalWrite(9, LOW);
// Measure duration of pulse from ECHO pin
long duration_us = pulseIn(8, HIGH);
// Calculate distance in centimeters
return 0.017 * duration_us;
}