Բովանդակություն:

Ստացեք էկրան ձեր Google Home- ի համար ՝ օգտագործելով Raspberry Pi և Dialogflow (Chromecast Այլընտրանք). 13 քայլ
Ստացեք էկրան ձեր Google Home- ի համար ՝ օգտագործելով Raspberry Pi և Dialogflow (Chromecast Այլընտրանք). 13 քայլ

Video: Ստացեք էկրան ձեր Google Home- ի համար ՝ օգտագործելով Raspberry Pi և Dialogflow (Chromecast Այլընտրանք). 13 քայլ

Video: Ստացեք էկրան ձեր Google Home- ի համար ՝ օգտագործելով Raspberry Pi և Dialogflow (Chromecast Այլընտրանք). 13 քայլ
Video: Թոփ 5 նախապես տեղադրված օգտակար Windows ծրագրեր 2024, Նոյեմբեր
Anonim
Ստացեք էկրան ձեր Google Home- ի համար ՝ օգտագործելով Raspberry Pi և Dialogflow (Chromecast- ի այլընտրանք)
Ստացեք էկրան ձեր Google Home- ի համար ՝ օգտագործելով 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 Home -> գործողություն [պատասխան]

Այստեղ պատասխանը կարող է լինել կամ պարզ խոսակցություն, կամ էլ ՝ վեբհուքից վերցված տվյալներ, որոնք մենք պատրաստվում ենք կատարել Rpi սերվերի միջոցով: Այսպիսով, գնացեք Dialogflow կայք և ստեղծեք հաշիվ և նոր գործակալ:

Հետո ստեղծեք նոր մտադրություն…

Քայլ 2:

Պատկեր
Պատկեր

Այնուհետեւ մուտքագրեք վերապատրաստման արտահայտությունները: Սրանք այն հրամաններն են, որոնք օգտվողները խոսում են, երբ փորձում են մուտք գործել Google Home- ի որոշակի առաջադրանք:

Քայլ 3:

Այստեղ «կայք» բառը կարող է փոխվել YouTube- ի, Netflix- ի, amazon Prime- ի և այլնի … Այսպիսով, այս բառը գործում է որպես փոփոխական, և երբ ընտրում եք կայք բառը [մկնիկի միջոցով] ստանում եք հետևյալը.

Քայլ 4:

Պատկեր
Պատկեր

Բացվող ընտրացանկից ընտրեք «@sys.any» և սեղմեք Enter:

Քայլ 5:

Պատկեր
Պատկեր

Այնուհետեւ գործողությունների բաժնում մուտքագրեք նույն պարամետրի անունը: Այս բաժնում նշված արժեքները ուղարկվում են վեբհուքին որպես JSON ֆայլ, որը մենք պետք է վերականգնենք սերվերում ՝ իմանալու համար, թե որ կայքն է օգտատերը կանչել:

Փոփոխականի արժեքը վերցվում է «$ variable_name» - ի միջոցով

Քայլ 6:

Պատկեր
Պատկեր

Ավելացրեք այն պատասխանը, որը մենք պետք է լսենք ՝ Google Home- ին հրաման տալուց հետո: Այնուհետեւ պահպանեք մտադրությունը: Անհրաժեշտության դեպքում սահմանեք այս մտադրությունը որպես զրույցի ավարտ:

Քայլ 7:

Այժմ մենք կստեղծենք մեր back-end ծառայությունը, որպեսզի այդ հարցումները բացեն տեսանյութեր և կայքեր մեր ազնվամորու pi- ի վրա:

Մնացած կարգավորումը

Տվյալների բազմազանություն -> Nodejs սերվեր -> ծածկագիր

Ինչու՞ է մեզ պետք տվյալների հրապարակայնությունը: քանի որ Google Home- ը միանում է ինտերնետի հասանելի ինտերնետային կայքերին: Չնայած մեր GHome- ը միացված է տեղական ցանցին, հարցումները գալիս են Google- ի ամպային ծառայությունից, ուստի մեր սերվերը ինտերնետ տեղափոխելու անհրաժեշտություն կա: Այդ գլխացավի փոխարեն, մենք կարող ենք օգտագործել տվյալների կիրառման ծառայություններ ՝ մեր ազնվամորու 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 = պահանջում («body-parser»); var exec = պահանջում («child_process»): exec; var express = պահանջում («էքսպրես»); var app = express (); app.use (bodyParser.json ()); app.post ('/', գործառույթ (պահանջ, res) {թող փոփոխական = req.body.queryResult.parameters.website; exec ("midori www."+փոփոխական+". com", գործառույթ (սխալ, stdout, stderr) {console.log ("stdout:" + stdout); console.log ("stderr:" + stderr); if (error! == null) {console.log ("exec errror:" + error);}}); վերադարձ res.end ();}); app.listen (80);

Քայլ 9:

Պատկեր
Պատկեր

Վերոնշյալ ծածկագիրը գրվել է միայն հասկացությունը բացատրելու համար: Ես օգտագործել եմ Midori զննարկիչը ծածկագրում, քանի որ քրոմը չի աշխատում հեռակա հրամաններով: Մենք կարող ենք օգտագործել նաև Firefox- ը: [Մենք պետք է տեղադրենք body-parser, express մոդուլներ npm- ի օգնությամբ, նախքան ծածկագիրը գրելը]

Հիշեք, որ մենք պետք է լսենք միայն 80 -րդ նավահանգստում, քանի որ տվյալների կիրառելիությունը կարող է առաջ ուղարկել ազնվամորի pi- ի միայն 80 -րդ նավահանգիստը:

Այժմ մենք պետք է կարգավորենք տվյալների բազան

Գնացեք Dataplicity կայք և ստեղծեք ձեր հաշիվը և հետևեք հրահանգներին `ազնվամորու pi- ն վահանակին ավելացնելու համար:

Քայլ 10:

Պատկեր
Պատկեր

Դրանից հետո, սարքերի ցանկից բացեք ազնվամորի pi- ն և ընտրեք wormhole ՝ ազնվամորի pi- ի համար յուրահատուկ IP հասցե ստանալու համար, որի վրա կարող ենք տեղակայել մեր հանգույցի սերվերը:

Պատճենեք IP հասցեն սեղմատախտակին:

Քայլ 11:

Պատկեր
Պատկեր

Այժմ գործարկեք ծածկագիրը ազնվամորու pi տերմինալից

sudo հանգույց webserver.js

Եթե ցուցադրում է որևէ սխալ ցուցադրման կամ արձանագրությունների վերաբերյալ…. կատարել

sudo xhost +

Այժմ վերադարձեք երկխոսության հոսք և կտտացրեք կատարման բաժին

Քայլ 12:

Պատկեր
Պատկեր

Մուտքագրեք IP հասցեն կամ URL- ը dataplicity- ից վերը նշված տարածքում:

Քայլ 13:

Պատկեր
Պատկեր

Վերջապես, գնացեք մտադրությունների բաժին և միացրեք webhook զանգը կատարման ներդիրից:

Վերջ! Այժմ վերադարձեք ձեր Google տուն և ստուգեք, թե ինչպես է այն աշխատում:

Մինչև հաջորդ անգամ, Happy Hacking:)

Խորհուրդ ենք տալիս: