#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define SOIL_MOISTURE_PIN A0
#define RAIN_SENSOR_PIN A1
#define DHT_TYPE DHT22
#define DHT_PIN 5
unsigned long previousMillis = 0;
const long interval = 1500;
DHT dht(DHT_PIN, DHT_TYPE);
LiquidCrystal_I2C lcd(0x27, 20, 4);
void log() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
}
void checkSensorData() {
float temperature, humidity;
float soilMoisture, rainSensor;
temperature = dht.readTemperature();
humidity = dht.readHumidity();
soilMoisture = analogRead(SOIL_MOISTURE_PIN);
rainSensor = analogRead(RAIN_SENSOR_PIN);
soilMoisture = map(soilMoisture, 0, 1023, 0, 100);
rainSensor = map(rainSensor, 0, 1023, 0, 100);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
checkSensorData();
}
Serial.println("CurrentMillis : " + String(currentMillis));
}
void setup() {
Serial.begin(9600);
Serial.println("Serial Initialized...Ok");
dht.begin();
lcd.init();
lcd.backlight();
float temperature, humidity;
float soilMoisture, rainSensor;
temperature = dht.readTemperature();
humidity = dht.readHumidity();
soilMoisture = analogRead(SOIL_MOISTURE_PIN);
rainSensor = analogRead(RAIN_SENSOR_PIN);
soilMoisture = map(soilMoisture, 0, 1023, 0, 100);
rainSensor = map(rainSensor, 0, 1023, 0, 100);
lcd.setCursor(0, 0);
lcd.print("Soil Moisture: ");
lcd.print(soilMoisture);
lcd.setCursor(0, 1);
lcd.print("Rain Sensor:");
lcd.print(rainSensor);
lcd.setCursor(0, 2);
lcd.print("Humidity:");
lcd.print(humidity);
lcd.setCursor(0, 3);
lcd.print("Temperature:");
lcd.print(temperature);
}