INHOUDSOPGAWE:

Kry 'n skerm vir u Google -huis met Raspberry Pi en Dialogflow (Chromecast Alternative): 13 stappe
Kry 'n skerm vir u Google -huis met Raspberry Pi en Dialogflow (Chromecast Alternative): 13 stappe

Video: Kry 'n skerm vir u Google -huis met Raspberry Pi en Dialogflow (Chromecast Alternative): 13 stappe

Video: Kry 'n skerm vir u Google -huis met Raspberry Pi en Dialogflow (Chromecast Alternative): 13 stappe
Video: В Google AIY Projects добавили естественное человеческое взаимодействие с Raspberry Pi 2024, November
Anonim
Kry 'n skerm vir u Google -huis met Raspberry Pi en Dialogflow (Chromecast -alternatief)
Kry 'n skerm vir u Google -huis met Raspberry Pi en Dialogflow (Chromecast -alternatief)

Sedert ek my Google -huis gekoop het, wou ek my toestelle tuis beheer met behulp van stemopdragte. Dit werk in alle opsigte wonderlik, maar ek het sleg gevoel oor die videofunksie daarvan. Ons kan slegs Youtube en Netflix kyk as ons 'n Chromecast -toestel of 'n TV met 'n ingeboude Chromecast -funksie het. Ek het 'n Raspberry Pi by my, en ek het daaraan gedink om dit te gebruik om my gunsteling video's en films met stemopdragte te speel.

Stap 1:

Image
Image

Hiervoor het ek die volgende opstelling gemaak

Google Home -> Dialogflow -> Rpi IP -adres op Dataplicity -> Nodejs Server -> Kode om URL's oop te maak

Dialogflow is 'n Google se interaksie-tegnologie tussen mense en rekenaar wat gebaseer is op gesprekke in natuurlike tale. Met die hulp hiervan kan ons ons eie gesprekke of take ontwikkel om as 'n inset vir Google Home te gee. Dit werk soos volg

Voorneme [Invoer, vraag, gesprek, opdrag …] -> Google Home -> aksie [antwoord]

Hier kan die antwoord 'n eenvoudige gesprek wees, of anders kan data van 'n webhook opgehaal word, wat ons met die Rpi -bediener gaan maak. Gaan dus na die Dialogflow -webwerf en skep 'n rekening en 'n nuwe agent.

Skep dan 'n nuwe bedoeling …

Stap 2:

Beeld
Beeld

Voer dan die opleidingsfrases in. Dit is die opdragte wat gebruikers spreek wanneer hulle probeer om toegang tot 'n spesifieke taak vanaf Google Home te verkry.

Stap 3:

Hier kan die woord 'webwerf' verander word na enigiets soos youtube, Netflix, amazon prime ens … Dus, hierdie woord dien as 'n veranderlike en as u die woord webwerf [met die muis] kies, kry u die volgende

Stap 4:

Beeld
Beeld

Kies '@sys.any' in die keuselys en druk op enter.

Stap 5:

Beeld
Beeld

Voer dan dieselfde parameternaam in die afdeling vir aksies in. Die waardes wat in hierdie afdeling genoem word, word as 'n JSON -lêer na die webhook gestuur, wat ons op die bediener moet ophaal om te weet watter webwerf die gebruiker oproep.

Die waarde van 'n veranderlike word opgetel met '$ variable_name'

Stap 6:

Beeld
Beeld

Voeg die antwoord wat ons moet hoor nadat ons die opdrag gesê het, by Google Home. Stoor dan die bedoeling. Stel indien nodig hierdie voorneme as die einde van die gesprek.

Stap 7:

Nou sal ons ons back-end diens opstel om die navrae te laat videos en webwerwe op ons framboos pi oopmaak.

Die oorblywende opstelling

Dataplicity -> Nodejs -bediener -> kode

Waarom het ons dataplek nodig? omdat Google Home verbind is met webhooks wat op die internet toeganklik is. Alhoewel ons GHome aan die plaaslike netwerk gekoppel is, kom die navrae van die Google -wolkdiens af, en daarom is dit nodig dat ons bediener na die internet oorgedra word. In plaas van die hoofpyn, kan ons dataplicity -dienste gebruik om ons framboos pi maklik op die internet te plaas.

Koppel eers aan die framboos pi [direk met HDMI of selfs met SSh] Kry die nuutste nodejs-werktyd vanaf die volgende opdrag in die terminale.

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

Installeer dit dan met

sudo apt -get install -y nodejs

Skep dan 'n nuwe lêer

nano webserver.js

Stap 8:

Plaas dan die onderstaande kode in die lêer

Hier, vir demonstrasie, gebruik ek slegs twee webwerwe (google, youtube). U kan die kode wysig en dienooreenkomstig verander.

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 errror:“+ error);}})); stuur res.end ();}) terug; app.luister (80);

Stap 9:

Beeld
Beeld

Bogenoemde kode is slegs geskryf om die konsep te verduidelik. Ek het die Midori -blaaier in die kode gebruik, aangesien chroom nie met afstandbeheer werk nie. Ons kan ook Firefox gebruik. [Ons moet body-parser, express modules met behulp van npm installeer voordat ons die kode skryf]

Onthou dat ons slegs by poort 80 moet luister, aangesien data slegs poort 80 van die framboospi kan deurstuur.

Nou moet ons Dataplicity opstel

Gaan na die Dataplicity -webwerf en skep u rekening en volg die instruksies om die framboospi by die dashboard te voeg.

Stap 10:

Beeld
Beeld

Open daarna framboos pi uit die toestelle lys en kies wormgat om 'n unieke IP -adres vir die framboos pi te kry waarop ons ons nodusbediener kan ontplooi.

Kopieer die IP -adres na die knipbord.

Stap 11:

Beeld
Beeld

Begin nou die kode vanaf die framboos pi -terminale

sudo node webserver.js

As dit 'n fout met die skerm of protokolle toon … uitvoer

sudo xhost +

Gaan nou terug na die dialoogvloei en klik op die vervullingsafdeling

Stap 12:

Beeld
Beeld

Voer die IP -adres of die URL van die gegewens in die ruimte hierbo in.

Stap 13:

Beeld
Beeld

Gaan ten slotte na die afdeling Intents en aktiveer die webhook -oproep vanaf die vervulling -oortjie.

Dis dit! Gaan nou terug na u Google -huis en kyk hoe dit werk!

Tot die volgende keer, Happy Hacking:)

Aanbeveel: