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

LED controlados por Alexa a través de Arduino Yún

Componentes y suministros

Arduino Yun
× 1
Amazon Alexa Amazon Echo
× 1
LED (genérico)
× 1
Tarjeta Micro SD
× 1

Aplicaciones y servicios en línea

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

Acerca de este proyecto

Motivación

Desde que construí un espejo inteligente con Alexa a bordo, he estado buscando más formas de conectar varios dispositivos de automatización del hogar y hardware en toda nuestra casa. Cuando escuché que la nueva API de Alexa Smart Home te permite controlar dispositivos personalizados directamente, decidí intentarlo.

Este árbol de Navidad controlado por eco usa una versión anterior de la API, pero sirvió como un gran punto de partida y me señaló hacia el Arduino Yún dirigido a IoT. Esto le brinda un sistema Linux y un microcontrolador, todo en un paquete práctico.

La tarea que me propuse fue la "palabra de saludo" equivalente a las habilidades de un hogar inteligente ... Solo enciende y apaga un LED con mi voz. Como tenía una matriz de LED de 2x3 por ahí, decidí encenderla y apagarla para obtener puntos de estilo.

Los detalles completos se pueden encontrar a continuación, ¡pero así es como resultó!

Descripción general del proyecto

Este proyecto tiene como objetivo conectar una placa Arduino Yún a una habilidad Alexa Smart Home v3. Esto se hace usando Alexa Smart Home Skill (v3), una función AWS Lambda, una AWS IoT Thing y un Arduino Yún que está suscrito a IoT Thing.

En el diagrama a continuación, puede ver todas las piezas principales de este proyecto involucradas en encender la luz.

Recomendaría tomarlo una pieza a la vez y probarlo mientras lo hace. Nada en el proyecto es muy desafiante, pero hay muchas piezas interconectadas. Así que no se desanime si se rasca un poco la cabeza mientras trabaja en esto.

Pensaría en cada paso como un mini proyecto, que podría tomar más de 1 hora cada uno.

Paso 1:cree una habilidad de hogar inteligente y Lambda conectado.

Aquí crea una habilidad de hogar inteligente, crea una función Lambda y vincula estos dos juntos. Este proceso está muy bien cubierto en este tutorial. Asegúrese de seguir los pasos de LWA para que su ID de cliente y su secreto de cliente se utilicen en la Configuración de habilidades.

En esta etapa, si puede iniciar sesión en el panel de Alexa y descubrir su nuevo dispositivo doméstico inteligente (en este punto, solo una respuesta de función Lambda), ha tenido un buen comienzo.

Tenga en cuenta que ese tutorial usa Python 3.6, pero yo usé Python2.7 en su lugar. Puede copiar el handle_discovery parte de mi función lambda, pero eso es todo lo que funcionará en este punto.

Paso 2:crea una cosa de IoT.

El descubrimiento no es muy bueno si no puede hacer nada, así que démosle algo a lo que conectarse creando una cosa de AWS IoT.

Esto se puede hacer siguiendo los pasos de esta página. Usaremos la "sombra de cosa" de lo que crea, que es una copia del estado de una cosa, junto con los cambios deseados. El Arduino se suscribirá a una fuente de notificación que publica los cambios ("delta") de este Thing Shadow. Consulte este enlace aquí para obtener más información sobre Thing Shadows.

Una vez que haya creado su Thing, vaya a la pestaña de seguridad en el panel web de Thing IoT y descargue la clave pública, la clave privada y el certificado. Una vez hecho esto, haga clic en "Activar", que le dará la clave de la Autoridad de certificación raíz. Guarde esto también. Estos serán utilizados por su Arduino para autenticarse en la sombra de IoT.

Vaya a la pestaña Sombra de su cosa y haga clic en editar. Agregue una propiedad a su sombra para que se vea así:

  {"reportado":{"light":"on"}}  

Paso 3:conecte su Lambda a su cosa.

Con su cosa en su lugar, ahora puede actualizar su código Lambda para actualizar la sombra de la cosa. Ahora puede copiar el código completo de mi función lambda, pero asegúrese de mantener todos los cambios relacionados con Discovery que haya realizado.

También debe asegurarse de que su rol de AWS IAM asociado con la función Lambda tenga permisos "AWSIoTFullAccess". Puede ver su función en la parte inferior del panel web de configuración de Lambda. Este permiso le permite conectarse a AWS IoT Thing.

Una vez hecho esto, navegue hasta la página de configuración de la función Lambda. En la pestaña de prueba de su función, agregue una directiva llamada "TurnOff" con el siguiente JSON específico v3. También puede agregar una segunda prueba llamada "TurnOn" en la que simplemente cambie el nombre del encabezado a "TurnOn".

  {"directive":{"header":{"namespace":"Alexa.PowerController", "name":"TurnOff", "payloadVersion":"3", "messageId":"1bd5d003- 31b9-476f-ad03-71d471922820 "," correlationToken ":" 1234 "}," endpoint ":{" scope ":{" type ":" BearerToken "," token ":" some-access-token "}," endpointId ":" appliance-001 "," cookie ":{}}," payload ":{}}}  

Cuando ejecuta las pruebas TurnOn y TurnOff, debería ver el informe Thing Shadow de un estado deseado consistente con la acción. Si está viendo este resultado, todo está bien.

Paso 4:Configura tu Arduino Yún.

Es hora de configurar el hardware Arduino Yún. Encontré que esta guía es más útil que la guía de Arduino. Algunas notas:si es un usuario de Windows, al formatear la SD asegúrese de usar FAT32 (exFAT no es compatible). Tampoco pude ver la página de "actualización" correctamente hasta que me conecté a Ethernet. Una vez configurado, wifi funcionó bien.

Ha completado este paso cuando haya visto esta opción y haya seguido los pasos:

También debería poder ssh exitosamente en su Arduino. Recomendaría ejecutar "df -h" también y buscar un volumen que sugiera que se ha agregado su tarjeta SD.

Abrir el IDE de Arduino y verificar que puede ejecutar el ejemplo de Blink también sería bueno en esta etapa.

Paso 6:conecte su Yún a AWS IoT.

Con Arduino en funcionamiento, hablemos con IoT Thing. Esto se hace instalando AWS Arduino IoT SDK y ejecutando un boceto de ejemplo para monitorear los deltas de Thing Shadow.

Recomiendo comenzar con este tutorial que hace un excelente trabajo guiándolo a través del proceso de instalación del SDK. Nota para los usuarios de Windows, si está usando cygwin, simplemente siga las instrucciones de Mac / Linux (no tuve problemas con la dependencia "espera"). En particular, ejecutar el script de seguimiento desde su sistema host hace la vida mucho más fácil:

./AWSIoTArduinoYunInstallAll.sh

Ese tutorial termina agregando el AWS-IoT-SDK al IDE de Arduino. Ahora, cuando abra el IDE de Arduino, debería encontrar el ejemplo de ShadowThing en Archivo-> Ejemplos-> AWS-IoT-Arduino-Yun-Library.

Abra este boceto y edite el aws_iot_config.h archivo para contener sus puntos finales relevantes y nombres de certificado / clave.

La ejecución de este boceto debería mostrarle una salida en serie que indique que el estado de la conexión fue exitoso. Si cambia su sombra de cosas en el panel de IoT, debería recibir una notificación en el registrador serial.

Si tiene problemas en esta etapa, asegúrese de que sus certificados estén en las rutas correctas y verifique que haya copiado el texto de la CA raíz en un archivo correctamente.

Paso 7:conecte su Yún a AWS IoT.

Ahora todo lo que queda es manejar los cambios en Thing Shadow en Arduino. Debería poder simplemente copiar el contenido de mi boceto.

Mi boceto es básicamente solo el ejemplo de boceto de ThingShadow, excepto que busca específicamente cambios en la tecla "luz". Cuando se reciben, establece todos los pines en ledArray en HIGH o LOW en función de si la luz estaba "encendida" o "apagada".

Este ledArray incluye el pin 13 integrado, por lo que sin LED adicionales enchufados, verá que el LED YUN integrado se enciende y apaga según sus comandos de voz. Si desea un cubo LED más elegante como el que estoy usando, consulte este proyecto que le dirá cómo conectarlo. Luego, simplemente agregue los números de pin positivos al ledArray en mi boceto.

Sabrá que ha terminado este paso cuando pueda pedirle a su dispositivo Alexa que encienda y apague su dispositivo inteligente personalizado.

Si esto no funciona como se esperaba, le sugiero que lo intente con sus funciones Lambda TestOn y TestOff en el panel web. Esto le brinda más información sobre lo que puede estar fallando.

Publique comentarios con cualquier problema que encuentre que no esté cubierto y lo abordaré lo más rápido posible.

Paso 9:¡Celebre!

Si llegaste tan lejos, ¡bien hecho! Arduinos puede hacer casi cualquier cosa que desee, y ahora sabe cómo comenzar con un simple comando de voz a través de Alexa. Celebre su logro encendiendo y apagando la luz muchas veces. ¡El mundo de IoT es tu ostra!

Código

Código Lambda y Arduino para el proyecto
Los archivos .ino y .h se utilizan para Arduino Sketch, y lambda_function se utiliza en AWS Lambda Cloud b49acode ">

Proceso de manufactura

  1. Amazon Alexa Controlando un Chromecast
  2. Robot Raspberry Pi controlado por Bluetooth
  3. MajorTom:ARDrone 2.0 controlado por voz de Alexa
  4. Luz de mesa interactiva controlada por gestos
  5. Arduino + LED + Teclado MIDI + MuseScore =Tutor de piano
  6. LED controlados por Alexa a través de Raspberry Pi
  7. Coche RC controlado por joystick
  8. Brazo robótico controlado por Nunchuk (con Arduino)
  9. Robot controlado por voz
  10. Brazo robótico controlado a través de Ethernet
  11. Robot de piano controlado por Arduino:PiBot