Съдържание:
- Етап 1:
- Стъпка 2:
- Стъпка 3:
- Стъпка 4:
- Стъпка 5:
- Стъпка 6:
- Стъпка 7:
- Стъпка 8:
- Стъпка 9:
- Стъпка 10:
- Стъпка 11:
- Стъпка 12:
- Стъпка 13:
Видео: Вземете екран за вашия дом в Google, използвайки Raspberry Pi и Dialogflow (алтернатива на Chromecast): 13 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Откакто купих дома си в Google, исках да контролирам устройствата си у дома с помощта на гласови команди. Той работи страхотно по всякакъв начин, но се чувствах зле за неговата видео функция. Можем да гледаме Youtube и Netflix само ако имаме устройство с Chromecast или телевизор с вградена функция Chromecast. Имам Raspberry Pi с мен, затова реших да го използвам за възпроизвеждане на любимите ми видеоклипове и филми с гласови команди.
Етап 1:
За целта направих следната настройка
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:)
Препоръчано:
Вземете HDMI изход от вашия Rock64 с помощта на Armbian: 15 стъпки
Вземете HDMI изход от вашия Rock64 с помощта на Armbian: Вероятно сте тук, след като Google потърси " Rock64 без hdmi изход " или ви насочи в тази посока. Или може би се чудите как да използвате екрана с размери 16 x 2, който идва с покупка, която изглеждаше като добра истина: " За $ 10-$ 20, Sing
Raspberry Pi като Chromecast алтернатива (Raspicast): 10 стъпки (със снимки)
Raspberry Pi като Chromecast алтернатива (Raspicast): В тази инструкция ще ви покажа как да използвате raspberry pi 3 като алтернатива на Chromecast. Заслужава да се спомене, че това не е директен клонинг на Chromecast и че има ограничения. Този метод не поддържа бутона за предаване, но
Сензорен екран за семейна синхронизация и домашен контролен панел със сензорен екран: 7 стъпки (със снимки)
Сензорен сензорен панел за семейно синхронизиране и домашен контролен панел: Имаме календар, който се актуализира ежемесечно със събития, но се извършва ръчно. Ние също сме склонни да забравяме неща, които сме свършили или други дребни задължения. На тази възраст си мислех, че е много по -лесно да има синхронизиран календар и система от тип бележник, която да
Контролни светлини във вашия дом с вашия компютър: 3 стъпки (със снимки)
Контролирайте светлините във вашия дом с вашия компютър: Искали ли сте някога да управлявате осветлението в дома си от вашия компютър? Всъщност е доста достъпно да го направите. Можете дори да управлявате спринклерни системи, автоматични щори за прозорци, моторизирани прожекционни екрани и т.н. Имате нужда от две парчета хардуер
Вземете класически екран за влизане в Windows Vista: 4 стъпки
Вземете класически екран за влизане в Windows Vista: Приветственият екран, показващ всички потребители, е въведен в Windows XP за удобство на потребителите. Опцията да го промените обратно на по -сигурния, класически екран за влизане беше възможна от контролния панел. Това беше премахнато от опциите на Vista, но аз