Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino

Componentes y materiales

ComponenteCantidadNotas
Arduino UNO1También sirve Arduino Nano. Arduino Mega permite controlar más píxeles LED.
Raspberry Pi 3 Model B1Actúa como puente MQTT entre AWS IoT y Arduino.
Tira NeoPixel (WS2812)1Cualquier tira LED WS2812 direccionable funciona.

Aplicaciones y servicios online

Descripción del proyecto

Este proyecto permite controlar una tira LED RGB direccionable mediante comandos de voz a Alexa. La arquitectura combina hardware local (Arduino + Raspberry Pi) con servicios en la nube de AWS para lograr un control remoto seguro y escalable.

¿Por qué una tira LED?

Las tiras LED direccionables (WS2812) permiten controlar cada LED individualmente, creando infinitos efectos de color y animaciones. Hace años desarrollé la librería ALA (Arduino Light Animations) para facilitar su uso en placas Arduino. Ahora, Alexa añade control por voz, llevando la experiencia a otro nivel.

Visión general de la arquitectura

El sistema consta de seis bloques interconectados:

  1. Amazon Alexa: Una Skill personalizada ("Light Strip") traduce comandos de voz en "intents" que envía a la función Lambda.
  2. AWS Lambda: Script Python que recibe los mensajes de Alexa y actualiza el "shadow" en AWS IoT.
  3. AWS IoT: Almacena el device shadow (representación JSON del estado de la tira). Cuando el shadow cambia, notifica vía MQTT a los clientes suscritos (Raspberry Pi).
  4. Raspberry Pi: Ejecuta un cliente MQTT que recibe actualizaciones del shadow y envía comandos serie al Arduino por USB.
  5. Arduino: Ejecuta la librería ALA para animar la tira LED según los comandos recibidos por puerto serie. Compatible con Uno, Nano o Mega.
  6. Tira LED WS2812: LEDs direccionables individualmente para animaciones fluidas y coloridas.
Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino
Arquitectura completa: Alexa → Lambda → AWS IoT → Raspberry Pi → Arduino → Tira LED

El proyecto se divide en dos fases para simplificar:

Fase 1: Control web (base del hardware)

Consulta mi proyecto "Web-Controlled LED Animations with Raspberry Pi and Arduino" en Hackster.io. Esta fase cubre el cableado de la Raspberry Pi, Arduino y la tira WS2812. Al finalizar, podrás controlar animaciones desde un navegador web en tu móvil o PC.

Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino
Conexiones hardware: Raspberry Pi → Arduino (USB) → Tira WS2812

Fase 2: Control por voz con Alexa (esta guía)

Añade la capa de voz usando servicios AWS. Requiere paciencia y seguir los pasos con cuidado.

Configuración de AWS IoT

Una vez completado el hardware, pasamos a la nube. Usaremos Device Shadows de AWS IoT: una copia JSON del estado del dispositivo que sincroniza estado "deseado" y "reportado". La Raspberry Pi se suscribe a los cambios ("delta") del shadow.

Crear un "Thing" en AWS IoT

  1. Inicia sesión en AWS Console (crea cuenta gratuita si no tienes).
  2. Selecciona región US East (N. Virginia) o EU (Ireland) (arriba a la derecha).
  3. Busca "IoT" y abre AWS IoT Core. Cierra el tutorial inicial si aparece.

Política de seguridad

Registrar el Thing

Endpoint de AWS IoT

En el menú Settings (esquina inferior izquierda), anota el Endpoint (ej: xxxxxxxxxx.iot.us-east-1.amazonaws.com). Lo necesitarás en la Raspberry Pi.

Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino

Configurar Raspberry Pi para escuchar al Thing

  1. Instala el SDK Python:
    sudo pip3 install AWSIoTPythonSDK
  2. Descarga el repositorio LightStrip:
    mkdir -p /home/pi/LightStrip
    cd /home/pi/LightStrip
    wget https://github.com/bportaluri/LightStrip/archive/master.zip
    unzip master.zip
  3. Copia los 4 certificados descargados a /home/pi/LightStrip/LightStrip-master/pi.
  4. Edita lightstripcfg.py:
    cd /home/pi/LightStrip/LightStrip-master/pi
    nano lightstripcfg.py
    Ajusta:
    • AWSIOT: Tu endpoint anotado.
    • ROOT_CA: Nombre del archivo Root CA.
    • CERTIFICATE: Nombre del certificado del dispositivo.
    • PRIVATE_KEY: Nombre de la clave privada.
    • DEVICE_NAME: Déjalo como LS01.
    Guarda con Ctrl+X, Y, Enter.
  5. Ejecuta el script:
    sudo python3 lightstrip.py /dev/ttyACM0
    (El Arduino suele aparecer en /dev/ttyACM0; el script lista puertos disponibles).

Verás mensajes de conexión y suscripción al shadow LS01.

Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino

Prueba desde la consola AWS IoT

  1. Ve a Manage → Things → LS01 → pestaña Shadow.
  2. Clic en Edit en "Shadow Document" y pega:
    { "desired": { "animation": "101" } }
  3. Guarda. Se enviará un mensaje "delta" a la Raspberry Pi y la tira se encenderá con la animación 101.

Para cambiar color a azul:

{ "desired": { "color": "0066CC" } }

Función AWS Lambda

Lambda ejecuta código sin servidores. Sirve de puente entre Alexa Skills Kit y AWS IoT.

  1. En AWS Console, busca Lambda (misma región que IoT).
  2. Create Function → Author from scratch:
    • Nombre: LightStrip
    • Runtime: Python 3.6 (o superior compatible)
    • Rol: Create a Custom Role → se abre pestaña → Allow → rol lambda_basic_execution.
    • Crear función.
  3. Anota el ARN de la función (esquina superior derecha).
Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino
  1. Clic en el box LightStrip → sección Function code:
    • Code entry type: Edit code inline
    • Runtime: Python 3.6
    • Handler: lambda_function.lambda_handler
  2. Pega el contenido de LightStrip\lambda\lambda_function.py en el editor.
  3. Crea archivo ala_controller.py y pega el contenido de LightStrip\lambda\ala_controller.py.
  4. Save (botón naranja arriba a la derecha).
Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino

Crear la Alexa Skill

  1. Ve a Amazon Developer Console → Alexa → Alexa Skills Kit → Get Started.
  2. Add a New Skill → pestaña Skill Information:
    • Skill Type: Custom Interaction Model
    • Language: English (U.S.)
    • Name: LightStrip
    • Invocation Name: light strip
    • Save.
  3. Anota el Skill ID.
Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino
  1. Menú Interaction Model → Launch Skill Builder → Code Editor → Pega el contenido de LightStrip/alexaskill/lightstrip_skill.json.
  2. Save Model → Build Model (tarda unos minutos).
  3. Vuelve a Skill Information → menú Configuration:
    • Service Endpoint Type: AWS Lambda ARN
    • Pega el Lambda ARN anotado.
    • Save.

Conectar Alexa Skill con Lambda

  1. Vuelve a tu función Lambda en AWS Console.
  2. En "Add triggers" (derecha), selecciona Alexa Skills Kit.
  3. Configura:
    • Application Id = Skill ID anotado.
    • Add → Save.
Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino

¡Listo! Prueba estos comandos de voz

  • "Alexa, abre Light Strip"
  • "Enciende"
  • "Pon brillo al 20 por ciento"
  • "Pon brillo al 50 por ciento"
  • "Pon color rojo"
  • "Pon color turquesa"
  • "Apaga"
  • "Ejecuta una animación emocionante"
  • "Ejecuta una animación relajante"

Interacciones avanzadas

Tú:     Alexa, abre Light Strip
Alexa:  Bienvenido a LightStrip - La tira brillará en azul
Tú:     Lanza una animación
Alexa:  ¿Quieres una animación relajante o emocionante?
Tú:     Relajante
Alexa:  OK - La tira muestra una animación aleatoria
Tú:     Siguiente animación
Alexa:  OK - Otra animación aleatoria
Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino
Diagrama completo de interacción de voz (VUI)

Mejoras y ajustes

Arranque automático al encender

Para que lightstrip.py inicie solo al boot de la Raspberry Pi, añade una entrada en /etc/rc.local o crea un servicio systemd. Así no tendrás que lanzarlo manualmente tras cada reinicio.

Añadir y ajustar animaciones

La Skill incluye 20 variaciones de animación. La librería ALA permite crear las tuyas eligiendo preset, paleta y velocidad. Edita ala_controller.py (alrededor de la línea 80) para modificar o añadir animaciones a tu gusto.

Código completo

Todo el código del proyecto: GitHub - bportaluri/LightStrip

Esquemáticos

Crea una Tira LED Inteligente Animada Controlada por Alexa con Arduino

Proceso de manufactura

  1. Panel de control para Flight Simulator 2020 con Arduino Nano: Pantallas LCD y CDI
  2. Panel de interruptores y LEDs para Microsoft Flight Simulator 2020 con Arduino
  3. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  4. Zapatillas Inteligentes Autoajustables con Cosecha de Energía Integrada
  5. Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
  6. Control Preciso de Servo con Arduino y MPU6050 (SG90 / MG996R)
  7. Control de brillo LED sin interrupciones con Bolt IoT y Arduino UNO
  8. Módulo GPS u-blox LEA‑6H 02: Guía de integración con Arduino y Python
  9. Brazo Robótico Inteligente Controlado por Arduino: Tutorial DIY Fácil
  10. Dominando reconocimiento y síntesis de voz en Arduino Due
  11. Control de Matriz LED 8×8 con Arduino Uno: Guía Paso a Paso