Tabla de contenido:
- Paso 1:
- Paso 2:
- Paso 3:
- Paso 4:
- Paso 5:
- Paso 6:
- Paso 7:
- Paso 8:
- Paso 9:
- Paso 10:
- Paso 11:
- Paso 12:
- Paso 13:
Video: Obtenga una pantalla para su Google Home usando Raspberry Pi y Dialogflow (alternativa a Chromecast): 13 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Desde que compré mi casa de Google, he querido controlar mis dispositivos en casa usando comandos de voz. Funciona increíble en todos los sentidos, pero me sentí mal por su función de video. Podemos ver Youtube y Netflix solo si tenemos un dispositivo Chromecast o un televisor con la función Chromecast incorporada. Tengo una Raspberry Pi, así que pensé en usarla para reproducir mis videos y películas favoritos con comandos de voz.
Paso 1:
Para esto, hice la siguiente configuración
Inicio de Google -> Dialogflow -> Dirección IP Rpi en Dataplicity -> Servidor Nodejs -> Código para abrir URL
Dialogflow es una tecnología de interacción persona-computadora de Google basada en conversaciones en lenguaje natural. Con la ayuda de esto, podemos desarrollar nuestras propias conversaciones o tareas para dar como entrada a Google Home. Esto funciona de la siguiente manera
Intención [Entrada, pregunta, conversación, comando….] -> Google Home -> acción [responder]
Aquí, la respuesta puede ser una simple conversación o datos recuperados de un webhook, que vamos a hacer usando el servidor Rpi. Entonces, vaya al sitio web de Dialogflow y cree una cuenta y un nuevo agente.
Luego crea una nueva intención….
Paso 2:
Luego ingrese las frases de entrenamiento. Estos son los comandos que hablan los usuarios cuando intentan acceder a una tarea específica desde Google Home.
Paso 3:
Aquí, la palabra "sitio web" se puede cambiar a cualquier cosa como youtube, Netflix, amazon prime, etc. Entonces, esta palabra actúa como una variable y cuando selecciona la palabra sitio web [usando el mouse] obtiene lo siguiente
Paso 4:
En el menú desplegable, seleccione "@ sys.any" y presione Intro.
Paso 5:
Luego ingrese el mismo nombre de parámetro en la sección de acciones. Los valores mencionados en esta sección se envían al webhook como un archivo JSON, que necesitamos recuperar en el servidor para saber qué sitio web ha invocado al usuario.
El valor de una variable se recupera usando "$ variable_name"
Paso 6:
Agregue la respuesta que necesitamos escuchar después de decir el comando a Google Home. Entonces guarda la intención. Si es necesario, establezca esta intención como el final de la conversación.
Paso 7:
Ahora configuraremos nuestro servicio de back-end para que esas consultas abran videos y sitios web en nuestra raspberry pi.
La configuración restante
Dataplicity -> servidor Nodejs -> código
¿Por qué necesitamos dataplicity? porque Google Home se conecta a webhooks que están accesibles a través de Internet. Aunque nuestro GHome está conectado a la red local, las consultas provienen del servicio en la nube de Google y, por lo tanto, es necesario migrar nuestro servidor a Internet. En lugar de ese dolor de cabeza, podemos usar los servicios de dataplicity para colocar nuestra raspberry pi en Internet con facilidad.
Primero, conéctese a la raspberry pi [directamente con HDMI o incluso con SSh] Obtenga el último tiempo de ejecución de nodejs desde el siguiente comando en la terminal.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Luego instálelo usando
sudo apt-get install -y nodejs
Luego crea un nuevo archivo
nano webserver.js
Paso 8:
Luego, inserte el siguiente código en el archivo
Aquí, para la demostración, estoy usando solo dos sitios web (google, youtube). Se puede editar el código y cambiarlo en consecuencia.
bodyParser = require ('body-parser'); var exec = require ('child_process'). exec; var express = require ('express'); var app = express (); app.use (bodyParser.json ()); app.post ('/', function (req, res) {let variable = req.body.queryResult.parameters.website; exec ("midori www." + variable + ". com", función (error, stdout, stderr) {console.log ("stdout:" + stdout); console.log ("stderr:" + stderr); if (error! == null) {console.log ("exec errror:" + error);}}); return res.end ();}); app.listen (80);
Paso 9:
El código anterior fue escrito solo para explicar el concepto. Usé el navegador Midori en el código ya que el cromo no funciona con comandos remotos. También podemos usar Firefox. [Tenemos que instalar body-parser, módulos express con ayuda de npm antes de escribir el código]
Recuerde que solo debemos escuchar en el puerto 80 ya que dataplicity solo puede reenviar el puerto 80 de la raspberry pi.
Ahora necesitamos configurar Dataplicity
Vaya al sitio web de Dataplicity, cree su cuenta y siga las instrucciones para agregar la Raspberry Pi al tablero.
Paso 10:
Después de eso, abra raspberry pi de la lista de dispositivos y seleccione wormhole para obtener una dirección IP única para la raspberry pi en la que podemos implementar nuestro servidor de nodo.
Copie la dirección IP al portapapeles.
Paso 11:
Ahora ejecuta el código desde la terminal raspberry pi
sudo nodo webserver.js
Si muestra algún error sobre la visualización o sobre los protocolos…. ejecutar
sudo xhost +
Ahora regrese al flujo de diálogo y haga clic en la sección de cumplimiento
Paso 12:
Ingrese la dirección IP o la URL de dataplicity en el espacio anterior.
Paso 13:
Finalmente, vaya a la sección de intenciones y habilite la llamada de webhook desde la pestaña de cumplimiento.
¡Eso es todo! ¡Ahora vuelve a tu página de inicio de Google y comprueba cómo funciona!
Hasta la próxima, Happy Hacking:)
Recomendado:
Hacer una pantalla de luz a partir de una pantalla LCD antigua: 5 pasos
Hacer una pantalla de luz a partir de una pantalla LCD antigua: Hola a todos, este es un tutorial sobre cómo hacer una pantalla de luz (luz de fondo) desmontando una pantalla LCD antigua y luego modificándola Es muy práctico si tiene una pantalla LCD vieja / rota y desea hacer algo útil con él, en lugar de solo
Pantalla LCD I2C / IIC - Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: 5 pasos
Pantalla LCD I2C / IIC | Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: Hola a todos, ya que una pantalla LCD SPI 1602 normal tiene demasiados cables para conectar, por lo que es muy difícil conectarlo con arduino, pero hay un módulo disponible en el mercado que puede Convierta la pantalla SPI en la pantalla IIC, por lo que solo necesita conectar 4 cables
Pantalla LCD I2C / IIC - Convierta una pantalla LCD SPI en una pantalla LCD I2C: 5 pasos
Pantalla LCD I2C / IIC | Convierta una pantalla LCD SPI en la pantalla LCD I2C: el uso de la pantalla lcd spi necesita demasiadas conexiones, lo cual es realmente difícil de hacer, así que encontré un módulo que puede convertir la pantalla lcd i2c en la pantalla lcd spi, así que comencemos
Obtenga un sensor de peso colgante de una báscula para equipaje para su proyecto Arduino: 4 pasos
Obtenga un sensor de peso colgante de una báscula de equipaje para su proyecto Arduino: en este tutorial le muestro cómo obtener un sensor de peso colgante para un proyecto Arduino de una báscula de equipaje / pesca común y barata y el módulo ADC HX711 de uso frecuente. Antecedentes: Para un proyecto necesitaba un sensor para medir un cierto peso que es ha
Obtenga una pantalla de inicio de sesión de estilo clásico en Windows Vista: 4 pasos
Obtenga una pantalla de inicio de sesión de estilo clásico en Windows Vista: la pantalla de bienvenida, que muestra a todos los usuarios, se introdujo en Windows XP para su comodidad. La opción de volver a cambiar eso a la pantalla de inicio de sesión clásica más segura era posible desde el panel de control. Eso fue eliminado de las opciones de Vista, pero yo