Gaukite „Google“namų ekraną naudodami „Raspberry Pi“ir „Dialogflow“(„Chromecast“alternatyva): 13 žingsnių
Gaukite „Google“namų ekraną naudodami „Raspberry Pi“ir „Dialogflow“(„Chromecast“alternatyva): 13 žingsnių
Anonim
Gaukite „Google“namų ekraną naudodami „Raspberry Pi“ir „Dialogflow“(„Chromecast“alternatyva)
Gaukite „Google“namų ekraną naudodami „Raspberry Pi“ir „Dialogflow“(„Chromecast“alternatyva)

Nuo tada, kai nusipirkau „Google“namus, norėjau valdyti savo įrenginius namuose naudodami balso komandas. Jis puikiai veikia visais atžvilgiais, bet man buvo blogai dėl jo vaizdo funkcijos. „Youtube“ir „Netflix“galime žiūrėti tik turėdami „Chromecast“įrenginį arba televizorių su integruota „Chromecast“funkcija. Turiu su savimi „Raspberry Pi“, todėl sugalvojau pasinaudoti juo norėdamas paleisti mėgstamus vaizdo įrašus ir filmus balso komandomis.

1 žingsnis:

Image
Image

Norėdami tai padaryti, aš padariau šią sąranką

„Google“pagrindinis puslapis -> Dialogflow -> Rpi IP adresas „Dataplicity“-> „Nodejs Server“-> URL atidarymo kodas

„Dialogflow“yra „Google“žmogaus ir kompiuterio sąveikos technologija, pagrįsta pokalbiais natūralia kalba. Tai padedant, galime sukurti savo pokalbius ar užduotis, kurios bus pateiktos kaip „Google“pagrindinis puslapis. Tai veikia taip

Tikslas [Įvestis, klausimas, pokalbis, komanda…] -> Pagrindinis „Google“puslapis -> veiksmas [atsakymas]

Čia atsakymas gali būti paprastas pokalbis arba duomenys, gauti iš „webhook“, kurį ketiname padaryti naudodami „Rpi“serverį. Taigi, eikite į „Dialogflow“svetainę ir sukurkite paskyrą bei naują agentą.

Tada sukurkite naują tikslą …

2 žingsnis:

Vaizdas
Vaizdas

Tada įveskite mokymo frazes. Tai komandos, kurias vartotojai kalba bandydami pasiekti konkrečią užduotį iš „Google Home“.

3 žingsnis:

Čia žodis „svetainė“gali būti pakeistas į viską, pvz., „YouTube“, „Netflix“, „Amazon Prime“ir tt

4 žingsnis:

Vaizdas
Vaizdas

Iš išskleidžiamojo meniu pasirinkite „@sys.any“ir paspauskite „Enter“.

5 žingsnis:

Vaizdas
Vaizdas

Tada veiksmų skiltyje įveskite tą patį parametro pavadinimą. Šiame skyriuje nurodytos vertės siunčiamos į „webhook“kaip JSON failas, kurį turime nuskaityti serveryje, kad žinotume, kurią svetainę naudotojas iškvietė.

Kintamojo vertė gaunama naudojant „$ variable_name“

6 žingsnis:

Vaizdas
Vaizdas

Pridėkite atsakymą, kurį turime išgirsti pasakę komandą „Google Home“. Tada išsaugokite ketinimą. Jei reikia, nustatykite šį ketinimą kaip pokalbio pabaigą.

7 žingsnis:

Dabar sukursime savo „back-end“paslaugą, kad gautume šias užklausas atidaryti vaizdo įrašus ir svetaines mūsų aviečių pi.

Likusi sąranka

Duomenų taikymas -> „Nodejs“serveris -> kodas

Kodėl mums reikia duomenų pritaikomumo? nes „Google Home“jungiasi prie žiniatinklio kabliukų, kurie yra prieinami internetu. Nors mūsų „GHome“yra prijungtas prie vietinio tinklo, užklausos gaunamos iš „Google“debesies paslaugos, todėl reikia perkelti mūsų serverį į internetą. Vietoj to galvos skausmo mes galime naudoti duomenų pritaikymo paslaugas, kad lengvai patalpintume savo aviečių pi internete.

Pirmiausia prisijunkite prie aviečių pi [tiesiogiai naudodami HDMI arba net naudodami SSh] Gaukite naujausią „nodejs“vykdymo laiką iš šios terminalo komandos.

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

Tada įdiekite jį naudodami

sudo apt -get install -y nodejs

Tada sukurkite naują failą

nano webserver.js

8 žingsnis:

Tada į failą įterpkite žemiau esantį kodą

Čia demonstracijai naudoju tik dvi svetaines (google, youtube). Galima redaguoti kodą ir atitinkamai pakeisti.

bodyParser = reikalauti („body-parser“); var exec = reikalauti („child_process“). exec; var express = reikalauti (‘express’); var app = express (); app.use (bodyParser.json ()); app.post ('/', funkcija (req, res) {tegul kintamasis = req.body.queryResult.parameters.website; exec („midori www.“+kintamasis+“. com“, funkcija (klaida, stdout, stderr) {console.log („stdout:„ + stdout); console.log („stderr:“+ stderr); if (error! == null) {console.log („exec klaida:„ + klaida “;}}); return res.end ();}); app.listen (80);

9 veiksmas:

Vaizdas
Vaizdas

Aukščiau pateiktas kodas buvo parašytas tik siekiant paaiškinti sąvoką. Kode naudojau „Midori“naršyklę, nes „chromium“neveikia su nuotolinėmis komandomis. Taip pat galime naudoti „Firefox“. [Prieš rašydami kodą, turime įdiegti kūno analizatorių, ekspreso modulius npm pagalba]

Atminkite, kad turėtume klausytis tik 80 prievado, nes duomenų pritaikomumas gali perduoti tik aviečių pi 80 prievadą.

Dabar turime nustatyti „Dataplicity“

Eikite į „Dataplicity“svetainę ir sukurkite savo paskyrą ir vadovaukitės instrukcijomis, kad prie informacijos suvestinės pridėtumėte aviečių pi.

10 veiksmas:

Vaizdas
Vaizdas

Po to atidarykite „Raspberry pi“iš įrenginių sąrašo ir pasirinkite kirmgraužą, kad gautumėte unikalų „Raspberry pi“IP adresą, kuriame galime įdiegti savo mazgų serverį.

Nukopijuokite IP adresą į iškarpinę.

11 veiksmas:

Vaizdas
Vaizdas

Dabar paleiskite kodą iš aviečių pi terminalo

sudo mazgas webserver.js

Jei rodoma kokia nors klaida dėl ekrano ar protokolų…. vykdyti

sudo xhost +

Dabar grįžkite į dialogo eigą ir spustelėkite įvykdymo skyrių

12 žingsnis:

Vaizdas
Vaizdas

Įveskite IP adresą arba URL iš duomenų pritaikymo aukščiau esančioje vietoje.

13 žingsnis:

Vaizdas
Vaizdas

Galiausiai eikite į ketinimų skiltį ir įjunkite „Webhook“skambutį iš įvykdymo skirtuko.

Viskas! Dabar grįžkite į „Google“pagrindinį puslapį ir patikrinkite, kaip jis veikia!

Iki kito karto, laimingas įsilaužimas:)

Rekomenduojamas: