#define BLYNK_TEMPLATE_ID "TMPL5USAwE7wS" #define BLYNK_TEMPLATE_NAME "Termostato ESP32" #define BLYNK_AUTH_TOKEN "yIXdtemJKuMiEzsm7MvC74eqZ56JA5fG" #include #include #include #include #include // --- CONFIGURACIÓN --- char ssid[] = "MOVISTAR_DF4F_INV"; char pass[] = "mTPYF7AgD2q6TEN4x7bz"; const int oneWireBus = 4; // Pin de datos de la sonda const int pinLED = 2; // LED integrado (azul) OneWire oneWire(oneWireBus); DallasTemperature sensors(&oneWire); BlynkTimer timer; // --- FUNCIÓN DE LECTURA Y ENVÍO --- void sendSensorData() { sensors.requestTemperatures(); float tempC = sensors.getTempCByIndex(0); if (tempC != DEVICE_DISCONNECTED_C) { // Enviar a la App (Pin Virtual V1) Blynk.virtualWrite(V1, tempC); // Feedback por Monitor Serie Serial.print("Temp Enviada: "); Serial.print(tempC); Serial.println(" °C"); // Pequeño parpadeo de confirmación en el ESP32 digitalWrite(pinLED, HIGH); delay(100); digitalWrite(pinLED, LOW); } else { Serial.println("Error: Sonda no detectada. Revisa conexiones."); } } // --- RECIBIR ORDENES DE LA APP (Boton en V2) --- BLYNK_WRITE(V2) { int relayState = param.asInt(); // Aquí podrías activar un relé o el mismo LED // Si usas el LED para feedback de datos, quizás quieras // usar otro pin para el control remoto, pero probemos con este: digitalWrite(pinLED, relayState); } void setup() { Serial.begin(115200); pinMode(pinLED, OUTPUT); sensors.begin(); Serial.println("Conectando a Blynk..."); Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); // Enviamos datos cada 2 segundos timer.setInterval(2000L, sendSensorData); } void loop() { Blynk.run(); timer.run(); }