Está en la página 1de 16

UNIVERSIDAD JUÁREZ AUTÓNOMA DE TABASCO:

DIVISIÓN ACADÉMICA DE INGENIERÍA Y ARQUITECTURA

Licenciatura:
Ingeniería Eléctrica y Electrónica

Asignatura:
Automatización de Sistemas Eléctricos

Profesor:
López Gómez Jesús

Alumnos:
David Gustavo Angulo Angulo
Jesus Antonio Hernandez Marquez

Proyecto:
Control de Focos mediante Relé, ESP32 y Arduino.

Semestre:
Decimo

Fecha:
04/Febrero/2024
TABLA DE CONTENIDO
INTRODUCCIÓN ......................................................................................................................1
MARCO TEÓRICO ...................................................................................................................2
DESARROLLO .........................................................................................................................5
RESULTADOS .......................................................................................................................12
CONCLUSIÓN ........................................................................................................................13
REFERENCIAS ......................................................................................................................14
INTRODUCCIÓN
Los relés son elementos fundamentales en el control de sistemas eléctricos, permitiendo la
activación y desactivación de cargas eléctricas de manera precisa y segura.- Ingeniería
Eléctrica y Electrónica.

La integración del ESP32 y Arduino abre un abanico de posibilidades en el ámbito de la


automatización y la domótica, permitiendo la creación de sistemas inteligentes de bajo
consumo energético.- Revista de Tecnología y Automatización.

La automatización de sistemas de iluminación mediante relés y dispositivos como el ESP32 y


Arduino es un paso significativo hacia la creación de entornos más eficientes y adaptativos.-
Journal of Smart Home Technology.

El control remoto de dispositivos eléctricos a través de la combinación de ESP32 y Arduino


es una tendencia en alza en la industria de la automatización, ofreciendo soluciones flexibles
y personalizadas para una variedad de aplicaciones.- Congreso Internacional de Ingeniería
Eléctrica y Electrónica.

La vinculación de relés, focos, ESP32 y Arduino representa una convergencia entre la


electrónica y la informática, permitiendo la creación de sistemas interconectados capaces de
adaptarse a las necesidades cambiantes del usuario.- Investigación en Sistemas Embebidos
y Control Automático.

La sinergia entre estos componentes electrónicos permite no solo el control remoto de


dispositivos eléctricos, sino también la implementación de sistemas de iluminación inteligente
que pueden ajustarse según las necesidades específicas del usuario y las condiciones
ambientales. Desde la gestión eficiente de la energía hasta la mejora de la seguridad y la
comodidad, la integración de relés, focos, ESP32 y Arduino ofrece una plataforma versátil
para la creación de soluciones innovadoras en el ámbito de la automatización y la domótica.

En este proyecto, exploraremos cómo integrar estos componentes para diseñar un sistema
de iluminación inteligente y adaptable, analizando tanto los aspectos técnicos de la
implementación como las posibles aplicaciones prácticas en entornos residenciales,
comerciales e industriales. A través de esta exploración, podremos comprender mejor el
potencial de esta tecnología y su impacto en nuestra vida diaria.

1
MARCO TEÓRICO
Control de Focos mediante Relé, ESP32 y Arduino.
El control de focos eléctricos mediante la combinación de relés, ESP32 y Arduino es una
aplicación común en proyectos de automatización, domótica y sistemas de iluminación
inteligente. En este marco teórico, exploraremos los fundamentos detrás de estos
componentes y cómo se integran para crear sistemas de control de iluminación versátil y
eficiente.

Ilustración 1. Control de Focos mediante Relé, ESP32 y Arduino.


Relés: Fundamentos y Funcionamiento.
Los relés son dispositivos electromecánicos que actúan como interruptores controlados por
una señal eléctrica. Cuando se aplica corriente a la bobina del relé, esta energiza un
electroimán que mueve los contactos, cerrando o abriendo un circuito eléctrico. Los relés son
utilizados en una amplia variedad de aplicaciones donde se requiere controlar dispositivos de
alta potencia, como focos, motores, sistemas de calefacción, entre otros.- Electrical
Engineering Stack Exchange, los relés ofrecen una solución robusta y confiable para el
control de cargas eléctricas de alta potencia.

2
Ilustración 2. Modulo Rele Relay Relevador 8 Canales, Arduino, Pic, Robot.

ESP32: Microcontrolador con Conectividad Wi-Fi y Bluetooth.


El ESP32 es un microcontrolador de bajo consumo energético desarrollado por Espressif
Systems. Integra capacidades de conectividad Wi-Fi y Bluetooth, lo que lo hace ideal para
aplicaciones de IoT. El ESP32 puede actuar como un nodo central en sistemas de
automatización, permitiendo la comunicación con otros dispositivos y servicios en la red.-
IEEE, el ESP32 ha revolucionado la forma en que se diseñan sistemas de IoT, permitiendo la
creación de dispositivos inteligentes y conectados.

Ilustración 3. UNIT ELECTRONICS ESP32 38 Pines ESP WROOM 32.

3
Arduino: Plataforma de Desarrollo de Código Abierto.
Arduino es una plataforma de desarrollo de hardware de código abierto ampliamente utilizada
en proyectos de electrónica y robótica. Ofrece un entorno de desarrollo fácil de usar y una
amplia gama de placas y periféricos que simplifican la creación de proyectos complejos.
La integración entre Arduino y ESP32 amplía las capacidades de ambos sistemas,
permitiendo la creación de sistemas de control de iluminación altamente personalizables.-
Journal of Engineering Education, Arduino es una herramienta versátil que ha democratizado
el acceso a la electrónica y la programación).

Ilustración 4. Arduino.
Integración de Componentes: Relé, ESP32 y Arduino.
La integración de relés, ESP32 y Arduino permite crear sistemas de control de iluminación
flexibles y adaptativos. Los relés se utilizan para controlar la alimentación de los focos
eléctricos, mientras que el ESP32 y Arduino proporcionan la lógica de control y la interfaz de
usuario para interactuar con el sistema.- Robotics and Automation Letters, la combinación de
componentes electrónicos como relés, microcontroladores y sensores es fundamental para el
desarrollo de sistemas de automatización inteligentes ver ilustración 1.

Aplicaciones Prácticas y Consideraciones de Diseño.


El control de focos mediante relés, ESP32 y Arduino tiene numerosas aplicaciones prácticas
en entornos residenciales, comerciales e industriales. Desde la creación de sistemas de
iluminación inteligente que se adaptan automáticamente a las condiciones ambientales,
hasta la implementación de horarios programados para el encendido y apagado de focos, las
posibilidades son amplias.- Sustainable Energy Technologies and Assessments, la
automatización de sistemas de iluminación puede contribuir significativamente a la reducción
del consumo energético y la huella de carbono de los edificios.

En resumen, el control de focos eléctricos mediante relés, ESP32 y Arduino es una solución
versátil y eficiente para la creación de sistemas de iluminación inteligente y automatizados.
La combinación de estos componentes permite crear entornos más seguros, cómodos y
4
energéticamente eficientes, con aplicaciones potenciales en una amplia gama de campos y
sectores industriales.

DESARROLLO
Para realizar un control de focos mediante relé, ESP32 y Arduino utilizando Bluetooth,
necesitarás establecer una comunicación inalámbrica entre el ESP32 y un dispositivo
Bluetooth compatible, como un smartphone o una computadora. Aquí describimos las
conexiones y el proceso básico:

1. Conexión del Relé con los Focos:

 Los focos eléctricos se conectan al relé de la misma manera que en una configuración
estándar. La corriente que alimenta los focos pasa a través del relé.
 Cuando el relé se activa, permite que la corriente fluya a los focos, encendiéndolos.
Cuando el relé se desactiva, interrumpe el flujo de corriente y los focos se apagan.

Ilustración 5. Conexión del Relé con los Focos.


2. Conexión del Relé con Arduino:

 La conexión del relé con Arduino es similar a la configuración estándar. Conecta el


relé a los pines de salida digital de Arduino.
 Utiliza un pin de salida digital de Arduino para controlar el relé, de manera que puedas
encender y apagar los focos conectados al relé.

5
Ilustración 6. Conexión del Relé con Arduino.

3. Conexión del ESP32 con Arduino:

 Conecta el ESP32 y Arduino a través de una comunicación serial (UART), utilizando


los pines RX (recepción) y TX (transmisión).
 La comunicación serial permite que el ESP32 envíe comandos a Arduino para
controlar el estado del relé y, por lo tanto, los focos.
 Configura el ESP32 para establecer una conexión Bluetooth con el dispositivo remoto
(por ejemplo, un smartphone) a través del módulo Bluetooth.

Ilustración 7. Conexión del ESP32 con Arduino.


4. Control de los Focos mediante Bluetooth:

 Una vez que el ESP32 está conectado al dispositivo remoto a través de Bluetooth,
puedes enviar comandos desde el dispositivo al ESP32 para controlar los focos.
 Implementa un protocolo de comunicación simple entre el dispositivo Bluetooth y el
ESP32 para interpretar los comandos de encendido y apagado de los focos.
 El ESP32 procesa estos comandos y envía las instrucciones correspondientes a
Arduino a través de la comunicación serial para controlar el estado del relé y, por
ende, los focos.

6
 En resumen, configurar un control de focos mediante relé, ESP32 y Arduino utilizando
Bluetooth implica establecer la comunicación inalámbrica entre el ESP32 y un
dispositivo remoto compatible mediante Bluetooth, y luego utilizar esta conexión para
enviar comandos de control de los focos al ESP32, que a su vez los ejecuta enviando
señales al relé a través de Arduino.

Ilustración 8. Control de los Focos mediante Bluetooth.

5. Código de programación en Arduino:

Este código es un programa para un dispositivo ESP32 que utiliza Bluetooth para controlar el
estado de varios LED mediante señales enviadas desde un dispositivo Bluetooth, como un
teléfono móvil. Aquí hay una descripción de las partes principales del código:

1.- Librería BluetoothSerial: Esta librería permite la comunicación Bluetooth serial en el ESP32.

#include <BluetoothSerial.h>

2.- Declaración de objetos y variables: Se definen objetos de entrada para la comunicación


Bluetooth y se inicializan algunas variables para controlar el estado de los botones y los LED.

BluetoothSerial SerialBT;
int buttonState = LOW;
int buttonState1 = LOW;
int buttonState2 = LOW;
int buttonState3 = LOW;

3.- Definición de pines y constantes: Se definen los pines utilizados para conectar los botones
y los LED.
const int button1 = 5;
const int LED_AZUL = 4;
const int button2 = 15;
const int LED_ROJO = 2;
const int button3 = 19;
const int LED_NARANJA = 21;
const int button4 = 22;
const int LED_VERDE = 23;
7
4.- Función de recepción de datos Bluetooth: Esta función se encarga de recibir los datos
enviados a través de la conexión Bluetooth y controlar los LED en función de los datos
recibidos. La función char es una abreviatura de "character" (carácter) y se utiliza para
representar un solo carácter, como una letra, un número o un símbolo. El tipo char se usa
comúnmente para almacenar caracteres individuales en la memoria de un programa. En C y
C++, los caracteres se representan como valores numéricos que corresponden a los códigos
ASCII o Unicode de esos caracteres.

void receiveData() {
if (SerialBT.available()) {
char data = SerialBT.read();

5.- de acuerdo a lo que se recibe vía Bluetooth se guarda en la función char y de acuerdo a lo
que se almacene en la data se inicializa una secuencia if() para determinar que código se
ejecutara de acuerdo si recibe un 1,0,A,B,C,D,E,F,G,H.

if (data == '1') {
digitalWrite(LED_AZUL, HIGH);
} else if (data == '0') {
digitalWrite(LED_AZUL, LOW);
}
if (data == 'A') {
digitalWrite(LED_ROJO, HIGH);
} else if (data == 'B') {
digitalWrite(LED_ROJO, LOW);
}
if (data == 'C') {
digitalWrite(LED_NARANJA, HIGH);
} else if (data == 'D') {
digitalWrite(LED_NARANJA, LOW);
}
if (data == 'E') {
digitalWrite(LED_VERDE, HIGH);
} else if (data == 'F') {
digitalWrite(LED_VERDE, LOW);
}

8
6.- Configuración del Bluetooth: Esta función inicializa la comunicación Bluetooth. Llamando
como tal a la señal “ESP32” y inicializamos un siclo while. La línea de código "while (!SerialBT);"
es una estructura de control en un lenguaje de programación que espera hasta que se cumpla
una condición antes de continuar con la ejecución del programa. La expresión "!" denota
negación, por lo que "!SerialBT" probablemente significa "no SerialBT", es decir, la conexión
Bluetooth no está disponible o no está lista para ser utilizada. El ciclo "while" hace que el
programa espere hasta que la conexión esté lista antes de continuar con el resto del código.
Una vez que la condición se cumple (es decir, cuando SerialBT está listo), el ciclo termina y el
programa avanza.

void setupBluetooth() {
SerialBT.begin("ESP32");
while (!SerialBT);

7.- Configuración inicial: En la función setup(), se establecen los modos de los pines y se
inicializa la comunicación Bluetooth por cada LED determinado anterior mente.
- pinMode(LED_AZUL, OUTPUT);: Esta línea configura el pin denominado LED_AZUL como
una salida, lo que significa que se utilizará para enviar señales de salida.
-pinMode(button1, INPUT_PULLUP);: Esta línea configura el pin denominado button1 como
una entrada, con una resistencia de pull-up interna activada. Esto significa que, por defecto, el
pin estará en alto (HIGH) a menos que se conecte a tierra (LOW) a través de un botón u otro
dispositivo.
-digitalWrite(LED_AZUL, LOW);: Esta línea establece el pin LED_AZUL en LOW, lo que
normalmente apaga un LED conectado a ese pin.
-setupBluetooth();: Esta línea llama a una función llamada setupBluetooth() que
probablemente esté configurando la funcionalidad Bluetooth para el dispositivo. Sin ver el
código de esa función, no puedo ofrecer más detalles sobre lo que hace exactamente.

void setup() {
pinMode(LED_AZUL, OUTPUT);
pinMode(button1, INPUT_PULLUP);

digitalWrite(LED_AZUL, LOW);

setupBluetooth();

9
8.- BUCLE PRINCIPAL: En el bucle principal (loop()), se llama a la función receiveData() para
recibir y procesar los datos Bluetooth, y se controla el estado de los botones para cambiar el
estado de los LED correspondientes.

void loop() {
receiveData();

9.- Dentro del void loop(): Se establece una linia de código que lee el estado del botón que
está conectado al pin button1 y guarda ese estado en la variable buttonState. La función
digitalRead(pin) devuelve HIGH si el pin está en un estado lógico alto (conectado a 5V o
VCC) y LOW si está en un estado lógico bajo (conectado a tierra o GND).

buttonState = digitalRead(button1);

10.- Una vez determinado o el estado del button1 se ejecuta un bloque de código verifica si
ha ocurrido un cambio en el estado del botón desde el último ciclo de ejecución. La condición
((buttonState == HIGH) && (est == LOW)) || ((buttonState == LOW) && (est == HIGH))
verifica si el botón ha sido pulsado o liberado. Si el botón está presionado (buttonState ==
HIGH) y el estado anterior del botón estaba en reposo (est == LOW), o si el botón está en
reposo (buttonState == LOW) y el estado anterior del botón estaba presionado (est ==
HIGH), entonces se ejecuta el bloque de código dentro del if.

Dentro del bloque if, se invierte el estado del LED azul usando digitalWrite(LED_AZUL,
!digitalRead(LED_AZUL)). Esto significa que, si el LED estaba encendido, se apaga, y viceversa.
Luego, el estado actual del botón (buttonState) se guarda en la variable est, para que, en la
próxima iteración del ciclo, se pueda comparar con el estado anterior del botón. Finalmente,
se introduce un pequeño retraso de 100 milisegundos usando delay(100). Esto es
comúnmente utilizado para evitar la detección múltiple de pulsaciones del botón debido a
rebotes mecánicos.

if (((buttonState == HIGH) && (est == LOW)) || ((buttonState == LOW) && (est ==


HIGH)))
{
digitalWrite(LED_AZUL, !digitalRead(LED_AZUL));
est = buttonState;
delay(100);
}

Y por cada led se detonada las mismas líneas de código, pero ya correspondiente con cada
led o lámpara que se quiere controlar por medio de estos códigos que verifica la señal del
bluetooth y el estado del apagador. En el código se le llamo a cada tipo de lámpara por un
color de led, ya que para ejecutar las pruebas correspondientes de el buen funcionamiento
del código antes de colócalo al prototipo final.
10
Ilustración 9. Diagrama de Flujo.

11
RESULTADOS

Ilustración 10. Evidencia de programación en el Software.

Ilustración 11. Conexiones.

Ilustración 12. Evidencia

12
CONCLUSIÓN
Hemos visto cómo utilizar un relé y el ESP32 con Arduino para poder dotar a una lámpara
de inteligencia. Entiéndase por inteligencia que sea capaz de encenderse o apagarse de
forma automática.

Lo más importante a la hora de utilizar un relé con Arduino es trabajar con seguridad.
Siempre debemos extremar las precauciones ya que trabajar con la red eléctrica puede ser
mortal.

 Un relé con Arduino puede funcionar normalmente abierto o normalmente cerrado que
son alimentados a 5v o 12v.
 Hay varios módulos que sirven para trabajar con un relé con Arduino. Simples, dobles,
de 8 o shield.
 Identifica correctamente la fase y el neutro de tu red eléctrica.
 Cuando utilices un relé con ESP32 conecta siempre la fase al común (C) y el
dispositivo al NC o NO.

13
REFERENCIAS

[1] F. V. JORGE y G. C. ALFONSO, Iluminación con tecnología led. Editorial Paraninfo, 2012.

[2] «¿Qué es Arduino? | Arduino.cl - Compra tu Arduino en Línea». https://arduino.cl/que-es-


arduino/ (accedido oct. 06, 2021).

[3] «NodeMCU v2 ESP8266 WiFi», Naylamp Mechatronics - Perú.


https://naylampmechatronics.com/espressif-esp/153-nodemcu-v2-esp8266-wifi.html
(accedido oct. 07, 2021).

[4] «Significado de Interfaz», Significados. https://www.significados.com/interfaz/ (accedido


oct. 07, 2021).

[5] «Android: qué es, versiones, aplicaciones y cómo saber la versión instalada», ADSLZone.
https://www.adslzone.net/reportajes/software/que-es-android/ (accedido oct. 09, 2021).

14

También podría gustarte