Sadržaj:

Nabavite zaslon za svoj Google Home koristeći Raspberry Pi i Dialogflow (Chromecast alternativa): 13 koraka
Nabavite zaslon za svoj Google Home koristeći Raspberry Pi i Dialogflow (Chromecast alternativa): 13 koraka

Video: Nabavite zaslon za svoj Google Home koristeći Raspberry Pi i Dialogflow (Chromecast alternativa): 13 koraka

Video: Nabavite zaslon za svoj Google Home koristeći Raspberry Pi i Dialogflow (Chromecast alternativa): 13 koraka
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Srpanj
Anonim
Nabavite zaslon za svoj Google Home koristeći Raspberry Pi i Dialogflow (Chromecast alternativa)
Nabavite zaslon za svoj Google Home koristeći Raspberry Pi i Dialogflow (Chromecast alternativa)

Otkad sam kupio svoj Google dom, želio sam kontrolirati svoje uređaje kod kuće pomoću glasovnih naredbi. Radi odlično u svakom pogledu, ali osjećao sam se loše zbog svoje video značajke. Youtube i Netflix možemo gledati samo ako imamo Chromecast uređaj ili televizor s ugrađenom značajkom Chromecast. Sa sobom imam Raspberry Pi pa sam ga pomislio iskoristiti za reprodukciju svojih omiljenih video zapisa i filmova s glasovnim naredbama.

Korak 1:

Image
Image

Za to sam napravio sljedeće postavljanje

Google Home -> Dialogflow -> Rpi IP adresa na Dataplicity -> Nodejs poslužitelj -> Kôd za otvaranje URL -ova

Dialogflow je google-ova tehnologija interakcije čovjek-računalo koja se temelji na razgovorima na prirodnom jeziku. Pomoću toga možemo razviti vlastite razgovore ili zadatke koje ćemo dati kao doprinos Googleovoj početnoj stranici. Ovo funkcionira na sljedeći način

Namjera [Unos, pitanje, razgovor, naredba….] -> Google početna -> radnja [odgovor]

Ovdje odgovor može biti jednostavan razgovor ili podaci dohvaćeni s web -huka, što ćemo napraviti pomoću Rpi poslužitelja. Dakle, idite na web mjesto Dialogflow i stvorite račun i novog agenta.

Zatim stvorite novu namjeru …

Korak 2:

Slika
Slika

Zatim unesite izraze za obuku. Ovo su naredbe koje korisnici izgovaraju kada pokušaju pristupiti određenom zadatku s Google Homea.

3. korak:

Ovdje se riječ 'web stranica' može promijeniti u bilo što poput youtube, Netflix, amazon prime itd … Dakle, ova riječ djeluje kao varijabla i kada odaberete riječ web stranica [pomoću miša] dobivate sljedeće

Korak 4:

Slika
Slika

Na padajućem izborniku odaberite "@sys.any" i pritisnite enter.

5. korak:

Slika
Slika

Zatim unesite isti naziv parametra u odjeljak radnje. Vrijednosti navedene u ovom odjeljku šalju se webhooku kao JSON datoteka, koju moramo dohvatiti na poslužitelju kako bismo znali na koju se web stranicu korisnik pozvao.

Vrijednost varijable dohvaća se pomoću "$ variable_name"

Korak 6:

Slika
Slika

Dodajte odgovor koji moramo čuti nakon izgovaranja naredbe Google Homeu. Zatim spremite namjeru. Ako je potrebno, postavite ovu namjeru kao kraj razgovora.

Korak 7:

Sada ćemo postaviti našu pozadinsku uslugu kako bismo te upite otvorili videozapise i web stranice na našem maline pi.

Preostalo postavljanje

Dataplicity -> Nodejs poslužitelj -> kod

Zašto nam je potrebna podatkovna dostupnost? jer se Google Home povezuje s web dojavnicima koji su dostupni putem interneta. Iako je naš GHome povezan s lokalnom mrežom, upiti dolaze s Googleove usluge u oblaku, pa postoji potreba za prijenos našeg poslužitelja na internet. Umjesto te glavobolje, možemo koristiti usluge dataplicity usluga da s lakoćom stavimo našu malinu pi na internet.

Prvo se povežite s malinom pi [izravno s HDMI-om ili čak sa SSh-om] Nabavite najnovije vrijeme izvođenja nodejsa iz sljedeće naredbe u terminalu.

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

Zatim ga instalirajte pomoću

sudo apt -get install -y nodejs

Zatim stvorite novu datoteku

nano webserver.js

Korak 8:

Zatim umetnite donji kod u datoteku

Ovdje za demonstraciju koristim samo dvije web stranice (google, youtube). Kôd se može urediti i shodno tome promijeniti.

bodyParser = zahtijevaju ('body-parser'); var exec = zahtijevaju ('child_process'). exec; var express = zahtijevati ('izraziti'); var app = express (); app.use (bodyParser.json ()); app.post ('/', funkcija (req, res) {neka varijabla = req.body.queryResult.parameters.website; exec ("midori www."+varijabla+". com", funkcija (pogreška, stdout, stderr) {console.log ("stdout:" + stdout); console.log ("stderr:" + stderr); if (pogreška! == null) {console.log ("exec greška:" + pogreška);}}); vrati res.end ();}); app.listen (80);

Korak 9:

Slika
Slika

Gornji kôd napisan je samo radi objašnjenja koncepta. U kodu sam koristio preglednik Midori jer krom ne radi s daljinskim naredbama. Možemo koristiti i Firefox. [Moramo instalirati body-parser, express module uz pomoć npm prije pisanja koda]

Upamtite da bismo trebali slušati samo na portu 80 jer broj podataka može proslijediti samo port 80 malinovog pi.

Sada moramo postaviti Dataplicity

Idite na web mjesto Dataplicity i stvorite svoj račun te slijedite upute za dodavanje maline pi na nadzornu ploču.

10. korak:

Slika
Slika

Nakon toga otvorite malinu pi s popisa uređaja i odaberite crvotočina kako biste dobili jedinstvenu IP adresu za malinu pi na koju možemo postaviti naš poslužitelj čvorova.

Kopirajte IP adresu u međuspremnik.

11. korak:

Slika
Slika

Sada pokrenite kod s malinovog pi terminala

sudo čvor webserver.js

Ako prikazuje bilo kakvu pogrešku u vezi prikaza ili protokola…. izvršiti

sudo xhost +

Sada se vratite na tok dijaloga i kliknite odjeljak ispunjenja

Korak 12:

Slika
Slika

Unesite IP adresu ili URL iz broja podataka u gornji prostor.

Korak 13:

Slika
Slika

Na kraju, idite na odjeljak namjere i omogućite poziv webhook s kartice ispunjenja.

To je to! Sada se vratite na svoju Google stranicu i provjerite kako to radi!

Do sljedećeg puta, sretno hakiranje:)

Preporučeni: