Съдържание:

Вземете екран за вашия дом в Google, използвайки Raspberry Pi и Dialogflow (алтернатива на Chromecast): 13 стъпки
Вземете екран за вашия дом в Google, използвайки Raspberry Pi и Dialogflow (алтернатива на Chromecast): 13 стъпки

Видео: Вземете екран за вашия дом в Google, използвайки Raspberry Pi и Dialogflow (алтернатива на Chromecast): 13 стъпки

Видео: Вземете екран за вашия дом в Google, използвайки Raspberry Pi и Dialogflow (алтернатива на Chromecast): 13 стъпки
Видео: $5 WiFi Camera Setup | ESP32 Wifi Setup view on Mobile phone 2024, Ноември
Anonim
Вземете екран за вашия дом в Google с помощта на Raspberry Pi и Dialogflow (алтернатива на Chromecast)
Вземете екран за вашия дом в Google с помощта на Raspberry Pi и Dialogflow (алтернатива на Chromecast)

Откакто купих дома си в Google, исках да контролирам устройствата си у дома с помощта на гласови команди. Той работи страхотно по всякакъв начин, но се чувствах зле за неговата видео функция. Можем да гледаме Youtube и Netflix само ако имаме устройство с Chromecast или телевизор с вградена функция Chromecast. Имам Raspberry Pi с мен, затова реших да го използвам за възпроизвеждане на любимите ми видеоклипове и филми с гласови команди.

Етап 1:

Image
Image

За целта направих следната настройка

Google Home -> Dialogflow -> Rpi IP адрес на Dataplicity -> Nodejs Server -> Код за отваряне на URL адреси

Dialogflow е технология на Google за взаимодействие човек-компютър, базирана на разговори на естествен език. С помощта на това можем да разработим наши собствени разговори или задачи, които да дадем като вход към началната страница на Google. Това работи по следния начин

Намерение [Въвеждане, въпрос, разговор, команда….] -> Начална страница на Google -> действие [отговор]

Тук отговорът може да бъде или обикновен разговор, или данни, извлечени от webhook, които ще направим с помощта на Rpi сървър. Така че, отидете на уебсайта на Dialogflow и създайте акаунт и нов агент.

След това създайте ново намерение …

Стъпка 2:

Образ
Образ

След това въведете фразите за обучение. Това са командите, които потребителите произнасят, когато се опитват да получат достъп до определена задача от началната страница на Google.

Стъпка 3:

Тук думата „уебсайт“може да бъде променена на нещо като youtube, Netflix, amazon prime и т.н. … И така, тази дума действа като променлива и когато изберете думата уебсайт [с помощта на мишката] получавате следното

Стъпка 4:

Образ
Образ

От падащото меню изберете „@sys.any“и натиснете enter.

Стъпка 5:

Образ
Образ

След това въведете същото име на параметъра в секцията за действия. Стойностите, споменати в този раздел, се изпращат до webhook като JSON файл, който трябва да извлечем в сървъра, за да знаем кой уебсайт е извикал потребителят.

Стойността на променлива се извлича с помощта на „$ variable_name“

Стъпка 6:

Образ
Образ

Добавете отговора, който трябва да чуем, след като изречем командата на Google Home. След това запазете намерението. Ако е необходимо, задайте това намерение като край на разговора.

Стъпка 7:

Сега ще настроим нашата back-end услуга, за да накараме тези заявки да отварят видеоклипове и уебсайтове на нашето малиново пи.

Останалата настройка

Dataplicity -> Nodejs сървър -> код

Защо се нуждаем от простота на данните? защото Google Home се свързва с webhooks, които са достъпни по интернет. Въпреки че нашият GHome е свързан с локалната мрежа, заявките идват от облачната услуга на Google и следователно има нужда от пренасяне на нашия сървър в интернет. Вместо това главоболие, можем да използваме услуги за поддръжка на данни, за да поставим нашето малиново пи в интернет с лекота.

Първо, свържете се с малиновото пи [директно с HDMI или дори със SSh] Вземете най-новия работен час на nodejs от следната команда в терминала.

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

След това го инсталирайте с помощта

sudo apt -get install -y nodejs

След това създайте нов файл

nano webserver.js

Стъпка 8:

След това вмъкнете кода по -долу във файла

Тук за демонстрация използвам само два уебсайта (google, youtube). Човек може да редактира кода и да го промени съответно.

bodyParser = require (‘body-parser’); var exec = require (‘child_process’). exec; var express = require (‘express’); var app = express (); app.use (bodyParser.json ()); app.post ('/', функция (req, res) {нека променлива = req.body.queryResult.parameters.website; exec („midori www.“+променлива+”. com“, функция (грешка, stdout, stderr) {console.log (“stdout:“+ stdout); console.log (“stderr:“+ stderr); if (грешка! == null) {console.log (“exec грешка:“+ грешка);}}); връщане res.end ();}); app.listen (80);

Стъпка 9:

Образ
Образ

Горният код е написан само за да обясни концепцията. Използвах браузъра Midori в кода, тъй като chromium не работи с отдалечени команди. Можем да използваме и Firefox. [Трябва да инсталираме body-parser, express модули с помощта на npm, преди да напишем кода]

Не забравяйте, че трябва да слушаме само на порт 80, тъй като числото данни може да препраща само порт 80 на малиновото пи.

Сега трябва да настроим Dataplicity

Отидете на уебсайта на Dataplicity и създайте своя акаунт и следвайте инструкциите, за да добавите малиновото пи към таблото за управление.

Стъпка 10:

Образ
Образ

След това отворете raspberry pi от списъка с устройства и изберете wormhole, за да получите уникален IP адрес за raspberry pi, на който можем да разположим нашия node сървър.

Копирайте IP адреса в клипборда.

Стъпка 11:

Образ
Образ

Сега стартирайте кода от терминала raspberry pi

sudo възел webserver.js

Ако показва някаква грешка относно дисплея или относно протоколите …. изпълни

sudo xhost +

Сега се върнете към диалоговия поток и кликнете върху секцията за изпълнение

Стъпка 12:

Образ
Образ

Въведете IP адреса или URL адреса от броя данни в горното пространство.

Стъпка 13:

Образ
Образ

Накрая отидете в раздела за намерения и активирайте извикването на webhook от раздела за изпълнение.

Това е! Сега се върнете в началната си страница в Google и проверете как работи!

До следващия път, Happy Hacking:)

Препоръчано: