#include <DHT.h>
// Definir el pin al que está conectado el sensor DHT11
#define DHTPIN 16
// Seleccionar el tipo de sensor DHT
#define DHTTYPE DHT22
// Crear una instancia del sensor DHT
DHT dht(DHTPIN, DHTTYPE);
// Definir el pin del LDR
int LED_pin = 13; // El LED está conectado en el pin 13 (ajustar si es necesario)
int LDR_pin = 34; // En el ESP32 utilizamos el pin 34 para la entrada analógica
int LDR_val = 0; // Variable para leer datos del LDR
float voltaje = 0.0; // Variable para almacenar el valor en voltaje
void setup() {
// Iniciar la comunicación serie a 9600 baudios
Serial.begin(9600);
// Iniciar el sensor DHT
dht.begin();
// Configurar el LED como salida
pinMode(LED_pin, OUTPUT);
}
void loop() {
// Tomar una medición cada minuto durante una hora (60 minutos)
for (int i = 0; i < 60; i++) {
// Esperar 1 minuto (60000 milisegundos)
delay(1000);
// Leer la temperatura en grados Celsius
float temperatura = dht.readTemperature();
// Verificar si la lectura de temperatura es válida
if (isnan(temperatura)) {
Serial.println("Error al leer el sensor DHT11");
} else {
// Imprimir la temperatura en el monitor serie
Serial.print("Medición de Temperatura ");
Serial.print(i + 1);
Serial.print(": ");
Serial.print(temperatura);
Serial.println(" °C");
}
// Leer el valor del LDR
LDR_val = analogRead(LDR_pin);
// Convertir el valor del ADC a voltaje
voltaje = (LDR_val / 4095.0) * 5.0; // Convertir el valor ADC (0-4095) a voltaje (0-5V)
// Imprimir el valor de voltaje del LDR
Serial.print("Voltaje del LDR = ");
Serial.print(voltaje);
Serial.println(" V");
// Condicional para controlar el LED en función del voltaje del LDR
if (voltaje >= 3.6) { // Umbral basado en el voltaje (ajustable)
digitalWrite(LED_pin, HIGH); // Enciende el LED si la luz es baja
}
else {
digitalWrite(LED_pin, LOW); // Apaga el LED si la luz es alta
}
}
// Detener el loop después de 60 mediciones
while (true) {
// No hacer nada
}
}