Cuprins:

Obțineți un ecran pentru Google Home folosind Raspberry Pi și Dialogflow (alternativa Chromecast): 13 pași
Obțineți un ecran pentru Google Home folosind Raspberry Pi și Dialogflow (alternativa Chromecast): 13 pași

Video: Obțineți un ecran pentru Google Home folosind Raspberry Pi și Dialogflow (alternativa Chromecast): 13 pași

Video: Obțineți un ecran pentru Google Home folosind Raspberry Pi și Dialogflow (alternativa Chromecast): 13 pași
Video: HOW TO - Create a Raspberry Pi Smart Home Kiosk (Home Assistant) 2024, Noiembrie
Anonim
Obțineți un ecran pentru Google Home folosind Raspberry Pi și Dialogflow (Chromecast Alternative)
Obțineți un ecran pentru Google Home folosind Raspberry Pi și Dialogflow (Chromecast Alternative)

De când mi-am cumpărat casa Google, am vrut să îmi controlez dispozitivele acasă folosind comenzi vocale. Funcționează minunat din toate punctele de vedere, dar m-am simțit rău pentru funcția video. Putem viziona Youtube și Netflix numai dacă avem un dispozitiv Chromecast sau un televizor cu funcția Chromecast încorporată. Am un Raspberry Pi cu mine, așa că m-am gândit să-l folosesc pentru a reda videoclipurile și filmele mele preferate cu comenzi vocale.

Pasul 1:

Image
Image

Pentru aceasta, am făcut următoarea configurare

Google Home -> Dialogflow -> Adresa IP Rpi pe Dataplicity -> Server Nodejs -> Cod pentru a deschide URL-uri

Dialogflow este o tehnologie Google de interacțiune om-computer bazată pe conversații în limbaj natural. Cu ajutorul acestui lucru, ne putem dezvolta propriile conversații sau sarcini pe care să le oferim ca intrare în Google Home. Acest lucru funcționează după cum urmează

Intenție [Introducere, întrebare, conversație, comandă ….] -> Pagina principală Google -> acțiune [răspuns]

Aici, răspunsul poate fi o simplă conversație sau datele preluate dintr-un webhook, pe care le vom face folosind serverul Rpi. Deci, accesați site-ul web Dialogflow și creați un cont și un agent nou.

Apoi creați o nouă intenție….

Pasul 2:

Imagine
Imagine

Apoi introduceți frazele de antrenament. Acestea sunt comenzile pe care le rostesc utilizatorii atunci când încearcă să acceseze o anumită sarcină din Google Home.

Pasul 3:

Aici, cuvântul „site web” poate fi schimbat în orice altceva, cum ar fi YouTube, Netflix, Amazon Prime etc.

Pasul 4:

Imagine
Imagine

Din meniul derulant, selectați „@ sys.any” și apăsați Enter.

Pasul 5:

Imagine
Imagine

Apoi introduceți același nume de parametru în secțiunea de acțiuni. Valorile menționate în această secțiune sunt trimise webhook-ului ca fișier JSON, pe care trebuie să-l preluăm în server pentru a ști ce site web a invocat utilizatorul.

Valoarea unei variabile este recuperată folosind „$ variable_name”

Pasul 6:

Imagine
Imagine

Adăugați răspunsul pe care trebuie să-l auzim după ce spunem comanda la Google Home. Apoi salvați intenția. Dacă este necesar, setați această intenție ca sfârșit al conversației.

Pasul 7:

Acum vom configura serviciul nostru back-end pentru a obține aceste întrebări pentru a deschide videoclipuri și site-uri web pe raspberry pi.

Setarea rămasă

Dataplicity -> Server Nodejs -> cod

De ce avem nevoie de aplicație de date? deoarece Google Home se conectează la webhook-uri care sunt accesibile pe internet. Chiar dacă GHome-ul nostru este conectat la rețeaua locală, interogările provin de la serviciul cloud Google și, prin urmare, este necesară portarea serverului nostru pe internet. În loc de acea durere de cap, putem folosi serviciile de aplicații de date pentru a plasa cu ușurință pi-ul nostru de zmeură pe internet.

Mai întâi, conectați-vă la raspberry pi [direct cu HDMI sau chiar cu SSh] Obțineți cele mai recente rute de execuție nodejs din următoarea comandă din terminal.

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

Apoi instalați-l folosind

sudo apt-get install -y nodejs

Apoi creați un fișier nou

nano webserver.js

Pasul 8:

Apoi, introduceți codul de mai jos în fișier

Aici, pentru demonstrație, folosesc doar două site-uri web (google, youtube). Se poate edita codul și se poate modifica în consecință.

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 (eroare! == null) {console.log („exec errror:„ + eroare);}}); returnează res.end ();}); app.listen (80);

Pasul 9:

Imagine
Imagine

Codul de mai sus a fost scris doar pentru a explica conceptul. Am folosit browserul Midori în cod, deoarece cromul nu funcționează cu comenzi la distanță. Putem folosi și Firefox. [Trebuie să instalăm module body-parser, express cu ajutorul npm înainte de a scrie codul]

Amintiți-vă că ar trebui să ascultăm numai la portul 80, deoarece dataplicity poate redirecționa doar portul 80 al raspberry pi.

Acum trebuie să configurăm Dataplicity

Accesați site-ul web Dataplicity și creați-vă contul și urmați instrucțiunile pentru a adăuga raspberry pi la tabloul de bord.

Pasul 10:

Imagine
Imagine

După aceea, deschideți raspberry pi din lista de dispozitive și selectați gaura de vierme pentru a obține o adresă IP unică pentru raspberry pi pe care putem implementa serverul nostru de noduri.

Copiați adresa IP în clipboard.

Pasul 11:

Imagine
Imagine

Acum rulați codul de la terminalul raspberry pi

nod sudo webserver.js

Dacă arată orice eroare despre afișare sau despre protocoale … a executa

sudo xhost +

Acum reveniți la fluxul de dialog și faceți clic pe secțiunea de realizare

Pasul 12:

Imagine
Imagine

Introduceți adresa IP sau adresa URL din aplicația de date în spațiul de mai sus.

Pasul 13:

Imagine
Imagine

În cele din urmă, accesați secțiunea de intenții și activați apelul webhook din fila Îndeplinire.

Asta e! Acum reveniți la pagina dvs. Google și verificați cum funcționează!

Până data viitoare, Happy Hacking:)

Recomandat: