- Material exquisito:
- Parte 1: Configuración de Raspberry Pi con SSH y VNC
- Parte 2: Configure su cuenta de desarrollador de Amazon y configure los servicios de voz de Alexa en Raspberry Pi:
- Parte 3: Configuración de PubNub e IFTTT para la automatización del hogar Alexa Pi :
- Parte 3-2: Configuración de IFTTT para el servicio Amazon Alexa:
- Parte 4: Conexiones de hardware y diagrama de circuito:
- Parte 5: Código Python para controlar el LED:
¿Alguna vez ha pensado en un altavoz que pueda ser controlado por su voz? ¿Qué pasa si podemos controlar nuestros electrodomésticos de esta manera y hacer que estos electrodomésticos sean más inteligentes? Los asistentes de voz se vuelven más populares a medida que nos dirigimos hacia una era de sistemas basados en IA e IoT. Ha oído hablar de Google Assistant, Apple Siri y Amazon Alexa . Todos estos son sistemas de inteligencia artificial basados en voz, lo que los hace diferentes entre sí son sus ecosistemas, y aquí es donde Amazon Alexa se destaca más. Google, Apple y Amazon, todas estas empresas ya lanzaron sus altavoces inteligentes, pero Amazon fue el primero en presentar altavoces inteligentes. Amazon echo, Echo Dot Spot, etc.son los altavoces inteligentes que están disponibles en el mercado.
Amazon proporciona la API para usar su popular servicio de voz, Alexa. Es de código abierto y está disponible en Github. Además, puede instalar o integrar Alexa en dispositivos personalizados como Raspberry Pi y obtener la funcionalidad completa de Amazon Echo en ese dispositivo.
Con el servicio de voz de Alexa, podemos reproducir música, obtener información sobre el clima, reservar boletos y mucho más. Todo lo que tienes que hacer es preguntar'. En este tutorial, veremos cómo podemos controlar Raspberry Pi GPIO usando los servicios de Alexa Voice para encender un LED.
Material exquisito:
Requisitos de hardware:
- Raspberry Pi 3 o Raspberry Pi 2 Modelo B y tarjeta SD (8GB o más)
- Altavoz externo con cable AUX de 3,5 mm
- Cualquier cámara web o micrófono USB 2.0
- Módulo de relé
- LED
Nota: La cámara web tiene un micrófono incorporado, por lo que lo usaremos en lugar del micrófono USB 2.0.
Aplicaciones de software y requisitos web:
- Registre una cuenta con Alexa Voice Services
- Registre una cuenta con PubNub
- Registre una cuenta con IFTTT
También asumimos que su Raspberry pi ya está configurado con un sistema operativo Raspbian y está conectado a Internet. Con esto en su lugar, procedamos con el tutorial. Si es nuevo en Raspberry Pi, primero consulte Introducción a Raspberry Pi.
Todo el tutorial se divide principalmente en 5 partes, que son las siguientes:
- Si no tiene monitor, tenemos que configurar la Raspberry Pi con SSH y VNC, también verifique la conectividad del micrófono USB.
- Configure su desarrollador de Amazon e instale Alexa en Raspberry Pi
- Configuración de PubNub e IFTTT para Alexa Home Automation
- Conexión de hardware
- Código Python para Alexa Pi GPIO Control
Si simplemente desea controlar un LED con su voz, consulte también nuestro proyecto LED controlado por voz basado en Bluetooth.
Parte 1: Configuración de Raspberry Pi con SSH y VNC
Primero, conectaremos Raspberry Pi con SSH y VNC. Para esto, siga los tutoriales en el sitio web oficial de Raspberry Pi, los enlaces se proporcionan a continuación.
Para SSH: enlace SSh
Para VNC: enlace VNC
Si tiene Monitor, puede dejar este paso e ir directamente al paso 2, que es Configurar el servicio de voz de Alexa (Avs). Antes de eso tenemos que comprobar la conectividad del micrófono.
Comprobación del micrófono de la cámara web con Raspberry Pi:
1. Abra la terminal Raspberry Pi y escriba el comando arecord -l. Esto mostrará los dispositivos de hardware que están conectados a Raspberry Pi como se muestra a continuación:
La tarjeta 1 es el micrófono de su cámara web que vamos a utilizar. Si no se muestra, su cámara web puede estar defectuosa.
2. Ahora, verifique si el micrófono está funcionando ejecutando el comando de grabación de audio como:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. Para reproducir el audio grabado, escriba este comando:
omxplayer -p -o local /home/pi/Desktop/test.wav
Si ha conectado una Raspberry Pi con un monitor mediante un cable HDMI, la salida de audio predeterminada es a través del altavoz del monitor (si tiene un altavoz incorporado). Entonces, para cambiarlo a 3.5 mm, debe escribir el siguiente comando:
sudo raspi-config y vaya a la opción Avanzada.
Seleccione Audio de la lista -> seleccione Forzar 3,5 mm -> seleccione Aceptar y reinicie su Raspberry Pi.
Ahora, debería escuchar el sonido del conector de 3,5 mm.
NOTA: Si desea aumentar o disminuir el volumen de la voz de entrada para el micrófono, escriba alsamixer en el terminal. Seleccione la tarjeta de sonido del terminal presionando F6.
Presione F4 para cambiar la ganancia de dB del micrófono y configúrela como desee.
Si tiene un micrófono USB 2.0, los pasos que se siguen son los mismos para verificar el micrófono. Aquí hemos utilizado Webcam para micrófono USB.
Parte 2: Configure su cuenta de desarrollador de Amazon y configure los servicios de voz de Alexa en Raspberry Pi:
Ya lo hemos explicado en detalle en nuestro tutorial anterior donde hemos construido un altavoz inteligente Amazon Echo. Aquí nos estamos enfocando en controlar Raspberry Pi GPIO con Alexa, por lo que no explicaremos todo el proceso nuevamente, así que lea el artículo anterior y prepare su altavoz con los servicios de voz de Alexa instalados en su Raspberry pi.
Para probar a Alexa, ¡simplemente despiértala diciendo su nombre! Consulte el video de demostración que se encuentra al final del tutorial.
Puedes preguntarle sobre la temperatura de tu ciudad para comprobar si funciona o no.
Parte 3: Configuración de PubNub e IFTTT para la automatización del hogar Alexa Pi :
Para controlar Raspberry Pi GPIO usando esta Alexa Pi, necesitamos la ayuda de PubNub Python SDK e IFTTT. Daremos comandos a IFTTT a través de Alexa, y PubNub le da una señal a RPi para que encienda / apague el LED. Entonces, primero instalaremos PubNub en Raspberry Pi.
Parte 3-1: Instalación del SDK de PubNub Python:
PubNub proporciona una API de mensajería para publicar / suscribir cualquier mensaje en su red global. Aquí estamos usando IFTTT y Alexa para publicar el mensaje en PubNub, para hacer Raspberry Pi GPIO bajo / alto. Este mensaje es recibido por Raspberry Pi y Pi encenderá o apagará el LED en consecuencia. Siga los pasos a continuación para configurar PubNub en Raspberry Pi:
Paso 1: Abra el terminal en su RPi y ejecute el siguiente comando para instalar SDK:
sudo pip install pubnub == 3.9.0
Instale solo la versión 3.9.0, otra versión no funcionará con el script de Python que ejecutaremos en la última.
Paso 2: Ahora, vaya a PubNub e inicie sesión con sus credenciales.
Paso 3:. Obtenga las claves de publicación y suscripción que usaremos más adelante.
Parte 3-2: Configuración de IFTTT para el servicio Amazon Alexa:
IFTTT es un servicio web gratuito que permite a los usuarios crear cadenas de declaraciones condicionales simples, llamadas "recetas", que se activan en función de cambios en otros servicios web como Gmail, Facebook, Instagram y. IFTTT es una abreviatura de "If This Then That".
Para este proyecto, IFTTT se utiliza para hacer que Raspberry Pi GPIO LOW / HIGH en función del comando de voz recibido por el servicio Alexa que se ejecuta en RPi.
Siga estos pasos para crear un applet:
Paso 1: - Acceso a IFTTT con sus credenciales o Registrarse si no tiene una cuenta en él.
Paso 2: - En Mis subprogramas, haga clic en Nuevo subprograma
Paso 3: - Haga clic en + este
Paso 4: - Busque Amazon Alexa y haga clic en él, inicie sesión con los detalles de su cuenta de desarrollador de Amazon.
Paso 5: - Elija el disparador, diga una frase específica
Paso 6: - Proporcione " encender la luz" como frase, haga clic en Crear disparador.
Paso 7: - Haga clic en + que
Paso 8: - Busque Webhooks, haga clic en él y seleccione Realizar una solicitud web
Paso 9: - Webhooks proporciona la Solicitud WEB REST, use las claves de Publicación y Suscripción obtenidas del PubNub y modifique la siguiente URL.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Paso 10: - Pegue la URL modificada en el cuadro de texto URL.
Paso 11: - Configure el Método como OBTENER, Contenido como aplicación / json y haga clic en Guardar.
Paso 12: - Siga los mismos pasos para crear el disparador para " apagar la luz " y modificar la URL a lo siguiente.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
Paso 13: - Ahora estamos listos con todos los componentes web para la demostración.
Parte 4: Conexiones de hardware y diagrama de circuito:
Para este proyecto, necesitamos un LED simple para realizar pruebas. A continuación se muestra el diagrama de circuito y las conexiones de hardware para controlar Raspberry Pi GPIO con Amazon Alexa.
Usaremos GPIO18 en nuestro script de Python, así que conecte el relé de su LED 18. Puede cambiar esto en el script de Python.
Parte 5: Código Python para controlar el LED:
Encuentre el script de Python completo al final de este tutorial.
Necesita editar las claves Pub y Sub con sus claves pubnub en el código Python.
# Inicializar las claves de Pubnub pub_key = "**************************" sub_key = "*********** ************* "
Ahora ejecuta el script
python alexaRpi.py
Ahora que estamos listos para la demostración, asegúrese de estar ejecutando los tres servicios de la Parte 1 (los tres terminales) antes de continuar.
Para dar cualquier comando, debe activar el servicio de Alexa llamando a "Alexa" cada vez que desee enviar un comando. Oirá un pitido. Una vez que escuche el pitido, diga “ Alexa Trigger Enciende la luz. ”Puede ver que la luz se enciende en un momento. Y luego, si dices " Alexa Trigger apaga la luz ", la luz debería apagarse.
Eso es…. Además, puede agregar un relé para controlar el dispositivo de CA, incluso puede controlar muchos dispositivos utilizando más relés y más pines GPIO de Raspberry pi.
Consulte el código completo y el video de demostración a continuación. Consulte también todos nuestros proyectos de automatización del hogar aquí.