Innholdsfortegnelse:

Få en skjerm for Google -hjemmet ditt ved hjelp av Raspberry Pi og Dialogflow (Chromecast -alternativ): 13 trinn
Få en skjerm for Google -hjemmet ditt ved hjelp av Raspberry Pi og Dialogflow (Chromecast -alternativ): 13 trinn

Video: Få en skjerm for Google -hjemmet ditt ved hjelp av Raspberry Pi og Dialogflow (Chromecast -alternativ): 13 trinn

Video: Få en skjerm for Google -hjemmet ditt ved hjelp av Raspberry Pi og Dialogflow (Chromecast -alternativ): 13 trinn
Video: ПЛОВ. ЭТО ЛУЧШАЯ ЕДА ЧТО Я ЕЛ! СЕКРЕТ РАСКРЫТ УЗБЕКСКИЙ РЕЦЕПТ 2024, November
Anonim
Få en skjerm for Google -hjemmet ditt ved hjelp av Raspberry Pi og Dialogflow (Chromecast -alternativ)
Få en skjerm for Google -hjemmet ditt ved hjelp av Raspberry Pi og Dialogflow (Chromecast -alternativ)

Helt siden jeg kjøpte Google -hjemmet mitt, har jeg ønsket å kontrollere enhetene mine hjemme ved hjelp av talekommandoer. Det fungerer fantastisk på alle måter, men jeg følte meg dårlig for videofunksjonen. Vi kan bare se Youtube og Netflix hvis vi har en Chromecast -enhet eller TV med innebygd Chromecast -funksjon. Jeg har med meg en Raspberry Pi, så jeg tenkte å bruke den til å spille av mine favorittvideoer og filmer med talekommandoer.

Trinn 1:

Image
Image

For dette gjorde jeg følgende oppsett

Google Home -> Dialogflow -> Rpi IP -adresse på Dataplicity -> Nodejs Server -> Kode for å åpne nettadresser

Dialogflow er en Googles interaksjonsteknologi mellom mennesker og datamaskiner basert på samtaler på naturlig språk. Ved hjelp av dette kan vi utvikle våre egne samtaler eller oppgaver å gi som innspill til Google home. Dette fungerer som følger

Intensjon [Inndata, spørsmål, samtale, kommando …] -> Google Home -> handling [svar]

Her kan svaret enten være en enkel samtale eller data hentet fra en webhook, som vi skal lage ved hjelp av Rpi -server. Så gå til Dialogflow -nettstedet og opprett en konto og en ny agent.

Lag deretter en ny intensjon ….

Steg 2:

Bilde
Bilde

Skriv deretter inn treningsfrasene. Dette er kommandoene som brukerne snakker når de prøver å få tilgang til en bestemt oppgave fra Google Home.

Trinn 3:

Her kan ordet "nettsted" endres til alt som youtube, Netflix, amazon prime osv … Så dette ordet fungerer som en variabel, og når du velger ordet nettsted [ved hjelp av mus] får du følgende

Trinn 4:

Bilde
Bilde

Fra rullegardinmenyen, velg ‘@sys.any’ og trykk enter.

Trinn 5:

Bilde
Bilde

Skriv deretter inn det samme parameternavnet i handlingsdelen. Verdiene nevnt i denne delen sendes til webhook som en JSON -fil, som vi må hente på serveren for å vite hvilket nettsted brukeren har påkalt.

Verdien av en variabel hentes ved hjelp av '$ variable_name'

Trinn 6:

Bilde
Bilde

Legg til svaret vi trenger å høre etter å ha sagt kommandoen til Google Home. Lagre deretter intensjonen. Sett om nødvendig denne intensjonen som slutten på samtalen.

Trinn 7:

Nå vil vi sette opp vår backend-tjeneste for å få disse spørsmålene til å åpne videoer og nettsteder på bringebær-pi.

Det gjenværende oppsettet

Dataplicity -> Nodejs server -> kode

Hvorfor trenger vi dataplicity? fordi Google Home kobles til webhooks som er tilgjengelige på internett. Selv om GHome er koblet til det lokale nettverket, kommer spørringene fra Googles skytjeneste, og derfor er det behov for å portere serveren vår til internett. I stedet for den hodepinen kan vi enkelt bruke dataplicity -tjenester for å plassere bringebær -pi på internett.

Koble først til bringebær pi [direkte med HDMI eller til og med med SSh] Få den siste nodejs-kjøretiden fra følgende kommando i terminalen.

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

Installer den deretter med

sudo apt -get install -y nodejs

Lag deretter en ny fil

nano webserver.js

Trinn 8:

Sett deretter inn koden nedenfor i filen

Her, for demonstrasjon, bruker jeg bare to nettsteder (google, youtube). Man kan redigere koden og endre deretter.

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);}}); returnere res.end ();}); app.listen (80);

Trinn 9:

Bilde
Bilde

Koden ovenfor ble skrevet bare for å forklare konseptet. Jeg brukte Midori -nettleseren i koden, da krom ikke fungerer med eksterne kommandoer. Vi kan også bruke Firefox. [Vi må installere body-parser, express-moduler ved hjelp av npm før vi skriver koden]

Husk at vi bare bør lytte på port 80 da dataplicity bare kan videresende port 80 av bringebærpi.

Nå må vi sette opp Dataplicity

Gå til Dataplicity -nettstedet og opprett kontoen din, og følg instruksjonene for å legge bringebær -pi til dashbordet.

Trinn 10:

Bilde
Bilde

Etter det åpner du bringebær pi fra enhetslisten og velger ormhull for å få en unik IP -adresse for bringebærpi som vi kan distribuere nodeserveren til.

Kopier IP -adressen til utklippstavlen.

Trinn 11:

Bilde
Bilde

Kjør nå koden fra bringebær pi -terminalen

sudo node webserver.js

Hvis det viser noen feil om display eller protokoller …. henrette

sudo xhost +

Gå nå tilbake til dialogflyten, og klikk på oppfyllingsdelen

Trinn 12:

Bilde
Bilde

Skriv inn IP -adressen eller nettadressen fra dataplicity i området ovenfor.

Trinn 13:

Bilde
Bilde

Til slutt går du til intents -delen og aktiverer webhook -anropet fra oppfyllingsfanen.

Det er det! Gå tilbake til Google -hjemmet ditt og sjekk hvordan det fungerer!

Til neste gang, Happy Hacking:)

Anbefalt: