/*
Wokwi | questions
hello!!! please need help
authentic — 2/19/2026 10:25 AM
*/
//SMART GREEN HOUSE
// white light for the Illumination
//yellow for fan light
// blue for pump
#include <DHT.h>
#define DHTPIN 32
#define DHTTYPE DHT22
#define PUMP_PIN 26
#define FAN_PIN 25
#define SOIL_PIN 35
#define LIGHT_PIN 34
#define LIGHT_ACTUATOR 33
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(PUMP_PIN, OUTPUT);
pinMode(FAN_PIN, OUTPUT);
pinMode(LIGHT_ACTUATOR, OUTPUT);
Serial.println("Smart Greenhouse System Starting...");
}
void loop() {
// 🌡️ Read DHT22
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// 🌱 Read Soil Moisture (Potentiometer)
int soilValue = analogRead(SOIL_PIN);
// ☀️ Read Light Sensor
int lightValue = 4096 - analogRead(LIGHT_PIN); // makes bright higher values
Serial.println("-------------");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Serial.print("Soil Value: ");
Serial.println(soilValue);
Serial.print("Light Value: ");
Serial.println(lightValue);
// 💧 PUMP CONTROL (Soil Moisture)
if (soilValue > 2500) { // DRY SOIL
digitalWrite(PUMP_PIN, HIGH);
Serial.println("Pump ON (Dry Soil)");
}
else if (soilValue < 1800) { // WET SOIL
digitalWrite(PUMP_PIN, LOW);
Serial.println("Pump OFF (Soil Wet)");
}
// 💧 PUMP CONTROL (Soil + Humidity)
if (soilValue > 2500 || humidity < 40) { // Dry soil OR Dry air
digitalWrite(PUMP_PIN, HIGH);
Serial.println("Pump ON (Dry soil or low humidity)");
}
else if (soilValue < 1800 && humidity > 50) {
digitalWrite(PUMP_PIN, LOW);
Serial.println("Pump OFF (Soil wet & humidity OK)");
}
// 🌬️ FAN CONTROL (Temperature)
if (temperature > 32) {
digitalWrite(FAN_PIN, HIGH);
Serial.println("Fan ON (Hot)");
}
else if (temperature < 28) {
digitalWrite(FAN_PIN, LOW);
Serial.println("Fan OFF (Cool)");
}
// 💡 GROW LIGHT CONTROL (LDR)
if (lightValue < 1500) { // DARK
digitalWrite(LIGHT_ACTUATOR, HIGH);
Serial.println("Grow Light ON (Dark)");
}
else if (lightValue > 2500) { // BRIGHT
digitalWrite(LIGHT_ACTUATOR, LOW);
Serial.println("Grow Light OFF (Bright)");
}
// 🌬️ FAN CONTROL (Temp + Humidity)
if (temperature > 32 || humidity > 75) { // Hot OR too humid
digitalWrite(FAN_PIN, HIGH);
Serial.println("Fan ON (Hot or high humidity)");
}
else if (temperature < 28 && humidity < 65) {
digitalWrite(FAN_PIN, LOW);
Serial.println("Fan OFF (Comfort climate)");
}
delay(2000);
}
Pump
Fan
Light