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
.
Código
#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);
}