#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//#include <DHT.h>
// DHT Sensor Configuration
const int DHT_Pin = 4; // The DHT sensor pin
//DHT dht(DHT_Pin, DHT22); // Change to DHT11 if you are using DHT11
// Soil Moisture Sensor Configuration
const int Soil_Moisture_Pin = 34;
// LCD Configuration
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Variables
float temperature;
float humidity;
void setup() {
Wire.begin(23, 22); // I2C communication pins for the LCD
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DHT & Soil Sensor");
delay(2000);
lcd.clear();
}
void loop() {
// Read DHT sensor data
//temperature = dht.readTemperature();
//humidity = dht.readHumidity();
// Read soil moisture sensor data
int soilMoisture = analogRead(Soil_Moisture_Pin);
// Display DHT data on the LCD
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print("C Hum: ");
lcd.print(humidity);
lcd.print("%");
// Display soil moisture data on the LCD
lcd.setCursor(0, 1);
String soilCondition = (soilMoisture < 2165) ? "WET" : (soilMoisture > 3135) ? "DRY" : "OK";
lcd.print("Soil: ");
lcd.print(soilCondition);
// Print DHT data and soil moisture data to the serial monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print("°C Humidity: ");
Serial.print(humidity);
Serial.print("% Soil Moisture: ");
Serial.println(soilCondition);
delay(2000);
}