فهرست مطالب:

با استفاده از Raspberry Pi و Dialogflow (Chromecast Alternative) یک صفحه برای Google Home خود دریافت کنید: 13 مرحله
با استفاده از Raspberry Pi و Dialogflow (Chromecast Alternative) یک صفحه برای Google Home خود دریافت کنید: 13 مرحله
Anonim
با استفاده از Raspberry Pi و Dialogflow یک صفحه برای Google Home خود دریافت کنید (Chromecast Alternative)
با استفاده از Raspberry Pi و Dialogflow یک صفحه برای Google Home خود دریافت کنید (Chromecast Alternative)

از زمانی که خانه Google خود را خریداری کردم ، می خواهم دستگاه های خود را در خانه با استفاده از دستورات صوتی کنترل کنم. از هر نظر عالی کار می کند ، اما از نظر ویژگی ویدیویی آن احساس بدی داشتم. تنها در صورتی می توانیم Youtube و Netflix را تماشا کنیم که دستگاه Chromecast یا تلویزیونی با ویژگی Chromecast داخلی داریم. من یک Raspberry Pi با خود دارم ، بنابراین فکر کردم از آن برای پخش فیلم ها و فیلم های مورد علاقه خود با دستورات صوتی استفاده کنم.

مرحله 1:

Image
Image

برای این کار ، تنظیمات زیر را انجام دادم

Google Home -> Dialogflow -> آدرس IP Rpi در Dataplicity -> Nodejs Server -> کد برای باز کردن آدرس های اینترنتی

Dialogflow یک فناوری تعامل انسان و رایانه گوگل است که بر اساس مکالمات زبان طبیعی است. با کمک این ، ما می توانیم مکالمات یا وظایف خود را توسعه دهیم تا به عنوان ورودی به Google home ارائه شود. این به شرح زیر عمل می کند

قصد [ورودی ، س questionال ، گفتگو ، فرمان….] -> Google Home -> اقدام [پاسخ]

در اینجا ، پاسخ می تواند یک مکالمه ساده باشد یا داده های دیگری از یک webhook بازیابی شود ، که ما قصد داریم با استفاده از سرور Rpi انجام دهیم. بنابراین ، به وب سایت Dialogflow بروید و یک حساب کاربری و نماینده جدید ایجاد کنید.

سپس یک هدف جدید ایجاد کنید….

گام 2:

تصویر
تصویر

سپس عبارت های آموزشی را وارد کنید. اینها دستوراتی هستند که کاربران هنگام تلاش برای دسترسی به یک کار خاص از Google Home صحبت می کنند.

مرحله 3:

در اینجا ، کلمه "وب سایت" را می توان به هر چیزی مانند youtube ، Netflix ، amazon prime و غیره تغییر داد … بنابراین ، این کلمه به عنوان یک متغیر عمل می کند و وقتی کلمه وب سایت را [با استفاده از ماوس] انتخاب می کنید ، موارد زیر را دریافت می کنید.

مرحله 4:

تصویر
تصویر

از منوی کشویی ، "@sys.any" را انتخاب کرده و Enter را فشار دهید.

مرحله 5:

تصویر
تصویر

سپس همان نام پارامتر را در قسمت اقدامات وارد کنید. مقادیر ذکر شده در این بخش به عنوان یک فایل JSON به webhook ارسال می شوند ، که باید آنها را در سرور بازیابی کنیم تا بدانیم کاربر از کدام وب سایت درخواست کرده است.

مقدار یک متغیر با استفاده از "$ variable_name" بازیابی می شود

مرحله 6:

تصویر
تصویر

پاسخی را که باید بعد از گفتن فرمان به Google Home بشنویم ، اضافه کنید. سپس قصد را ذخیره کنید. در صورت نیاز این نیت را پایان گفتگو قرار دهید.

مرحله 7:

اکنون ما سرویس پشتیبان خود را تنظیم می کنیم تا این درخواست ها را برای باز کردن فیلم ها و وب سایت ها در تمشک pi خود دریافت کنیم.

تنظیمات باقی مانده

Dataplicity -> سرور Nodejs -> کد

چرا ما نیاز به استفاده از داده داریم؟ زیرا Google Home به قلاب های وب متصل می شود که از طریق اینترنت قابل دسترسی هستند. حتی اگر GHome ما به شبکه محلی متصل باشد ، درخواست ها از سرویس ابری Google ارائه می شود و بنابراین ، نیاز به انتقال سرور ما به اینترنت وجود دارد. به جای آن سردرد ، می توانیم از خدمات dataplicity برای قرار دادن تمشک pi خود در اینترنت به راحتی استفاده کنیم.

ابتدا ، به تمشک pi متصل شوید [مستقیماً با 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").ecec؛ var express = نیاز ("بیان") ؛ var app = express ()؛ app.use (bodyParser.json ()) ؛ app.post ('/' ، تابع (req، res) {let variable = req.body.queryResult.parameters.website؛ exec ("midori www."+متغیر+". com" ، تابع (خطا ، stdout ، stderr) {console.log ("stdout:" + stdout)؛ console.log ("stderr:" + stderr)؛ if (error! == null) {console.log ("Error Errror:" + error)؛}}) ؛ بازگشت res.end ()؛})؛ app.listen (80) ؛

مرحله 9:

تصویر
تصویر

کد بالا فقط برای توضیح مفهوم نوشته شده است. من از مرورگر Midori در کد استفاده کردم زیرا کروم با دستورات از راه دور کار نمی کند. ما می توانیم از فایرفاکس نیز استفاده کنیم. [ما باید قبل از نوشتن کد ، ماژول های body-parser ، express را با کمک npm نصب کنیم]

به یاد داشته باشید که ما فقط باید در پورت 80 گوش دهیم زیرا قابلیت استفاده از داده می تواند فقط پورت 80 رزبری pi را ارسال کند.

اکنون ما باید Dataplicity را راه اندازی کنیم

به وب سایت Dataplicity بروید و حساب خود را ایجاد کرده و دستورالعمل های مربوط به افزودن raspberry pi به داشبورد را دنبال کنید.

مرحله 10:

تصویر
تصویر

پس از آن ، pi raspberry pi را از لیست دستگاه ها باز کرده و wormhole را انتخاب کنید تا یک آدرس IP منحصر به فرد برای رزبری pi دریافت کنید که می توانیم روی آن سرور گره خود را مستقر کنیم.

آدرس IP را در کلیپ بورد کپی کنید.

مرحله 11:

تصویر
تصویر

حالا کد را از پایانه تمشک pi اجرا کنید

sudo node webserver.js

اگر خطایی در مورد صفحه نمایش یا پروتکل ها نشان می دهد…. اجرا کردن

sudo xhost +

اکنون به dialogflow بازگردید و روی قسمت اجرای کلیک کنید

مرحله 12:

تصویر
تصویر

آدرس IP یا نشانی اینترنتی مربوط به dataplicity را در فضای بالا وارد کنید.

مرحله 13:

تصویر
تصویر

در نهایت ، به قسمت intents بروید و تماس زنجیره ای webhook را از برگه اجرای برنامه فعال کنید.

خودشه! اکنون به خانه Google خود بازگردید و نحوه عملکرد آن را بررسی کنید!

تا دفعه بعد ، هک مبارک:)

توصیه شده: