Kazalo:

Pridobite zaslon za svoj Google Home z uporabo Raspberry Pi in Dialogflow (možnost Chromecast): 13 korakov
Pridobite zaslon za svoj Google Home z uporabo Raspberry Pi in Dialogflow (možnost Chromecast): 13 korakov

Video: Pridobite zaslon za svoj Google Home z uporabo Raspberry Pi in Dialogflow (možnost Chromecast): 13 korakov

Video: Pridobite zaslon za svoj Google Home z uporabo Raspberry Pi in Dialogflow (možnost Chromecast): 13 korakov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, December
Anonim
Pridobite zaslon za svoj Google Home z uporabo Raspberry Pi in Dialogflow (možnost Chromecast)
Pridobite zaslon za svoj Google Home z uporabo Raspberry Pi in Dialogflow (možnost Chromecast)

Odkar sem kupil svoj Googlov dom, sem želel doma upravljati svoje naprave z glasovnimi ukazi. Deluje odlično v vseh pogledih, vendar mi je bilo slabo zaradi njegove video funkcije. Youtube in Netflix si lahko ogledamo le, če imamo napravo Chromecast ali televizor z vgrajeno funkcijo Chromecast. S seboj imam Raspberry Pi, zato sem razmišljal, da bi ga uporabil za predvajanje svojih najljubših videoposnetkov in filmov z glasovnimi ukazi.

Korak 1:

Image
Image

Za to sem naredil naslednjo nastavitev

Google Home -> Dialogflow -> IP naslov IP na Dataplicity -> Nodejs Server -> Koda za odpiranje URL -jev

Dialogflow je Googlova tehnologija interakcije med človekom in računalnikom, ki temelji na pogovorih v naravnem jeziku. S pomočjo tega lahko razvijemo lastne pogovore ali naloge, ki jih lahko uporabimo kot Googlov dom. To deluje na naslednji način

Namen [vnos, vprašanje, pogovor, ukaz….] -> Googlova domača stran -> dejanje [odgovor]

Tu je lahko odgovor preprost pogovor ali pa podatki, pridobljeni s spletnega kljuka, ki ga bomo naredili s strežnikom Rpi. Zato pojdite na spletno mesto Dialogflow in ustvarite račun in novega agenta.

Nato ustvarite nov namen …

2. korak:

Slika
Slika

Nato vnesite stavke za usposabljanje. To so ukazi, ki jih uporabniki izgovorijo, ko poskušajo dostopati do določene naloge iz Googlove domače strani.

3. korak:

Tukaj lahko besedo "spletno mesto" spremenite v kar koli, na primer youtube, Netflix, amazon prime itd … Ta beseda deluje kot spremenljivka in ko izberete besedo spletno mesto [z miško], dobite naslednje

4. korak:

Slika
Slika

V spustnem meniju izberite »@sys.any« in pritisnite enter.

5. korak:

Slika
Slika

Nato v razdelek dejanja vnesite isto ime parametra. Vrednosti, omenjene v tem razdelku, se pošljejo webhooku kot datoteka JSON, ki jo moramo pridobiti v strežniku, da ugotovimo, na katero spletno mesto je uporabnik priklican.

Vrednost spremenljivke se pridobi z "$ variable_name"

6. korak:

Slika
Slika

Dodajte odgovor, ki ga moramo slišati, ko izgovorimo ukaz Googlovi domači strani. Nato shranite namen. Po potrebi nastavite ta namen kot konec pogovora.

7. korak:

Zdaj bomo vzpostavili našo zaledno storitev, da bodo te poizvedbe odprle videoposnetke in spletna mesta na naši malini pi.

Preostala nastavitev

Dataplicity -> Nodejs strežnik -> koda

Zakaj potrebujemo podatkovnost? ker se Google Home poveže s spletnimi kljukami, ki so dostopne prek interneta. Čeprav je naš GHome povezan z lokalnim omrežjem, poizvedbe prihajajo iz Googlove storitve v oblaku, zato je treba naš strežnik prenesti na internet. Namesto tega glavobola lahko uporabimo storitve podatkovnega števila, da z lahkoto postavimo naš malinov pi na internet.

Najprej se povežite z malinovim pi [neposredno prek HDMI-ja ali celo s SSh] Pridobite najnovejši čas delovanja nodejsa iz naslednjega ukaza v terminalu.

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

Nato ga namestite z uporabo

sudo apt -get install -y nodejs

Nato ustvarite novo datoteko

nano webserver.js

8. korak:

Nato v datoteko vstavite spodnjo kodo

Tukaj za predstavitev uporabljam samo dve spletni strani (google, youtube). Kodo lahko uredite in ustrezno spremenite.

bodyParser = zahteva ("razčlenjevalnik telesa"); var exec = zahteva ("podrejeni_proces"). exec; var express = zahteva ("ekspresno"); var app = express (); app.use (bodyParser.json ()); app.post ('/', funkcija (req, res) {naj spremenljivka = req.body.queryResult.parameters.website; exec ("midori www."+spremenljivka+". com", funkcija (napaka, stdout, stderr) {console.log (“stdout:“+ stdout); console.log (“stderr:“+ stderr); if (napaka! == null) {console.log (“napaka exec:“+ napaka);}}); vrni res.end ();}); app.listen (80);

9. korak:

Slika
Slika

Zgornja koda je bila napisana le za razlago koncepta. V kodi sem uporabil brskalnik Midori, saj krom ne deluje z ukazi na daljavo. Uporabljamo lahko tudi Firefox. [Pred pisanjem kode moramo namestiti razčlenjevalnik telesa, ekspresne module s pomočjo npm]

Ne pozabite, da bi morali poslušati le na vratih 80, saj lahko podatkovna množica posreduje samo vrata 80 maline pi.

Zdaj moramo nastaviti Dataplicity

Pojdite na spletno mesto Dataplicity in ustvarite svoj račun ter sledite navodilom za dodajanje maline pi na nadzorno ploščo.

10. korak:

Slika
Slika

Nato odprite raspberry pi s seznama naprav in izberite črvino, da dobite edinstven naslov IP za malino pi, na katerem lahko razmestimo strežnik vozlišč.

Kopirajte naslov IP v odložišče.

11. korak:

Slika
Slika

Zdaj zaženite kodo iz terminala raspberry pi

sudo vozlišče webserver.js

Če prikaže kakšno napako glede prikaza ali protokolov…. izvršiti

sudo xhost +

Zdaj se vrnite na dialogflow in kliknite razdelek o izpolnitvi

12. korak:

Slika
Slika

V zgornji prostor vnesite naslov IP ali URL iz podatkovne množice.

13. korak:

Slika
Slika

Nazadnje pojdite na razdelek namere in omogočite klic webhook na zavihku izpolnitev.

To je to! Zdaj se vrnite na svoj google dom in preverite, kako deluje!

Do naslednjič, Happy Hacking:)

Priporočena: