#include <DHT.h>
#define DHTPIN 2 // Pin where the DHT22 is connected
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define LIGHT_SENSOR_PIN A0
#define HEATER_PIN 3
#define HUMIDIFIER_PIN 4
#define LIGHT_PIN 5
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(HEATER_PIN, OUTPUT);
pinMode(HUMIDIFIER_PIN, OUTPUT);
pinMode(LIGHT_PIN, OUTPUT);
}
void loop() {
// Reading temperature and humidity
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
int lightLevel = analogRead(LIGHT_SENSOR_PIN);
// Control temperature
if (temperature < 20) {
digitalWrite(HEATER_PIN, HIGH); // Turn on heater
} else {
digitalWrite(HEATER_PIN, LOW); // Turn off heater
}
// Control humidity
if (humidity < 60) {
digitalWrite(HUMIDIFIER_PIN, HIGH); // Turn on humidifier
} else {
digitalWrite(HUMIDIFIER_PIN, LOW); // Turn off humidifier
}
// Control lighting
if (lightLevel < 500) {
digitalWrite(LIGHT_PIN, HIGH); // Turn on grow lights
} else {
digitalWrite(LIGHT_PIN, LOW); // Turn off grow lights
}
// Print sensor data for debugging
Serial.print("Temp: ");
Serial.print(temperature);
Serial.print("C, Humidity: ");
Serial.print(humidity);
Serial.print("%, Light Level: ");
Serial.println(lightLevel);
delay(2000); // Wait for 2 seconds before next loop
}