Taula de continguts:

Obteniu una pantalla per al vostre Google Home mitjançant Raspberry Pi i Dialogflow (alternativa de Chromecast): 13 passos
Obteniu una pantalla per al vostre Google Home mitjançant Raspberry Pi i Dialogflow (alternativa de Chromecast): 13 passos

Vídeo: Obteniu una pantalla per al vostre Google Home mitjançant Raspberry Pi i Dialogflow (alternativa de Chromecast): 13 passos

Vídeo: Obteniu una pantalla per al vostre Google Home mitjançant Raspberry Pi i Dialogflow (alternativa de Chromecast): 13 passos
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, De novembre
Anonim
Obteniu una pantalla per al vostre Google Home mitjançant Raspberry Pi i Dialogflow (alternativa de Chromecast)
Obteniu una pantalla per al vostre Google Home mitjançant Raspberry Pi i Dialogflow (alternativa de Chromecast)

Des que vaig comprar la meva llar de Google, he volgut controlar els meus dispositius a casa mitjançant ordres de veu. Funciona increïblement en tots els sentits, però em va semblar malament la seva funció de vídeo. Podem veure Youtube i Netflix només si tenim un dispositiu Chromecast o un televisor amb la funció Chromecast integrada. Tinc un Raspberry Pi amb mi, així que vaig pensar a fer-ne ús per reproduir els meus vídeos i pel·lícules preferides amb ordres de veu.

Pas 1:

Image
Image

Per a això, he realitzat la següent configuració

Inici de Google -> Dialogflow -> Adreça IP Rpi a Dataplicity -> Servidor Nodejs -> Codi per obrir URL

Dialogflow és una tecnologia d’interacció home-ordinador de Google basada en converses en llenguatge natural. Amb l’ajut d’això, podem desenvolupar les nostres pròpies converses o tasques per donar-les com a entrada a Google Home. Això funciona de la següent manera

Intenció [Entrada, pregunta, conversa, ordre …] -> Inici de Google -> acció [resposta]

Aquí, la resposta pot ser una simple conversa o bé dades recuperades d'un webhook, que farem mitjançant el servidor Rpi. Per tant, aneu al lloc web de Dialogflow i creeu un compte i un agent nou.

A continuació, creeu una nova intenció …

Pas 2:

Imatge
Imatge

A continuació, introduïu les frases d’entrenament. Aquestes són les ordres que parlen els usuaris quan intenten accedir a una tasca específica des de Google Home.

Pas 3:

Aquí, la paraula "lloc web" es pot canviar a qualsevol cosa com YouTube, Netflix, Amazon Prime, etc.

Pas 4:

Imatge
Imatge

Des del menú desplegable, seleccioneu "@ sys.any" i premeu Retorn.

Pas 5:

Imatge
Imatge

A continuació, introduïu el mateix nom de paràmetre a la secció d'accions. Els valors esmentats en aquesta secció s’envien al webhook com a fitxer JSON, que hem de recuperar al servidor per saber quin lloc web ha invocat l’usuari.

El valor d'una variable es recupera mitjançant "$ variable_name"

Pas 6:

Imatge
Imatge

Afegiu la resposta que hem d’escoltar després de dir l’ordre a Google Home. A continuació, guardeu la intenció. Si cal, fixeu aquesta intenció com a final de la conversa.

Pas 7:

Ara configurarem el nostre servei de back-end per aconseguir que aquestes consultes obrin vídeos i llocs web al nostre raspberry pi.

La configuració restant

Aplicació de dades -> Servidor Nodejs -> codi

Per què necessitem l’aplicació de dades? perquè Google Home es connecta a webhooks accessibles per Internet. Tot i que el nostre GHome està connectat a la xarxa local, les consultes provenen del servei de núvol de Google i, per tant, és necessari portar el nostre servidor a Internet. En lloc d’aquest mal de cap, podem utilitzar els serveis d’aplicació de dades per situar el nostre raspberry pi a Internet amb facilitat.

Primer, connecteu-vos al raspberry pi [directament amb HDMI o fins i tot amb SSh] Obteniu el temps d’execució més recent de nodejs des de l’ordre següent al terminal.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

A continuació, instal·leu-lo mitjançant

sudo apt-get install -y nodejs

A continuació, creeu un fitxer nou

nano webserver.js

Pas 8:

A continuació, inseriu el codi següent al fitxer

Aquí, per demostració, només faig servir dos llocs web (google, youtube). Es pot editar el codi i canviar en conseqüència.

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", function (error, stdout, stderr) {console.log ("stdout:" + stdout); console.log ("stderr:" + stderr); if (error! == null) {console.log ("exec error:" + error);}}); tornar res.end ();}); app.listen (80);

Pas 9:

Imatge
Imatge

El codi anterior es va escriure només per explicar el concepte. He utilitzat el navegador Midori al codi, ja que el crom no funciona amb ordres remotes. També podem utilitzar Firefox. [Hem d’instal·lar mòduls body-parser, express amb ajuda de npm abans d’escriure el codi]

Recordeu que només hem d’escoltar al port 80 ja que l’aplicació de dades només pot reenviar el port 80 del raspberry pi.

Ara hem de configurar Dataplicity

Aneu al lloc web de Dataplicity i creeu el vostre compte i seguiu les instruccions per afegir el raspberry pi al tauler.

Pas 10:

Imatge
Imatge

Després, obriu el raspberry pi de la llista de dispositius i seleccioneu forat de cuc per obtenir una adreça IP única per al raspberry pi en què podem desplegar el nostre servidor de nodes.

Copieu l'adreça IP al porta-retalls.

Pas 11:

Imatge
Imatge

Ara executeu el codi des del terminal raspberry pi

sudo node webserver.js

Si mostra algun error sobre la visualització o sobre protocols …. executar

sudo xhost +

Ara torneu al flux de diàleg i feu clic a la secció de compliment

Pas 12:

Imatge
Imatge

Introduïu l'adreça IP o l'URL des de l'aplicació de dades a l'espai anterior.

Pas 13:

Imatge
Imatge

Finalment, aneu a la secció d’intents i activeu la trucada de webhook des de la pestanya Compliment.

Això és! Ara torneu al vostre inici de Google i comproveu el seu funcionament.

Fins a la propera, Happy Hacking:)

Recomanat: