#include <Arduino.h>
#include <DHT.h>
#define DHT_PIN 4 // DHT Sensor Pin
#define LED_R 16 // Red Pin
#define LED_G 17 // Green Pin
#define LED_B 18 // Blue Pin
DHT dht(DHT_PIN, DHT22); // Use DHT22 sensor
void setup() {
Serial.begin(115200);
// Initialize DHT sensor
dht.begin();
// Set RGB LED pins as output
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
// Debugging message to ensure setup is complete
Serial.println("Setup complete. Testing LEDs...");
// Test RGB LED: Turn on each color one by one
digitalWrite(LED_R, HIGH); // Start with all LEDs off (Common cathode: HIGH means OFF)
digitalWrite(LED_G, HIGH);
digitalWrite(LED_B, HIGH);
delay(2000); // Wait for 2 seconds
// Test Red, Green, Blue
setColor(255, 0, 0); // Red
delay(2000); // Waiting for 2 seconds
setColor(0, 255, 0); // Green
delay(2000); // Waiting for 2 seconds
setColor(0, 0, 255); // Blue
delay(2000); // Waiting for 2 seconds
// After testing, turning off all colors
setColor(0, 0, 0); // Turning off RGB LED
}
void loop() {
// Reading humidity and temperature
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Checking if reading failed
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Printing values to serial monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("% Temperature: ");
Serial.print(temperature);
Serial.println("°C");
// Setting RGB LED color based on humidity
if (humidity < 50) {
setColor(0, 255, 0); // Green ON (Safe humidity)
Serial.println("Green LED ON - Humidity < 50%");
}
else if (humidity >= 50 && humidity < 70) {
setColor(255, 255, 0); // Blue (Red + Green)
Serial.println("Blue LED ON - 50% <= Humidity < 70%");
}
else {
setColor(255, 0, 0); // Red ON (High humidity warning)
Serial.println("Red LED ON - Humidity >= 70%");
}
delay(2000); // Delay between readings
}
// Function to set RGB color based on individual red, green, blue values
void setColor(int red, int green, int blue) {
analogWrite(LED_R, red); // Setting Red LED brightness
analogWrite(LED_G, green); // Setting Green LED brightness
analogWrite(LED_B, blue); // Setting Blue LED brightness
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4