Sensorde humedad para CPD

Objetivo:

Crear un sensor de humedad para que monitoree la humedad de una habitación donde se encuentra el CPD y asegurar de que mantiene un nivel estable para este entre 40 -60%

Esta placa consta de una Arduino NANO conectada a 3 leds (rojo, amarillo y verde) con sus respectivas resistencias de 330 Ω  y un sensor de temperatura y humedad DHT22 AM2301 el cual de pendiendo de la lectura iluminara los respectivos leds . Adicionalmente la placa tiene un zumbador el cual esta para emitir pitidos y avisar de una humedad alta y a demas de avisar del correcto arraque de la placa de desarroyo al momento de enchufarla, si surjiera algun error el led parpadearia ne rojo y solo habria que pulsar el boton de reset

.

#include <DHT.h>
// Define pins
#define DHTPIN 2  // Pin for DHT22 data
#define DHTTYPE DHT22
#define SOIL_SENSOR_PIN A0  // Pin for soil moisture sensor
#define GREEN_LED_PIN 8
#define YELLOW_LED_PIN 9
#define RED_LED_PIN 10
#define BUZZER_PIN 3
// Initialize DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  // Initialize serial communication
  Serial.begin(9600);
  // Initialize DHT sensor
  dht.begin();
  // Set pin modes
  pinMode(SOIL_SENSOR_PIN, INPUT);
  pinMode(GREEN_LED_PIN, OUTPUT);
  pinMode(YELLOW_LED_PIN, OUTPUT);
  pinMode(RED_LED_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  // Turn off all LEDs and buzzer initially
  digitalWrite(GREEN_LED_PIN, LOW);
  digitalWrite(YELLOW_LED_PIN, LOW);
  digitalWrite(RED_LED_PIN, LOW);
  digitalWrite(BUZZER_PIN, LOW);
}
void loop() {
  // Read humidity from DHT22
  float humidity = dht.readHumidity();
  // Read soil moisture level (analog value)
  int soilMoisture = analogRead(SOIL_SENSOR_PIN);
  // Print readings to serial monitor
  Serial.print(«Humidity: «);
  Serial.print(humidity);
  Serial.println(«%»);
  Serial.print(«Soil Moisture: «);
  Serial.println(soilMoisture);
  // LEDs and buzzer logic based on humidity
  if (humidity < 40.0) {
    // Green LED: Below 40%
    digitalWrite(GREEN_LED_PIN, HIGH);
    digitalWrite(YELLOW_LED_PIN, LOW);
    digitalWrite(RED_LED_PIN, LOW);
    digitalWrite(BUZZER_PIN, LOW);
  } else if (humidity >= 40.0 && humidity <= 60.0) {
    // Yellow LED: Between 40% and 60%
    digitalWrite(GREEN_LED_PIN, LOW);
    digitalWrite(YELLOW_LED_PIN, HIGH);
    digitalWrite(RED_LED_PIN, LOW);
    // Short beeps
    digitalWrite(BUZZER_PIN, HIGH);
    delay(200);
    digitalWrite(BUZZER_PIN, LOW);
    delay(800);
  } else {
    // Red LED: Above 60%
    digitalWrite(GREEN_LED_PIN, LOW);
    digitalWrite(YELLOW_LED_PIN, LOW);
    digitalWrite(RED_LED_PIN, HIGH);
    // Continuous beeps
    digitalWrite(BUZZER_PIN, HIGH);
    delay(100);
    digitalWrite(BUZZER_PIN, LOW);
    delay(100);
  }
  // Delay for next reading
  delay(2000);
}
es_ESSpanish