#include <ESP32Servo.h>
#include <DHTesp.h>
// Declarar objetos y pines
Servo ventilador; // Objeto para el servomotor
const int pinServo = 15; // Pin donde conectaremos el servomotor
const int pinSensor = 34; // Pin ADC para el sensor de temperatura (simulado)
// Variables
float temperatura = 0.0; // Temperatura en grados Celsius
const float umbralTemp = 60.0; // Temperatura umbral en grados Celsius
void setup() {
Serial.begin(115200); // Inicializar la comunicación serial
ventilador.attach(pinServo); // Conectar el servomotor al pin definido
ventilador.write(0); // Asegurarse de que el ventilador esté detenido
pinMode(pinSensor, INPUT); // Configurar el pin del sensor como entrada
Serial.println("Sistema iniciado");
}
void loop() {
// Leer el valor analógico del sensor de temperatura
int valorSensor = analogRead(pinSensor);
// Convertir el valor a temperatura (simulación)
temperatura = (valorSensor / 4095.0) * 330.0; // Conversión para el rango 0-3.3V, suponiendo LM35
// Mostrar temperatura por el puerto serie
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
// Control del servomotor
if (temperatura >= umbralTemp) {
// Hacer girar el servomotor como un ventilador
for (int angulo = 0; angulo <= 180; angulo += 10) {
ventilador.write(angulo);
delay(50); // Pequeña pausa para simular movimiento suave
}
for (int angulo = 180; angulo >= 0; angulo -= 10) {
ventilador.write(angulo);
delay(50);
}
} else {
// Detener el ventilador si no está girando
if (ventilador.read() != 0) {
ventilador.write(0);
}
}
delay(500); // Pequeña pausa antes de la próxima lectura
}