Obsah:

Získejte obrazovku pro svůj domov Google pomocí Raspberry Pi a Dialogflow (alternativa Chromecastu): 13 kroků
Získejte obrazovku pro svůj domov Google pomocí Raspberry Pi a Dialogflow (alternativa Chromecastu): 13 kroků

Video: Získejte obrazovku pro svůj domov Google pomocí Raspberry Pi a Dialogflow (alternativa Chromecastu): 13 kroků

Video: Získejte obrazovku pro svůj domov Google pomocí Raspberry Pi a Dialogflow (alternativa Chromecastu): 13 kroků
Video: Raspberry Pi 400 Unboxing / Review - Ultra Cheap $70 Budget PC for School Students? 2024, Listopad
Anonim
Získejte obrazovku pro svůj domov Google pomocí Raspberry Pi a Dialogflow (alternativa Chromecastu)
Získejte obrazovku pro svůj domov Google pomocí Raspberry Pi a Dialogflow (alternativa Chromecastu)

Od chvíle, kdy jsem si koupil svůj domov Google, jsem chtěl ovládat svá zařízení doma pomocí hlasových příkazů. Funguje to úžasně ve všech směrech, ale cítil jsem se špatně kvůli jeho funkci videa. Můžeme sledovat Youtube a Netflix, pouze pokud máme zařízení Chromecast nebo TV s integrovanou funkcí Chromecast. Mám s sebou Raspberry Pi, tak mě napadlo využít ho k přehrávání mých oblíbených videí a filmů pomocí hlasových příkazů.

Krok 1:

Image
Image

Za tímto účelem jsem provedl následující nastavení

Domovská stránka Google -> Dialogflow -> IP adresa Rpi na Dataplicity -> Server Nodejs -> Kód pro otevření adres URL

Dialogflow je technologie interakce člověka s počítačem společnosti Google založená na konverzacích v přirozeném jazyce. S pomocí tohoto můžeme vyvíjet vlastní konverzace nebo úkoly, které budou sloužit jako vstup do domova Google. Funguje to následovně

Záměr [Vstup, otázka, konverzace, příkaz….] -> Domovská stránka Google -> akce [odpověď]

Zde může být odpovědí buď jednoduchá konverzace, nebo jiná data načtená z webhooku, který se chystáme provést pomocí serveru Rpi. Přejděte tedy na web Dialogflow a vytvořte si účet a nového agenta.

Pak vytvořte nový záměr….

Krok 2:

obraz
obraz

Poté zadejte cvičné fráze. Toto jsou příkazy, které uživatelé vyslovují při pokusu o přístup ke konkrétnímu úkolu z domovské stránky Google.

Krok 3:

Zde lze slovo „web“změnit na cokoli, jako je youtube, Netflix, amazon prime atd … Toto slovo tedy funguje jako proměnná a když vyberete slovo web [pomocí myši], získáte následující

Krok 4:

obraz
obraz

V rozevírací nabídce vyberte možnost „@sys.any“a stiskněte klávesu Enter.

Krok 5:

obraz
obraz

Poté zadejte stejný název parametru do sekce akcí. Hodnoty zmíněné v této části jsou odeslány na webhook jako soubor JSON, který potřebujeme načíst na serveru, abychom věděli, na který web má uživatel vyvoláno.

Hodnota proměnné se načte pomocí ‘$ variable_name’

Krok 6:

obraz
obraz

Přidejte odpověď, kterou potřebujeme slyšet po vyslovení příkazu na domovskou stránku Google. Pak uložte záměr. V případě potřeby nastavte tento záměr jako konec konverzace.

Krok 7:

Nyní nastavíme naši back-endovou službu, abychom tyto dotazy mohli otevírat videa a weby na našem malinovém pi.

Zbývající nastavení

Dataplicity -> Nodejs server -> kód

Proč potřebujeme datovou jednoduchost? protože Google Home se připojuje k webhookům, které jsou přístupné přes internet. Přestože je náš GHome připojen k místní síti, dotazy pocházejí z cloudové služby Google, a proto je potřeba přenést náš server na internet. Namísto této bolesti hlavy můžeme použít služby dataplicity a snadno umístit naše malinové pi na internet.

Nejprve se připojte k Raspberry Pi [přímo pomocí HDMI nebo dokonce pomocí SSh] Získejte nejnovější běh nodejs z následujícího příkazu v terminálu.

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

Poté jej nainstalujte pomocí

sudo apt -get install -y nodejs

Poté vytvořte nový soubor

nano webserver.js

Krok 8:

Potom do souboru vložte níže uvedený kód

Zde pro demonstraci používám pouze dva weby (google, youtube). Jeden může upravit kód a odpovídajícím způsobem změnit.

bodyParser = require (‘body-parser’); var exec = require (‘child_process’). exec; var express = require (‘expres’); var aplikace = 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);}})); vrátit res.end ();}); app.listen (80);

Krok 9:

obraz
obraz

Výše uvedený kód byl napsán pouze za účelem vysvětlení konceptu. V kódu jsem použil prohlížeč Midori, protože chrom nefunguje se vzdálenými příkazy. Můžeme také použít Firefox. [Před napsáním kódu musíme nainstalovat body-parser, expresní moduly pomocí npm]

Pamatujte, že bychom měli poslouchat pouze na portu 80, protože dataplicity může předávat pouze port 80 malinového pi.

Nyní musíme nastavit Dataplicity

Přejděte na web Dataplicity, vytvořte si účet a podle pokynů přidejte malinový pi na hlavní panel.

Krok 10:

obraz
obraz

Poté otevřete Raspberry Pi ze seznamu zařízení a vyberte červí díru, abyste získali jedinečnou IP adresu pro Raspberry Pi, na kterou můžeme nasadit náš uzlový server.

Zkopírujte IP adresu do schránky.

Krok 11:

obraz
obraz

Nyní spusťte kód z terminálu Raspberry Pi

sudo node webserver.js

Pokud ukazuje nějakou chybu ohledně displeje nebo protokolů…. vykonat

sudo xhost +

Nyní se vraťte do dialogového okna a klikněte na sekci plnění

Krok 12:

obraz
obraz

Do výše uvedeného pole zadejte IP adresu nebo URL z datové jednoduchosti.

Krok 13:

obraz
obraz

Nakonec přejděte do sekce záměrů a povolte volání webhooku z karty plnění.

A je to! Nyní se vraťte do svého domova Google a zkontrolujte, jak funguje!

Do příště, Happy Hacking:)

Doporučuje: