/* 1. Conexión del Sensor DHT22:
VCC (pin 1 del DHT22) -> 5V en Arduino.
GND (pin 4 del DHT22) -> GND en Arduino.
Data (pin 2 del DHT22) -> Pin digital 2 en Arduino.
Resistencia de 10kΩ entre VCC y Data (utilizada como pull-up).
2. Conexión del Relé:
VCC (en el módulo del relé) -> 5V en Arduino.
GND (en el módulo del relé) -> GND en Arduino.
IN (en el módulo del relé) -> Pin digital 3 en Arduino.
COM (en el módulo del relé) -> Conexión al foco de 220V.
NO (Normalmente Abierto, en el módulo del relé) -> Conexión a la línea de 220V.
Nota: La conexión de 220V debe ser realizada con precaución. Conecta uno de los cables del foco al COM del relé y el otro a la alimentación de 220V. El terminal NO va al otro lado de la alimentación de 220V.
3. Conexión de la Pantalla LCD con I2C:
VCC (en el módulo I2C) -> 5V en Arduino.
GND (en el módulo I2C) -> GND en Arduino.
SDA (en el módulo I2C) -> Pin A4 en Arduino.
SCL (en el módulo I2C) -> Pin A5 en Arduino.
Esquema de conexiones:
Arduino 5V:
Conectado a VCC del DHT22.
Conectado a VCC del módulo relé.
Conectado a VCC del módulo I2C.
Arduino GND:
Conectado a GND del DHT22.
Conectado a GND del módulo relé.
Conectado a GND del módulo I2C.
Arduino Digital Pin 2:
Conectado al Data del DHT22.
Arduino Digital Pin 3:
Conectado al IN del módulo relé.
Arduino A4:
Conectado a SDA del módulo I2C.
Arduino A5:
Conectado a SCL del módulo I2C*/
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Definir pines
#define DHTPIN 2 // Pin digital al que está conectado el DHT22
#define DHTTYPE DHT22 // Definir el tipo de sensor DHT22
#define RELAY_PIN 3 // Pin al que está conectado el relé
// Configuración de la pantalla LCD
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C 0x27, LCD 16x2
DHT dht(DHTPIN, DHTTYPE);
const float tempSetPoint = 25.0; // Temperatura objetivo en grados Celsius
void setup() {
// Configuración de los pines
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW); // Apagar el relé inicialmente
// Iniciar la comunicación serial
Serial.begin(9600);
dht.begin();
// Iniciar la pantalla LCD
lcd.init();
lcd.backlight();
lcd.print("Incubadora!");
delay(2000);
lcd.clear();
}
void loop() {
// Leer temperatura y humedad
float h = dht.readHumidity();
float t = dht.readTemperature();
// Mostrar los valores en el monitor serial
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C");
// Mostrar los valores en la pantalla LCD
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Humedad: ");
lcd.print(h);
lcd.print("%");
// Controlar el foco de 220V con el relé
if (t < tempSetPoint) {
digitalWrite(RELAY_PIN, HIGH); // Encender el foco
} else if (t >= tempSetPoint) {
digitalWrite(RELAY_PIN, LOW); // Apagar el foco
}
// Esperar antes de la próxima lectura
delay(2000);
}