Encuentra tu pasión a solo 4,17 US$/mes | Aprende Robótica, IA e IOT.

Automatiza tu hogar: Conecta ESP32 con Alexa y Arduino en Minutos

Conecta ESP32 con Alexa y Arduino para controlar dispositivos mediante comandos de voz y automatizar tu hogar sin servidores.

Tabla de contenidos

Introducción

En este tutorial, aprenderás a conectar ESP32 con Alexa de forma nativa con Arduino IDE. Sigue los pasos y transforma tu hogar en un espacio inteligente en minutos. ¡Vamos allá!

Lista de Materiales

Para construir nuestro sistema de control por voz con ESP32, Alexa y relés necesitarás estos componentes.

Cantidad Material Función
1 ESP32 DevKit (modelo de 30 pines) Microcontrolador principal que se comunica con Alexa y controla los relés
1 Módulo relé de un canal Permite controlar un dispositivo eléctrico de alto voltaje (110V/220V) de forma segura
1 Dispositivo Amazon Echo (Alexa) Recibe comandos de voz y los comunica con el ESP32
2 Protoboards medianos Base para realizar las conexiones entre los componentes
3 Cables Dupont (macho-macho) Conexiones entre el ESP32 y el módulo de relé
1 Cable micro USB Alimentación del ESP32 y carga del programa
1 Cable con enchufe Para conectar el módulo relé de un canal a la red eléctrica y controlar dispositivos
1 Computadora con Arduino IDE Para programar el ESP32 y cargar el código necesario
1 Router WiFi con internet Para la comunicación entre Alexa, ESP32 y la nube
1 Bombilla de 110V Dispositivo de prueba que será controlado por el relé mediante comandos de voz de Alexa
1 Boquilla de Porcelana con Cable Para montar y conectar la bombilla al sistema de control

Paso 1: Prepara los protoboards
Coloca los dos protoboards medianos uno junto al otro para tener un área de trabajo amplia.

Paso 2: Posiciona el ESP32
Ubica la placa ESP32 de 30 pines centrada entre ambos protoboards para facilitar el acceso a todos los pines.

Paso 3: Conexiones del módulo relé al ESP32

  • Conecta el pin DC+ del módulo relé al pin VIN del ESP32 (5V) con un cable Dupont macho-macho
  • Conecta el pin DC- del módulo relé al pin GND del ESP32 con un cable Dupont macho-macho
  • Conecta el pin IN del módulo relé al pin GPIO 4 del ESP32 con un cable Dupont macho-macho

Paso 4: Conexiones del cable con enchufe

  • Pela aproximadamente 1 cm de cada extremo del cable con enchufe
  • Conecta el cable de fase (generalmente negro o marrón) al terminal COM (Común) del relé
  • Conecta el cable neutro (generalmente azul) al cable de la bombilla.
  • IMPORTANTE: Mantén el cable desenchufado durante la instalación

Paso 5: Conexiones de la boquilla de porcelana

  • Identifica los dos cables de la boquilla (pueden ser negro y blanco, o de otros colores según el fabricante)
  • Conecta uno de los cables de la boquilla (designado como «cable de fase») al terminal NO (Normalmente Abierto) del relé
  • Conecta el otro cable de la boquilla (designado como «cable neutro») al cable neutro del enchufe
  • Nota: Los colores de los cables de la boquilla pueden variar; lo importante es mantener la configuración correcta independientemente del color

Paso 6: Instala la bombilla
Enrosca la bombilla de 110V en la boquilla de porcelana.

Paso 7: Verificación de conexiones
Conexiones de bajo voltaje:

Diagrama de Conexiones

El proyecto requiere conectar correctamente el ESP32 con el módulo relé de un canal para controlar una bombilla de 110V mediante comandos de voz a través de Alexa. Sigue estos pasos para un montaje seguro.

Imagen desde Google Drive

Paso 1: Prepara los protoboards
Coloca los dos protoboards medianos uno junto al otro para tener un área de trabajo amplia.

Paso 2: Posiciona el ESP32
Ubica la placa ESP32 de 30 pines centrada entre ambos protoboards para facilitar el acceso a todos los pines.

Paso 3: Conexiones del módulo relé al ESP32

  • Conecta el pin DC+ del módulo relé al pin VIN del ESP32 (5V) con un cable Dupont macho-macho.
  • Conecta el pin DC- del módulo relé al pin GND del ESP32 con un cable Dupont macho-macho.
  • Conecta el pin IN del módulo relé al pin GPIO 4 del ESP32 con un cable Dupont macho-macho.

Paso 4: Conexiones del cable con enchufe

  • Pela aproximadamente 1 cm de cada extremo del cable con enchufe.
  • Conecta el cable de fase (generalmente negro o marrón) al terminal COM (Común) del relé.
  • Conecta el cable neutro (generalmente azul) al cable de la bombilla.
  • IMPORTANTE: Mantén el cable desenchufado durante la instalación.

Paso 5: Conexiones de la boquilla de porcelana

  • Identifica los dos cables de la boquilla (pueden ser negro y blanco, o de otros colores según el fabricante).
  • Conecta uno de los cables de la boquilla (designado como «cable de fase») al terminal NO. (Normalmente Abierto) del relé
  • Conecta el otro cable de la boquilla (designado como «cable neutro») al cable neutro del enchufe.
  • Nota: Los colores de los cables de la boquilla pueden variar; lo importante es mantener la configuración correcta independientemente del color.

Paso 6: Instala la bombilla
Enrosca la bombilla de 110V en la boquilla de porcelana.

Paso 7: Verificación de conexiones

Origen Conexión Destino
Conexiones de Bajo Voltaje
VIN (ESP32) DC+ (relé)
GND (ESP32) DC- (relé)
GPIO 4 (ESP32) IN (relé)
Conexiones de 110V
Fase del enchufe COM del relé
NO del relé Cable de fase de la boquilla
Neutro del enchufe Cable neutro de la boquilla

Paso 8: Asegura todas las conexiones:

  • Verifica que no haya cables sueltos o expuestos.
  • Utiliza cinta aislante para todas las conexiones de 110V.
  • Asegúrate de que los cables de bajo y alto voltaje estén bien separados.

Paso 9: Prueba inicial de seguridad:

  • Antes de programar el ESP32, haz una comprobación de continuidad si tienes un multímetro.
  • Verifica que no haya cortocircuitos en las conexiones.

Explicación del Código

El código permite controlar un relé mediante comandos de voz a través de Alexa. Se emula un dispositivo compatible con Alexa, permitiendo encender y apagar luces.

Librerías Necesarias

				
					#include <WiFi.h>
#include <Espalexa.h>
				
			

Instalación de librerías:

  • WiFi.h: Vienen incluidas con el soporte ESP32 para Arduino.
  • Espalexa.h: Ve a Herramientas → Administrar Bibliotecas, busca e instala Espalexa (by Christian Schwinne, versión 2.7.0).
Imagen desde Google Drive

Configuración WiFi y Definición de Pines​

				
					// Credenciales WiFi
const char* ssid = "XXX";         // Reemplaza con el nombre de tu red WiFi
const char* password = "XXX"; // Reemplaza con la contraseña de tu red WiFi
// Definir el pin de salida (puedes cambiarlo)
#define LED_PIN 4 

				
			
  • ssid y password: Cambia estos valores para que coincidan con tu red WiFi.
  • LED_PIN 4: El GPIO 4 está conectado al pin de activación (IN) del módulo relé, si deseas usar otro pin, cámbialo aquí.

Creación del objeto Espalexa

El siguiente código crea el objeto que permite que Alexa detecte la ESP32:

				
					// Crear el objeto Espalexa
Espalexa espalexa;

				
			

Función principal: Control del relé con Alexa

				
					// Función para controlar el dispositivo con Alexa
void controlAlexa(uint8_t brightness) {
    if (brightness) {
        digitalWrite(LED_PIN, HIGH);
        Serial.println("Encendido por Alexa");
    } else {
        digitalWrite(LED_PIN, LOW);
        Serial.println("Apagado por Alexa");
    }
} 

				
			
  • Si el comando es «Alexa, enciende Bombilla», el relé se activa.
  • Si el comando es «Alexa, apaga Bombilla», el relé se desactiva.

Configuración del WiFi y conexión

Este bloque de código conecta la ESP32 a la red WiFi:

				
					void setup() {
    Serial.begin(115200);
    pinMode(LED_PIN, OUTPUT);

    // Conectar a WiFi
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
    Serial.println("\nWiFi Conectado!");

				
			
  • Inicia la comunicación serie para ver el estado en el monitor serie.
  • Configura el pin 4 como salida.
  • Intenta conectarse a la red WiFi.
  • Si la conexión es exitosa, imprime «WiFi Conectado!».

Registro del dispositivo en Alexa

Aquí se registra la ESP32 como un dispositivo inteligente en Alexa:

				
					   // Agregar el dispositivo para que Alexa lo detecte
    espalexa.addDevice("Bombilla", controlAlexa);
    // Iniciar Espalexa
    espalexa.begin();

				
			
  • «Bombilla» → Es el nombre del dispositivo que Alexa reconocerá.
  • Si quieres cambiar el nombre, edítalo aquí (Ejemplo: «Ventilador», «Puerta»).
  • espalexa.begin(); inicia la comunicación con Alexa.

Bucle principal (loop)

Este bloque mantiene la comunicación con Alexa en todo momento:

				
					void loop() {
    // Mantener la conexión con Alexa
    espalexa.loop();
    delay(10);
}

				
			
  • Espalexa necesita ejecutarse constantemente para recibir comandos de Alexa.
  • Sin esta línea, Alexa no podría controlar el relé después de un tiempo.

Pruebas Experimentales

En esta guía, realizaremos las pruebas para verificar que la ESP32 y Alexa pueden encender y apagar la bombilla correctamente mediante comandos de voz.

Paso 1: Verifica las conexiones físicas
Asegúrate de que todos los componentes estén conectados correctamente antes de encender el sistema.

Paso 2: Prepara el entorno en Arduino IDE

  • Abre Arduino IDE en tu computadora.
  • Selecciona la placa ESP32 en:
    • Herramientas → Placa → ESP32 Dev Module.
  • Selecciona el puerto COM correcto en:
    • Herramientas → Puerto.

Paso 3: Personaliza el código

				
					const char* ssid = "XXX";   // Reemplaza con el nombre de tu red WiFi
const char* password = "XXX";  // Reemplaza con la contraseña de tu red WiFi
				
			
  • Si utilizaste otro pin para el relé, cámbialo aquí:
				
					#define LED_PIN 4  // Pin GPIO para activar el relé
				
			
  • Si quieres cambiar el nombre del dispositivo en Alexa, edita esta línea:
				
					  espalexa.addDevice("Bombilla", controlAlexa)
				
			

Paso 4: Carga el código a la ESP32
Una vez configurado, sube el código al microcontrolador:

  • Conecta la ESP32 a tu computadora mediante un cable USB.
  • Haz clic en «Verificar» (✓) para comprobar que no hay errores.
  • Si la compilación es exitosa, haz clic en «Subir» (→) para cargar el código.
  • Si la carga falla, presiona el botón «BOOT» de la ESP32 hasta que inicie la subida.

Paso 5: Monitoriza la conexión WiFi
Verifica que la ESP32 se conecte correctamente a la red.

  • Abre el Monitor Serie en Arduino IDE (icono de lupa ).
  • Configura la velocidad a 115200 baudios.
  • Si todo está bien, deberías ver mensajes como:
    arduino
    WiFi Conectado!
  • Si no se conecta, revisa las credenciales de la red WiFi.

Paso 6: Configurar Alexa para detectar la ESP32
Ahora haremos que Alexa reconozca la ESP32 como un dispositivo inteligente.

  • Abre la aplicación Alexa en tu teléfono.
  • Ve a Dispositivos → Agregar Dispositivo.
  • Selecciona «Otro» y luego «Buscar dispositivos».
  • Alexa detectará automáticamente «Bombilla».

Paso 7: Prueba el control por voz con Alexa

Ahora verifica que la bombilla encienda y apague correctamente.

  • «Alexa, enciende Bombilla» → La bombilla debe encenderse.
  • «Alexa, apaga Bombilla» → La bombilla debe apagarse.

¿Quieres Crear Tu Propio Dispositivo Compatible con Alexa?

No te conformes solo con leer la teoría. Da el siguiente paso y aprende a integrar tu ESP32 con Alexa para automatizar tu hogar. Todo explicado paso a paso en mi curso completo.

Descarga los Archivos de este Proyecto

Obtén todos los archivos necesarios para replicar este proyecto, incluyendo código, diagramas de conexión y recursos esenciales. ¡Descárgalos y ponlo en marcha!

Ingrese a su cuenta