#define BLYNK_TEMPLATE_ID "TMPL2KeSclYet"
#define BLYNK_TEMPLATE_NAME "Iluminacion2"
#define BLYNK_AUTH_TOKEN "7EMgehPz8ZvZJl6AYOa9qM-o7WVoL6GJ"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
// Configuración de la red WiFi
char ssid[] = "Fam Prieto Torres"; // Nombre de tu red WiFi
char pass[] = "12345678PT"; // Contraseña de tu red WiFi
// Pines del ESP32
const int LDR_PIN = 34; // Pin donde está conectado el LDR
const int LED_PIN = 2; // Pin donde está conectado el LED (en caso de que quieras controlarlo directamente)
const int RELAY_PIN = 27; // Pin donde está conectado el Relay
int modoManual = 0; // Variable para alternar entre automático y manual
BlynkTimer timer; // Temporizador de Blynk
// Función para leer el sensor LDR y controlar el relay
void leerSensor() {
int nivelLuz = analogRead(LDR_PIN); // Leer el valor del LDR
Blynk.virtualWrite(V0, nivelLuz); // Enviar el nivel de luz a Blynk en el widget V0
// Si está en modo automático, controlar el relay en función del nivel de luz
if (modoManual == 0) {
if (nivelLuz < 2000) {
digitalWrite(RELAY_PIN, HIGH); // Encender el relay (iluminación)
} else {
digitalWrite(RELAY_PIN, LOW); // Apagar el relay (iluminación)
}
}
}
// Función para cambiar entre modo automático y manual
BLYNK_WRITE(V1) {
modoManual = param.asInt(); // Cambiar el modo
}
// Función para controlar el relay manualmente desde Blynk
BLYNK_WRITE(V2) {
int estado = param.asInt(); // Leer el estado del widget V2
digitalWrite(RELAY_PIN, estado); // Encender o apagar el relay según el valor
}
void setup() {
// Configuración de pines
pinMode(RELAY_PIN, OUTPUT);
pinMode(LDR_PIN, INPUT);
// Inicializar el puerto serie
Serial.begin(115200);
// Conectar a la red WiFi y Blynk
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Configurar el temporizador para leer el sensor cada segundo
timer.setInterval(1000L, leerSensor);
}
void loop() {
Blynk.run(); // Mantener la conexión con Blynk
timer.run(); // Ejecutar tareas periódicas
}