#include "DHT.h" // --- CONFIGURACIÓN DE PINES --- #define DHTPIN 2 // Pin del pétalo donde conectaste el DATA del sensor #define DHTTYPE DHT11 // Tipo de sensor #define MOTOR_PIN 9 // Pin del pétalo donde conectaste el VIBRADOR // Inicializamos el sensor. El número 20 ayuda a que lea bien en LilyPad DHT dht(DHTPIN, DHTTYPE, 20); float tempReferencia; bool referenciaTomada = false; void setup() { Serial.begin(9600); pinMode(MOTOR_PIN, OUTPUT); dht.begin(); Serial.println("Iniciando Prenda Inteligente..."); // Pequeña vibración de bienvenida para saber que el LilyPad encendió digitalWrite(MOTOR_PIN, HIGH); delay(300); digitalWrite(MOTOR_PIN, LOW); } void loop() { // El DHT11 necesita tiempo, esperamos 2 segundos entre lecturas delay(2000); float t = dht.readTemperature(); // Si no puede leer el sensor, salta el resto del código if (isnan(t)) { Serial.println("Buscando sensor..."); return; } // La primera lectura válida será nuestra temperatura base (referencia) if (!referenciaTomada) { tempReferencia = t; referenciaTomada = true; Serial.print("Temperatura base fijada en: "); Serial.println(tempReferencia); } Serial.print("Temp: "); Serial.print(t); Serial.print(" | Ref: "); Serial.println(tempReferencia); // --- LÓGICA DE VIBRACIÓN --- if (t >= tempReferencia + 3.0) { // SUBIÓ 3 GRADOS: Vibra cada segundo Serial.println("¡Alerta Calor! Pulso rápido."); digitalWrite(MOTOR_PIN, HIGH); delay(400); // Vibra un poco digitalWrite(MOTOR_PIN, LOW); delay(600); // Espera menos para que sea rápido (Total 1 seg) } else if (t <= tempReferencia - 3.0) { // BAJÓ 3 GRADOS: Vibra cada 3 segundos Serial.println("¡Alerta Frío! Pulso lento."); digitalWrite(MOTOR_PIN, HIGH); delay(400); // Vibra un poco digitalWrite(MOTOR_PIN, LOW); delay(2600); // Espera más para que sea lento (Total 3 seg) } else { // Temperatura normal: Motor apagado digitalWrite(MOTOR_PIN, LOW); } }