#include <DHT.h>
#define DHTPIN 4 // GPIO pin connected to the DHT11 sensor
#define DHTTYPE DHT11 // Define the type of DHT sensor
#define LDRPIN 34 // GPIO pin connected to the LDR (analog input)
#define RELAYPIN 32 // GPIO pin connected to the relay
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(RELAYPIN, OUTPUT);
digitalWrite(RELAYPIN, LOW); // Ensure the relay is off initially
}
void loop() {
// Read temperature and humidity
float humidity = dht.readHumidity();
float temperature = dht.readTemperature(); // Celsius
// Check if any reading failed
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Read LDR value
int ldrValue = analogRead(LDRPIN);
// Print sensor readings to Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C\t");
Serial.print("LDR Value: ");
Serial.println(ldrValue);
// Control the HVAC and lighting systems based on sensor readings
// Example thresholds (adjust as needed)
const float TEMP_THRESHOLD = 25.0; // Temperature threshold for HVAC
const int LDR_THRESHOLD = 512; // Light level threshold for lighting
if (temperature > TEMP_THRESHOLD || ldrValue < LDR_THRESHOLD) {
digitalWrite(RELAYPIN, HIGH); // Turn relay ON
} else {
digitalWrite(RELAYPIN, LOW); // Turn relay OFF
}
delay(2000); // Wait for 2 seconds before the next reading
}