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

Luz inteligente animada con Alexa y Arduino

Componentes y suministros

Arduino UNO
Arduino Nano también se puede utilizar. Arduino Mega puede ser útil para impulsar más píxeles LED.
× 1
Raspberry Pi 3 Modelo B
× 1
Tira de NeoPixel
Se puede utilizar cualquier tira de LED WS8212.
× 1

Aplicaciones y servicios en línea

Arduino IDE
Amazon Web Services AWS Lambda
Kit de habilidades de Alexa de Amazon Alexa
Amazon Web Services AWS IoT

Acerca de este proyecto

Por qué Light Strip

Siempre me fascinaron las tiras de LED RGB direccionables. Los infinitos efectos de color y las capacidades de animación siempre han atrapado mi creatividad, así que hace unos años decidí desarrollar una biblioteca para las placas Arduino llamada ALA (Arduino Light Animations). Alexa ahora me da la posibilidad de controlar la iluminación y los efectos de la habitación con mi voz, ¡y eso es genial!

Descripción general del proyecto

Existen los componentes necesarios para este proyecto.

  • Amazon Alexa: Una habilidad personalizada de Alexa (Light Strip) define el modelo de interacción de voz y traduce los comandos (intenciones) que se envían a la función Lambda.
  • Amazon Lambda :Una secuencia de comandos de Python que recibe mensajes de Alexa y envía actualizaciones al servicio de IoT.
  • Amazon IoT :El servicio de IoT almacena una 'sombra de cosa' que es una representación del estado de la tira RGB. Cada vez que se actualiza la sombra, se notifica a los clientes MQTT suscritos (Raspberry PI).
  • Raspberry PI :Esta pequeña PC ejecuta un cliente MQTT para recibir mensajes del servicio Amazon IoT. En el otro lado, encenderá y enviará comandos a la placa Arduino a través del puerto USB.
  • Arduino :Este agradable microcontrolador ejecutará la biblioteca ALA para controlar la tira de LED que recibe los comandos de la Raspberry PI a través del puerto serie USB. Puede utilizar la placa Arduino Uno, Nano o Mega.
  • WS8212 Tira de LED RGB :Son tiras de LED direccionables, por lo que cada LED se puede controlar de forma individual. Esto permite animaciones de luz hermosas y coloridas.

Nada en el proyecto es muy desafiante, pero hay muchas piezas interconectadas. Le sugiero que siga la estructura sugerida para construir su proyecto sobre una base sólida antes de pasar al siguiente paso. Para hacer las cosas lo más simples posible, he dividido el proyecto en dos subproyectos.

La primera parte del proyecto se describe en mi proyecto de animaciones LED controladas por la web con Raspberry Pi y Arduino Hackster.io y lo guiará a través de los pasos necesarios para conectar la Raspberry PI, la placa Arduino y la tira de LED WS8212. Al final de esta fase, podrá controlar las animaciones LED desde un teléfono inteligente o una PC utilizando el navegador web.

La segunda parte del proyecto descrito aquí agregará control de voz a la implementación anterior usando Amazon Alexa. Hay varios pasos que deben ejecutarse para configurar correctamente toda la cadena, así que tenga paciencia y siga las instrucciones cuidadosamente ..

Amazon IoT

¿Ha completado la parte de hardware? ¡Ahora es el momento de ir a la nube! Usaremos la plataforma AWS IoT para administrar nuestra 'cosa' desde Internet.

Usaremos una "Sombra de dispositivo", que es una copia del estado de una cosa, junto con los cambios deseados. La Raspberry PI se suscribirá a una fuente de notificación que publica los cambios ("delta") de esta Sombra. Consulte este enlace para obtener más información sobre las API y la plataforma AWS IoT.

Crea una cosa de IoT

Inicie sesión en la consola de AWS. Si aún no lo ha hecho, deberá crear una cuenta gratuita.

Asegúrese de haber iniciado sesión en US East (N. Virginia) o UE (Irlanda) zona en la esquina superior derecha.

Busque "IoT" y seleccione AWS IoT Servicio. Haga clic en Comenzar botón (si lo hay) para cerrar el tutorial de introducción.

Primero debemos crear una política de seguridad para nuestra "cosa". Vaya a Seguras> Políticas y luego haga clic en Crear una política e ingrese la siguiente información:

  • Nombre:LightStripPolicy
  • Acción:*
  • Recurso:*
  • Efecto - Permitir:marcado
  • Haga clic en "Crear"

Ahora podemos crear el IoT Cosa .

  • Seleccione Administrar > Cosas y cree una nueva cosa de AWS IoT haciendo clic en Registrar una cosa botón (o Crear en la esquina superior derecha) y luego en Crear una sola cosa .
  • Escriba "LS01" en el campo Nombre. Deje los valores predeterminados para otros campos y haga clic en Siguiente .
  • Haga clic en Crear certificado en el botón Creación de certificado con un clic sección.
  • Descargue los 3 certificados para su dispositivo y la CA raíz. Para la CA raíz, es posible que deba hacer clic con el botón derecho y luego guardarlo.
  • Después de haber descargado los certificados, haga clic en el botón Activar botón.
  • Haga clic en Adjuntar una política y seleccione LightStripPolicy que ha creado antes y luego haga clic en Registrar cosa .

Antes de continuar, debe anotar el punto final de AWS IoT. Haga clic en Configuración en la esquina inferior izquierda de la página web de AWS IoT, ábralo y tome nota de Endpoint.

Configura Raspberry PI para escuchar el 'Thing'

Primero debemos instalar el AWS IoT Device SDK para Python con el siguiente comando en la línea de comandos de Raspberry PI:

  sudo pip3 install AWSIoTPythonSDK  

Ahora descargue el repositorio LightStrip de GitHub y descomprímalo.

  mkdircd / home / pi / LightStripwget https://github.com/bportaluri/LightStrip/archive/master.zipunzip master.zip  

Copie los cuatro certificados que descargó cuando creó IoT Thing en / home / pi / LightStrip / LightStrip-master / pi carpeta.

Edite lightstripcfg.py texto. Puede utilizar cualquier editor de texto. Estos son los comandos para nano editor.

  cd / home / pi / LightStrip / LightStrip-master / pinano lightstripcfg.py  

Ahora edite la configuración para que coincida con su configuración.

  • AWSIOT:ingrese el AWS IoT Endpoint que anotó anteriormente.
  • ROOT_CA:nombre de archivo del certificado de CA raíz
  • CERTIFICADO:nombre de archivo del certificado
  • PRIVATE_KEY:nombre de archivo de la clave privada
  • DEVICE_NAME:déjelo sin cambios a "LS01"

Cierre el editor nano y guarde el archivo presionando 'Ctrl + X' y luego 'Y'.

Inicie el script lightstrip.py de la siguiente manera.

  sudo python3 lightstrip.py  

La secuencia de comandos enumerará los puertos USB conectados. El Arduino debe estar conectado a / dev / ttyACM0, así que ejecute el script pasando el puerto de esta manera.

  sudo python3 lightstrip.py / dev / ttyACM0  

El cliente de prueba se conectará al servicio Amazon Thing Shadow y se suscribirá a los cambios de LS01 dispositivo de sombra. Tras una conexión exitosa, la secuencia de comandos del cliente actualizará su estado a la sombra del dispositivo LS01 y recibirá un mensaje de confirmación como este.

Para verificar que todo funciona correctamente, vuelva a la consola de AWS IoT y seleccione Administrar> Cosas luego abra el LS01 dispositivo. Seleccione la Sombra menú y verá el estado de la sombra del dispositivo.

Haga clic en Editar enlace en la sección de documento de sombra y pegue el siguiente documento JSON en el cuadro de estado de sombra.

  {"deseado":{"animación":"101"}}  

Esto es lo que debería ver.

Al hacer clic en el enlace Guardar, se enviará un mensaje "delta" al cliente MQTT en la Raspberry PI que encenderá la tira de led.

El siguiente documento JSON cambiará el color a azul.

  {"deseado":{"color":"0066CC"}}  

En este punto, podemos controlar nuestra tira de LED desde el servicio ASW IoT, por lo que debería estar orgulloso de usted.

Función AWS Lambda

AWS Lambda permite ejecutar código en la nube sin aprovisionar ni administrar servidores. Es el puente perfecto entre el kit de habilidades de Alexa que permitirá el control por voz en el último paso de este proyecto.

Inicie sesión en la consola de AWS. En la lista de servicios, seleccione Lambda .

Asegúrese de haber iniciado sesión en la misma región que utilizó en el paso anterior: US East (N. Virginia) o UE (Irlanda) zona en la esquina superior derecha.

Haga clic en Crear función botón. Haga clic en Autor desde cero y configure de la siguiente manera:

  • Nombre =LightStrip
  • Tiempo de ejecución =Python 3.6
  • Rol =Crear un rol personalizado. Esto abrirá una nueva pestaña. Simplemente haga clic en el botón "Permitir" para crear un nuevo rol llamado lambda_basic_execution.
  • Función existente:lambda_basic_execution
  • Haga clic en Crear función . botón

Tome nota del ID de ARN de Lambda en la esquina superior derecha.

Haga clic en LightStrip cuadro para abrir la sección de código de función.

Tipo de entrada de código:editar código en línea

  • Tiempo de ejecución:Python 3.6
  • Controlador:lambda_function.lambda_handler

La lambda_function.py El script ya debería estar definido. Pegue el código de LightStrip \ lambda \ lambda_function.py archivo en el editor de código.

Cree otro archivo llamado ala_controller.py y pegue el código de LightStrip \ lambda \ ala_controller.py archivo en el editor de código.

Así es como debería verse todo.

Cuando haya terminado, haga clic en el Guardar naranja en la esquina superior derecha.

Habilidad de Alexa

Ahora podemos crear la habilidad personalizada Light Strip para Alexa.

Vaya a la Consola para desarrolladores de Amazon e inicie sesión según sea necesario. Es posible que primero deba registrar su cuenta.

Vaya a Alexa> Kit de habilidades de Alexa (Comenzar) .

Haga clic en Agregar una nueva habilidad en la esquina superior derecha e ingrese los siguientes datos en la Información de habilidades pestaña:

  • Tipo de habilidad:modelo de interacción personalizado
  • Idioma:inglés (EE. UU.)
  • Nombre:LightStrip
  • Nombre de invocación:tira de luz
  • Haga clic en Guardar

Esto crea la habilidad. Anote el ID de habilidad.

Seleccione el Modelo de interacción y luego haga clic en Iniciar Skill Builder botón.

Haga clic en el Editor de código y pegue el contenido de LightStrip / alexaskill / lightstrip_skill.json archivo en el cuadro de texto.

Haga clic en Guardar modelo y modelo de construcción botones. La construcción del modelo llevará unos minutos, así que tenga paciencia. Haga clic en Información de habilidades para volver a la página de configuración de habilidades.

Ahora haga clic en Configuración menú.

En Service Endpoint Type, seleccione AWS Lambda ARN y luego pegue el ARN de la función Lambda que anotó anteriormente.

Deje todos los valores predeterminados y haga clic en Guardar boton de abajo.

Conecte la habilidad de Alexa a la función Lambda

Regrese a su función Lambda. En el lado derecho hay una lista de disparadores predefinidos. Seleccione Kit de habilidades de Alexa y se agregará a su función.

Configure de la siguiente manera:

  • ID de la aplicación =el ID de la habilidad que anotó anteriormente
  • Haga clic en Agregar
  • Haga clic en Guardar

Listo

El proyecto ahora está completo. Pruebe los siguientes comandos de voz:

  • Tira de luz abierta
  • Encienda
  • Establecer el brillo al 20 por ciento
  • Establecer el brillo al 50 por ciento
  • Establecer el color en rojo
  • Establecer el color en turquesa
  • Desactivar
  • Ejecute una animación emocionante
  • Ejecute una animación relajante

La habilidad LightStrip también permite interacciones de voz más avanzadas

  • Yo:Alexa, abre Light Strip
  • Alexa:Bienvenido a LightStrip:la tira de LED brillará con una luz azul
  • Yo:lanzar una animación
  • Alexa:¿Quieres una animación relajante o emocionante?
  • Yo:relajante
  • Alexa:OK, la tira de LED mostrará una animación aleatoria
  • Yo:siguiente animación
  • Alexa:OK - Se mostrará otra animación aleatoria

Para comprender mejor el modelo de interacción, aquí está el diagrama VUI completo de la habilidad.

Mejoras y refinamientos

Iniciar automáticamente AlaWeb al arrancar

Una pequeña mejora del proyecto es iniciar automáticamente el script lightstrip.py al arrancar, por lo que no es necesario iniciarlo manualmente cada vez que enciende la Raspberry PI o algo sale mal y debe reiniciar. Siga estas instrucciones.

Agregar y ajustar animaciones

La habilidad de Light Strip ya tiene 20 variaciones de animación definidas. Sin embargo, la biblioteca ALA permite configurar fácilmente sus propias animaciones eligiendo el preajuste de animación, la paleta de colores y la velocidad. Puede agregar sus propias animaciones o modificar las existentes en el script ala_controller.py. Alrededor de la línea 80 verá una lista de configuraciones de animaciones que puede modificar o mejorar según sus gustos.

Código

LightStrip
Todo el código que necesita para este proyectohttps://github.com/bportaluri/LightStrip

Esquemas


Proceso de manufactura

  1. Panel LCD con Arduino para Flight Simulator
  2. Panel de interruptores / LED con Arduino para FS2020
  3. ¡Arduino con Bluetooth para controlar un LED!
  4. Zapatos inteligentes (autoajuste y generación de electricidad)
  5. Arduino Cuadrúpedo
  6. Control del servomotor con Arduino y MPU6050
  7. Control del brillo del LED usando Bolt y Arduino
  8. Módulo GPS u-blox LEA-6H 02 con Arduino y Python
  9. Brazo robótico simple e inteligente con Arduino
  10. Reconocimiento y síntesis de voz con Arduino
  11. Controlar una matriz de LED con Arduino Uno