Árbol de Navidad con tecnología Alexa
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Acerca de este proyecto
Aquí puede encontrar las fuentes de una habilidad personalizada de Alexa que controla un hilo de LED en un árbol de Navidad. Este repositorio contiene:
- Código Java para una función de AWS Lambda que es el punto final de la habilidad de Alexa
- Un boceto de Arduino que se encuentra entre AWS IoT y una cadena de LED WS2811. El boceto está optimizado para ejecutarse en un Arduino Yun.
La configuración del hardware
Si desea construir su propio árbol de Navidad controlado por Alexa con la ayuda de estas fuentes, necesita hardware específico. Este proyecto utilizó los siguientes componentes:
- 1 x Arduino Yun con Linino OS
- 2 x WS2811 LED filamentos con 50 LED cada uno
- 3 x cables de puente
- 1 x adaptador de fuente de alimentación y conector de CC de 2,1 mm x 5,5 mm
- 1 x cable Micro-USB a USB
- 1 x Amazon Echo o Amazon Dot o Amazon Tap
La solución de software
La siguiente imagen ilustra un viaje de ida y vuelta típico para manejar una solicitud de usuario de voz.
La solución aprovecha una serie de servicios en la nube de AWS para comunicarse con el backend de hardware:el árbol de Navidad. Lo único que realmente necesita configurar es la función Lambda, un bucket de S3 que contiene los archivos MP3 y un rol de IAM con permisos de AWS IoT y Dynamo. La tabla en Dynamo, así como la sombra de objetos en AWS IoT, se crearán en la primera invocación de habilidades sobre la marcha.
Comprenda lo que sucede en una solicitud de usuario de voz enviada a un dispositivo Alexa:
- El usuario habla con Alexa para "
abre el árbol de navidad
" . La magia de ASR y NLU ocurre en el servicio en la nube de Alexa. - Se proporciona una intención al código de habilidad alojado en AWS Lambda. Puede encontrar el código en este repositorio.
- Si el usuario solo desea una acción como "
enciende el árbol
" o "iniciar el programa
" sin darle a esta habilidad un color para el árbol, busca el último color establecido en Dynamo DB. Si hay un color dado, la habilidad conservará la información en la misma tabla. Así es como Alexa tiene en cuenta el último color establecido del árbol. En segundo lugar, la acción y el comando de color se escriben en una sombra de objeto en AWS IoT. - Si se actualiza la sombra, se expone un mensaje MQTT al tema delta de la cosa correspondiente. El Arduino Yun está suscrito a ese tema. Nota al margen :El nombre de la cosa que se crea mediante el código de habilidad es igual al ID de habilidad que ingresa (todos los puntos reemplazados por un guión). Esto podría ayudarlo si desea reconstruir el proyecto.
- El Arduino está sondeando sobre el tema Delta, por lo que recibe los comandos como un mensaje MQTT en formato JSON. Se extrae la información y el boceto de Arduino realiza una acción con la hebra LED de acuerdo a lo que se da en el mensaje (nuevo color, show navideño, encendido, apagado).
- Finalmente, Arduino envía un mensaje MQTT al tema de Actualización de AWS IoT para que el mundo sepa que se realizó la acción.
- El servicio de AWS IoT consume el mensaje y la información de estado contenida se escribe de nuevo en la sombra del objeto como un informado Expresar. También sería posible que la habilidad lea el último estado del árbol de la sombra de la cosa en lugar de buscarlo en Dynamo DB. La razón de este enfoque alternativo es que MQTT es asincrónico y no podemos confiar en Arduino para dar una respuesta inmediata.
- En realidad, este paso ocurre justo después del paso 3) ya que la habilidad se desacopla del back-end del hardware a propósito. Entonces, justo después de actualizar el objeto shadow en AWS IoT, el código de habilidad devuelve texto de voz de salida y, opcionalmente, un SSML etiqueta con contenido de audio. Los MP3 que forman parte de la reproducción de Alexa (sonidos navideños) se almacenan en un bucket de AWS S3.
- Alexa lee el texto devuelto por la habilidad y reproduce el audio en la respuesta.
Indicación de estado
Mientras Arduino hace su trabajo, le permite conocer su estado actual a través del primer LED en la hebra.
- una luz roja parpadeante única indica una falla en la configuración de la conexión de AWS IoT
- una luz roja parpadeante dos veces indica un intento fallido de conexión de AWS IoT
- una luz roja parpadeante tres veces indica una configuración de conexión de AWS IoT fallida
- una linterna verde indica una conexión exitosa a AWS IoT
- una linterna azul indica un sondeo constante sobre el tema de AWS IoT
- una linterna amarilla indica un error al sondear el tema de AWS IoT
Al iniciar, es posible que vea linternas rojas durante el período de tiempo que tarda el Arduino en conectarse al WiFi. Si el WiFi está conectado, hay una linterna verde seguida de una luz azul que parpadea constantemente para indicar que el árbol está listo para recibir comandos.
Si el amarillo parpadea, no se pudo llegar al tema de AWS IoT. Si eso sucede (por ejemplo, Arduino perdió la conexión WiFi), seguirá intentándolo nueve veces más hasta que automáticamente intente volver a conectarse. Dicho esto, después de diez veces la linterna amarilla, debería haber una linterna roja / verde para el progreso de la reconexión. Una vez que Arduino se vuelve a conectar al WiFi y se alcanza AWS IoT nuevamente, se encienden las linternas azules.
Código
Árbol de Navidad con tecnología de Alexa
Aquí puede encontrar las fuentes de una habilidad personalizada de Alexa que controla un hilo de LED en un árbol de Navidad. Edithttps://github.com/KayLerch/alexa-xmas-treeEsquemas
Proceso de manufactura
- Papel de envolver
- Nuevo ayudante de Santas:el papel del Internet de las cosas en Navidad
- Los kits de desarrollo aceleran la integración de Alexa
- ¿Es 2017 el año de la interfaz de voz?
- Amazon Alexa Controlando un Chromecast
- MajorTom:ARDrone 2.0 controlado por voz de Alexa
- Esta casa de decoración navideña con adornos y árbol de Navidad de madera
- Qué es el análisis del árbol de fallas y cómo realizarlo
- Habilita el control de Alexa en tu ventilador de techo
- Alexa, enciende ESTA lámpara:Sensor 3D inteligente para Amazon Echo
- Espíritu navideño en Sure Controls