#include "DHTesp.h"
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
#define LOWLED 16
#define MOTOR 19
const int DHT_PIN = 15;
DHTesp dhtSensor;
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
pinMode(LOWLED, OUTPUT);
pinMode(MOTOR, OUTPUT);
digitalWrite(LOWLED, HIGH);
digitalWrite(MOTOR, LOW);
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.init();
lcd.backlight();
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.print("Temp: ");
Serial.print(data.temperature, 1);
Serial.println("°C");
Serial.print("Humidity: ");
Serial.print(data.humidity, 1);
Serial.println("%");
Serial.println();
lcd.setCursor(0, 0);
lcd.print(" Temp: ");
lcd.print(data.temperature, 1);
lcd.print("\xDFC ");
lcd.setCursor(0, 1);
lcd.print(" Humidity: ");
lcd.print(data.humidity, 1);
lcd.print("% ");
lcd.print("Wokwi Online IoT");
if (data.humidity < 40.0) {
digitalWrite(LOWLED, LOW);
digitalWrite(MOTOR, LOW);
Serial.println("Please water the plants!");
} else {
digitalWrite(LOWLED, HIGH);
digitalWrite(MOTOR, HIGH);
Serial.println("Plants are well-Hydrated!");
}
delay(1000);
}