Obsah:

Získajte obrazovku pre svoj domov Google pomocou Raspberry Pi a Dialogflow (alternatíva Chromecastu): 13 krokov
Získajte obrazovku pre svoj domov Google pomocou Raspberry Pi a Dialogflow (alternatíva Chromecastu): 13 krokov

Video: Získajte obrazovku pre svoj domov Google pomocou Raspberry Pi a Dialogflow (alternatíva Chromecastu): 13 krokov

Video: Získajte obrazovku pre svoj domov Google pomocou Raspberry Pi a Dialogflow (alternatíva Chromecastu): 13 krokov
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, December
Anonim
Získajte obrazovku pre svoj domov Google pomocou Raspberry Pi a Dialogflow (alternatíva Chromecastu)
Získajte obrazovku pre svoj domov Google pomocou Raspberry Pi a Dialogflow (alternatíva Chromecastu)

Odkedy som si kúpil svoj dom Google, túžim ovládať svoje zariadenia doma pomocou hlasových príkazov. Funguje to úžasne vo všetkých smeroch, ale cítil som zlý pocit z jeho funkcie videa. Youtube a Netflix môžeme sledovať iba vtedy, ak máme zariadenie alebo televízor Chromecast so vstavanou funkciou Chromecast. Mám so sebou Raspberry Pi, a tak ma napadlo využiť ho na prehrávanie obľúbených videí a filmov pomocou hlasových povelov.

Krok 1:

Image
Image

Za týmto účelom som urobil nasledujúce nastavenie

Domovská stránka Google -> Dialogflow -> IP adresa Rpi na serveri Dataplicity -> Server Nodejs -> Kód na otváranie adries URL

Dialogflow je technológia interakcie človeka s počítačom spoločnosti Google založená na konverzáciách v prirodzenom jazyku. S pomocou toho môžeme rozvíjať svoje vlastné konverzácie alebo úlohy, ktoré by mohli slúžiť ako vstup do domova Google. Funguje to nasledovne

Zámer [Vstup, otázka, konverzácia, príkaz….] -> Domovská stránka Google -> akcia [odpoveď]

Tu môže byť odpoveďou buď jednoduchá konverzácia, alebo iné údaje získané z webhooku, ktorý vytvoríme pomocou servera Rpi. Prejdite na webovú stránku Dialogflow a vytvorte si účet a nového agenta.

Potom vytvorte nový zámer …

Krok 2:

Obrázok
Obrázok

Potom zadajte cvičné frázy. Toto sú príkazy, ktoré používatelia vyslovujú pri pokuse o prístup k konkrétnej úlohe z domova Google.

Krok 3:

Tu je možné slovo „webová stránka“zmeniť na čokoľvek ako youtube, Netflix, amazon prime atď … Toto slovo teda funguje ako premenná a keď vyberiete slovo webová stránka [pomocou myši], získate nasledujúce

Krok 4:

Obrázok
Obrázok

V rozbaľovacej ponuke vyberte možnosť „@sys.any“a stlačte kláves Enter.

Krok 5:

Obrázok
Obrázok

Potom zadajte rovnaký názov parametra do sekcie akcií. Hodnoty uvedené v tejto časti sú odoslané do webhooku ako súbor JSON, ktorý musíme načítať na serveri, aby sme vedeli, na ktoré webové stránky sa používateľ odvolal.

Hodnota premennej sa získa pomocou „$ variable_name“

Krok 6:

Obrázok
Obrázok

Pridajte odpoveď, ktorú musíme počuť po vyslovení príkazu domovskej stránke Google. Potom uložte zámer. V prípade potreby nastavte tento zámer ako koniec konverzácie.

Krok 7:

Teraz nastavíme našu službu typu back-end, aby sme mohli tieto dotazy otvárať videá a webové stránky na našom Raspberry Pi.

Zostávajúce nastavenie

Dataplicity -> Server Nodejs -> kód

Prečo potrebujeme dátovú jednoduchosť? pretože Google Home sa pripája k webhookom, ktoré sú prístupné cez internet. Aj keď je náš GHome pripojený k lokálnej sieti, dotazy pochádzajú z cloudovej služby Google, a preto je potrebné portovať náš server na internet. Namiesto tejto bolesti hlavy môžeme použiť služby dataplicity a ľahko umiestniť naše malinové pi na internet.

Najprv sa pripojte k malinovému pi [priamo pomocou HDMI alebo dokonca pomocou SSh] Získajte najnovšiu dobu behu nodejs z nasledujúceho príkazu v termináli.

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

Potom ho nainštalujte pomocou

sudo apt -get install -y nodejs

Potom vytvorte nový súbor

nano webserver.js

Krok 8:

Potom vložte do súboru nasledujúci kód

Tu na ukážku používam iba dva webové stránky (google, youtube). Kód je možné upraviť a podľa toho zmeniť.

bodyParser = require ('body-parser'); var exec = require ('child_process'). exec; var expres = vyžadovať („expres“); var aplikácia = expres (); 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);}})); vrátiť res.end ();}); app.listen (80);

Krok 9:

Obrázok
Obrázok

Vyššie uvedený kód bol napísaný iba na vysvetlenie konceptu. V kóde som použil prehliadač Midori, pretože chróm nefunguje so vzdialenými príkazmi. Môžeme použiť aj Firefox. [Pred napísaním kódu musíme nainštalovať body-parser, expresné moduly pomocou NPM]

Pamätajte si, že by sme mali počúvať iba na porte 80, pretože dataplicity môže posielať iba port 80 malinového pi.

Teraz musíme nastaviť Dataplicity

Prejdite na webovú stránku Dataplicity, vytvorte si účet a podľa pokynov pridajte malinový pi na hlavný panel.

Krok 10:

Obrázok
Obrázok

Potom otvorte Raspberry pi zo zoznamu zariadení a vyberte červiu dieru, aby ste získali jedinečnú IP adresu pre Raspberry Pi, na ktorú môžeme nasadiť náš uzlový server.

Skopírujte IP adresu do schránky.

Krok 11:

Obrázok
Obrázok

Teraz spustite kód z terminálu malinového pi

sudo node webserver.js

Ak zobrazuje akúkoľvek chybu o displeji alebo o protokoloch…. popraviť

sudo xhost +

Teraz sa vráťte do dialógového okna a kliknite na sekciu plnenia

Krok 12:

Obrázok
Obrázok

Do vyššie uvedeného priestoru zadajte IP adresu alebo URL z údajov.

Krok 13:

Obrázok
Obrázok

Nakoniec prejdite do sekcie zámerov a povoľte volanie webhooku z karty plnenia.

To je všetko! Teraz sa vráťte do svojho domova Google a skontrolujte, ako funguje!

Do nabudúce Šťastné hackovanie:)

Odporúča: