tutoriales.com

Control Remoto de Iluminación Inteligente con ESP32 y Blynk

Este tutorial te guiará paso a paso en la creación de un sistema de iluminación inteligente basado en el microcontrolador ESP32 y la aplicación Blynk. Podrás controlar tus luces de forma remota, programar horarios y añadir funcionalidades de automatización para tu hogar o oficina.

Principiante18 min de lectura19 views
Reportar error

💡 Introducción al Control de Iluminación Inteligente DIY

En la era de la Internet de las Cosas (IoT), la automatización del hogar se ha vuelto más accesible que nunca. Uno de los primeros pasos para convertir tu casa en un hogar inteligente es el control de la iluminación. Este tutorial te enseñará cómo construir tu propio sistema de control remoto de luces utilizando un ESP32, relés y la plataforma Blynk, una solución popular para proyectos IoT que permite crear interfaces de usuario personalizadas en tu smartphone.

Olvídate de interruptores manuales y controla tus luces desde cualquier lugar, crea escenarios y automatizaciones. ¡Es más fácil de lo que crees!

💡 **Consejo:** Este proyecto es excelente para principiantes en IoT y electrónica, ya que combina hardware y software de manera práctica y visual.

¿Por qué construir tu propio sistema?

Aunque existen muchas soluciones comerciales, construir tu propio sistema te da una flexibilidad y un control sin precedentes. Podrás:

  • Personalizar: Adaptar el sistema a tus necesidades específicas.
  • Aprender: Entender cómo funciona la tecnología detrás de los dispositivos inteligentes.
  • Ahorrar: A menudo, es más económico que comprar sistemas prefabricados.
  • Expandir: Integrar fácilmente otras funciones o sensores en el futuro.

🛠️ Materiales Necesarios

Para este proyecto, necesitarás los siguientes componentes. La mayoría son fáciles de conseguir en tiendas de electrónica en línea o locales.

ComponenteCantidadDescripciónEnlace de Compra (Ejemplo)
------------
ESP32 DevKit C (o similar)1Microcontrolador con Wi-Fi integrado.Tienda Electrónica
Módulo de Relé de 2 Canales1Permite controlar dispositivos de alto voltaje (luces) con el ESP32.Tienda Electrónica
------------
Cable Jumper Macho-Hembra10-15Para realizar las conexiones entre el ESP32 y el módulo de relé.Tienda Electrónica
Fuente de Alimentación 5V1Para alimentar el ESP32 (cargador de móvil micro USB o USB-C).Tienda Electrónica
------------
Cables Eléctricos (para luces)SuficientesPara conectar el relé a la red eléctrica y a las bombillas.Ferretería
Bombilla o Lámpara (120V/240V)1-2Para probar el sistema.Tienda Local
------------
Protoboard (opcional)1Útil para organizar conexiones temporales.Tienda Electrónica
Carcasa (opcional)1Para un acabado más profesional y seguridad.Impresión 3D/Tienda
⚠️ **Advertencia:** Trabajar con electricidad de red (120V/240V) puede ser peligroso. Si no tienes experiencia, busca la ayuda de un electricista calificado o toma precauciones extremas. ¡La seguridad es lo primero!

⚙️ Configuración del Entorno de Desarrollo

Antes de empezar a programar el ESP32, debemos asegurarnos de que tenemos el entorno de desarrollo adecuado. Usaremos el IDE de Arduino debido a su popularidad y facilidad de uso.

1. Instalar el IDE de Arduino

Descarga e instala la última versión del IDE de Arduino desde su sitio web oficial. Sigue las instrucciones específicas para tu sistema operativo.

2. Añadir Soporte para ESP32 en el IDE de Arduino

El IDE de Arduino no soporta el ESP32 por defecto. Debes añadir la URL del gestor de tarjetas:

  1. Abre el IDE de Arduino.
  2. Ve a Archivo > Preferencias.
  3. En el campo "URLs Adicionales para el Gestor de Tarjetas", añade la siguiente URL: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json Si ya tienes otras URLs, sepáralas con una coma.
  4. Haz clic en OK.
  5. Ve a Herramientas > Placa > Gestor de Tarjetas....
  6. Busca "esp32" e instala el paquete "esp32 by Espressif Systems".

3. Instalar la Librería Blynk

Necesitarás la librería de Blynk para que tu ESP32 pueda comunicarse con la plataforma.

  1. En el IDE de Arduino, ve a Programa > Incluir Librería > Gestionar Librerías....
  2. Busca "Blynk" e instala la librería "Blynk by Volodymyr Shymanskyy".
📌 **Nota:** Asegúrate de tener una conexión a internet activa durante la instalación de las placas y librerías.

📱 Configuración de la Aplicación Blynk

Blynk te permite crear una interfaz gráfica para tus proyectos IoT sin necesidad de escribir código complejo de UI.

1. Descargar la Aplicación Blynk

Descarga la aplicación Blynk en tu smartphone (disponible para Android e iOS).

2. Crear una Nueva Cuenta y Proyecto

  1. Abre la aplicación y crea una nueva cuenta si aún no tienes una.
  2. Una vez dentro, toca New Project.
  3. Dale un nombre a tu proyecto (ej. "Luces Inteligentes").
  4. Selecciona el dispositivo: ESP32 Dev Board.
  5. Elige el tipo de conexión: Wi-Fi.
  6. Haz clic en Create.

3. Obtener el Auth Token

Después de crear el proyecto, Blynk te enviará un "Auth Token" a tu correo electrónico registrado. Este token es crucial, ya que permite que tu ESP32 se conecte de forma segura a tu proyecto Blynk. Copia este token, lo necesitarás en el código.

4. Diseñar la Interfaz de Usuario en Blynk

Ahora vamos a añadir los widgets para controlar nuestras luces:

  1. En la pantalla del proyecto, toca el icono + (en la esquina superior derecha) para añadir un widget.
  2. Añade un widget de tipo Button (botón).
  3. Toca el botón para configurarlo:
    • OUTPUT: Selecciona un pin virtual. Para la primera luz, usa V1.
    • MODE: Cámbiate a Switch (interruptor) para que el botón se mantenga encendido/apagado.
    • LABEL ON/OFF: Puedes poner "Luz Sala ON" y "Luz Sala OFF" o similar.
  4. Repite el proceso si tienes una segunda luz, usando el pin virtual V2 para el segundo botón.
  5. Puedes arrastrar y redimensionar los botones para organizar tu interfaz.
Blynk App Configurada

🔌 Conexiones de Hardware (Diagrama)

Ahora vamos a conectar el ESP32 al módulo de relé. Asegúrate de que todo esté desconectado de la corriente antes de hacer cualquier conexión.

Fuente 5V DC V+ (5V) GND ESP32 3.3V GND G27 G26 VIN Relé 2 Canales VCC GND IN1 IN2 NO COM NC Bombilla CA (Red) 3.3V GPIO

Aquí tienes un esquema de las conexiones principales:

ESP32 PinMódulo de Relé PinFunción
---------
GNDGNDTierra Común
3.3VVCCAlimentación para el Módulo de Relé
---------
GPIO27IN1Control de la Luz 1
GPIO26IN2Control de la Luz 2
🔥 **Importante:** Algunos módulos de relé pueden requerir 5V para VCC. Si tu ESP32 tiene un pin de 5V (VIN), es preferible usarlo para el VCC del relé para asegurar un buen funcionamiento. Si solo tienes 3.3V, la mayoría de los módulos de relé modernos funcionan bien con 3.3V en la entrada de señal (IN1/IN2) pero el VCC del módulo debe ir a 5V si está disponible. Si no hay 5V en el ESP32, puedes alimentarlo externamente con una fuente de 5V separada, compartiendo la tierra con el ESP32. Para simplificar, en este tutorial asumimos que el relé puede activarse con 3.3V y se alimenta con el 3.3V del ESP32.

Conexión del Módulo de Relé a la Luz y la Red Eléctrica

Cada canal del módulo de relé tiene tres terminales para la salida: COM (Común), NO (Normalmente Abierto) y NC (Normalmente Cerrado).

  • COM (Común): Aquí conectarás uno de los cables de la red eléctrica (fase o línea).
  • NO (Normalmente Abierto): Aquí conectarás un cable que va a la bombilla. Cuando el relé se activa, cierra el circuito entre COM y NO, encendiendo la luz.
  • NC (Normalmente Cerrado): Aquí conectarás un cable que va a la bombilla. Cuando el relé se activa, abre el circuito entre COM y NC, apagando la luz. Para nuestro propósito de encender/apagar una luz, usaremos NO.

Procedimiento:

  1. Desconecta la luz de la corriente.
  2. Corta el cable de fase de la bombilla (el que lleva la corriente activa) en dos.
  3. Conecta un extremo del cable cortado a COM del relé.
  4. Conecta el otro extremo del cable cortado a NO del relé.
  5. El cable neutro y el de tierra (si aplica) de la bombilla deben seguir conectados directamente a la red eléctrica sin pasar por el relé.

👨‍💻 Programación del ESP32 con Arduino IDE

Ahora es el momento de cargar el código a nuestro ESP32.

1. Abrir un Nuevo Sketch y Copiar el Código

Abre un nuevo sketch en el IDE de Arduino y pega el siguiente código.

#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

// Credenciales de autenticación de Blynk
char auth[] = "TU_AUTH_TOKEN"; // Reemplaza con tu Auth Token de Blynk

// Credenciales de tu red Wi-Fi
char ssid[] = "TU_NOMBRE_WIFI"; // Reemplaza con el nombre de tu red Wi-Fi
char pass[] = "TU_PASSWORD_WIFI"; // Reemplaza con la contraseña de tu red Wi-Fi

// Definición de los pines del ESP32 conectados a los relés
#define RELAY_PIN_1 27 // GPIO27 para la Luz 1 (conectado a IN1 del relé)
#define RELAY_PIN_2 26 // GPIO26 para la Luz 2 (conectado a IN2 del relé)

void setup()
{
  Serial.begin(115200);

  // Inicializar los pines de relé como salidas y apagados (HIGH por ser relés activos en LOW)
  pinMode(RELAY_PIN_1, OUTPUT);
  digitalWrite(RELAY_PIN_1, HIGH); // Apagado inicial
  pinMode(RELAY_PIN_2, OUTPUT);
  digitalWrite(RELAY_PIN_2, HIGH); // Apagado inicial

  Blynk.begin(auth, ssid, pass);

  Serial.println("ESP32 iniciado y conectándose a Blynk...");
}

void loop()
{
  Blynk.run();
}

// Función que se ejecuta cuando el pin virtual V1 cambia de estado en Blynk
BLYNK_WRITE(V1)
{
  int pinValue = param.asInt(); // Obtiene el valor (0 o 1) del botón de Blynk
  if (pinValue == 1) {
    digitalWrite(RELAY_PIN_1, LOW); // Enciende la Luz 1 (relé activo en LOW)
    Serial.println("Luz 1 Encendida");
  } else {
    digitalWrite(RELAY_PIN_1, HIGH); // Apaga la Luz 1
    Serial.println("Luz 1 Apagada");
  }
}

// Función que se ejecuta cuando el pin virtual V2 cambia de estado en Blynk
BLYNK_WRITE(V2)
{
  int pinValue = param.asInt(); // Obtiene el valor (0 o 1) del botón de Blynk
  if (pinValue == 1) {
    digitalWrite(RELAY_PIN_2, LOW); // Enciende la Luz 2 (relé activo en LOW)
    Serial.println("Luz 2 Encendida");
  } else {
    digitalWrite(RELAY_PIN_2, HIGH); // Apaga la Luz 2
    Serial.println("Luz 2 Apagada");
  }
}

2. Modificar las Credenciales

¡Muy importante! Antes de subir el código, debes reemplazar los placeholders con tu información real:

  • "TU_AUTH_TOKEN": Pega el Auth Token que Blynk te envió por correo.
  • "TU_NOMBRE_WIFI": Escribe el SSID (nombre) de tu red Wi-Fi.
  • "TU_PASSWORD_WIFI": Escribe la contraseña de tu red Wi-Fi.

3. Entender el Código

  • BLYNK_PRINT Serial: Habilita la depuración a través del puerto serie.
  • #include <WiFi.h>, <WiFiClient.h>, <BlynkSimpleEsp32.h>: Incluyen las librerías necesarias para la conectividad Wi-Fi y Blynk.
  • auth[], ssid[], pass[]: Almacenan las credenciales de Blynk y Wi-Fi.
  • RELAY_PIN_1, RELAY_PIN_2: Definen los pines GPIO del ESP32 conectados a los relés. Hemos elegido GPIO27 y GPIO26.
  • setup(): Se ejecuta una vez al inicio. Configura la comunicación serie, los pines de relé como salida y establece una conexión con Blynk. digitalWrite(RELAY_PIN, HIGH) inicializa los relés apagados porque la mayoría de los módulos de relé se activan con un estado LOW (activo bajo).
  • loop(): Se ejecuta repetidamente. Blynk.run() mantiene la conexión con el servidor de Blynk y procesa los eventos.
  • BLYNK_WRITE(V1) y BLYNK_WRITE(V2): Estas son funciones de callback que se activan cuando el valor del pin virtual V1 o V2 (nuestros botones en la app) cambia en Blynk. La variable param.asInt() obtiene el estado del botón (0 para apagado, 1 para encendido) y en base a ello, el código controla el pin del relé correspondiente.

4. Seleccionar la Placa y el Puerto

  1. En el IDE de Arduino, ve a Herramientas > Placa y selecciona tu modelo de ESP32 (ej. ESP32 Dev Module).
  2. Luego, ve a Herramientas > Puerto y selecciona el puerto COM al que está conectado tu ESP32. (Si no lo ves, instala los drivers USB a Serie para tu ESP32, normalmente CP210x o CH340).

5. Subir el Código

Haz clic en el botón Subir (la flecha a la derecha) en el IDE de Arduino. Verás el progreso en la consola inferior. Si hay errores, revísalos cuidadosamente. Una vez subido, abre el Monitor Serie (icono de lupa en la esquina superior derecha) para ver los mensajes de conexión del ESP32.

📌 **Nota:** Si la subida falla, intenta mantener pulsado el botón BOOT del ESP32 mientras lo conectas al USB, o presiona BOOT y luego EN (Reset) durante la subida. Algunos ESP32 requieren esto para entrar en modo de programación.

✅ Puesta en Marcha y Pruebas

Una vez que el código esté cargado y el ESP32 conectado a los relés y las luces, es hora de probarlo.

1. Alimentar el ESP32

Conecta el ESP32 a una fuente de alimentación de 5V (por ejemplo, un cargador de móvil) utilizando su cable USB. El ESP32 debería conectarse a tu red Wi-Fi y luego al servidor de Blynk.

2. Iniciar el Proyecto en Blynk

Abre la aplicación Blynk en tu teléfono y toca el botón de Play (el triángulo en la esquina superior derecha) en tu proyecto. Esto pondrá tu interfaz en modo de ejecución.

3. Controlar las Luces

Ahora, toca los botones que creaste en la aplicación Blynk. Deberías escuchar un clic en el módulo de relé y ver cómo la bombilla correspondiente se enciende o apaga.

Paso 1: Conectar ESP32 a la corriente.
Paso 2: Abrir app Blynk y poner proyecto en 'Play'.
Paso 3: Pulsar botones V1/V2 en Blynk.
Paso 4: Observar cambio de estado de las luces.

Solución de Problemas Comunes

  • El ESP32 no se conecta a Wi-Fi/Blynk: Verifica tus credenciales ssid, pass y auth en el código. Asegúrate de que el ESP32 esté dentro del alcance de tu red Wi-Fi.
  • Las luces no responden:
    • Revisa las conexiones de los relés a los pines GPIO del ESP32.
    • Asegúrate de que la conexión del relé a la red eléctrica y la bombilla esté correcta y segura.
    • Verifica que el módulo de relé esté recibiendo alimentación (normalmente tiene un LED indicador).
    • Comprueba si tu relé es "activo bajo" (se enciende con LOW) o "activo alto" (se enciende con HIGH). El código está configurado para activo bajo (LOW para encender).
  • "Auth Token is Invalid" en el Monitor Serie: Asegúrate de que el Auth Token en tu código coincida exactamente con el de tu proyecto de Blynk.

✨ Mejoras y Próximos Pasos

¡Has construido tu sistema básico de control de iluminación! Pero el potencial de IoT es enorme. Aquí tienes algunas ideas para expandir tu proyecto:

1. Automatización por Horario

Blynk tiene un widget Timer que te permite programar encendidos y apagados automáticos. Añádelo a tu proyecto y configúralo para encender las luces al atardecer o apagarlas por la noche.

2. Sensores de Luz Ambiental

Integra un sensor de luz LDR (Photoresistor) para que las luces se enciendan automáticamente cuando oscurece y se apaguen cuando hay suficiente luz natural. Esto requerirá añadir un pin analógico en el ESP32 y código adicional para leer el sensor.

3. Control por Voz

Conectar Blynk con servicios como IFTTT (If This Then That) te permite integrar tu sistema con asistentes de voz como Google Assistant o Amazon Alexa. Podrías decir "Ok Google, enciende la luz de la sala".

4. Más Luces y Módulos de Relé

Si necesitas controlar más luces, puedes añadir módulos de relé con más canales (4, 8, etc.) y expandir el código para controlar más pines GPIO.

5. Integración con Sensores de Movimiento

Para pasillos o garajes, puedes añadir un sensor PIR (Passive Infrared) para que las luces se enciendan cuando detecten movimiento y se apaguen después de un tiempo de inactividad.

FAQ: ¿Es seguro controlar las luces de casa con esto? Sí, si se hacen las conexiones correctamente y con componentes adecuados. La parte de bajo voltaje (ESP32) está aislada de la parte de alto voltaje (relé y bombilla). Es crucial seguir las normas de seguridad eléctrica y, si tienes dudas, consultar a un profesional. Una carcasa adecuada también es importante para la seguridad y la durabilidad.
💡 **Consejo:** Considera usar cajas de empalmes eléctricas para alojar de forma segura las conexiones de alto voltaje del relé.

conclusión

Felicidades, has completado un proyecto funcional de iluminación inteligente con ESP32 y Blynk. Has aprendido sobre la configuración del entorno de desarrollo, el diseño de interfaces IoT, las conexiones de hardware y la programación de microcontroladores. Este proyecto es una base sólida para explorar further las posibilidades de la automatización del hogar y la Internet de las Cosas. ¡Sigue experimentando y llevando la inteligencia a cada rincón de tu hogar!

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!