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

Ավելացրեք Custom Alexa Control ՝ Raspberry Pi նախագծին ՝ 5 քայլ
Ավելացրեք Custom Alexa Control ՝ Raspberry Pi նախագծին ՝ 5 քայլ

Video: Ավելացրեք Custom Alexa Control ՝ Raspberry Pi նախագծին ՝ 5 քայլ

Video: Ավելացրեք Custom Alexa Control ՝ Raspberry Pi նախագծին ՝ 5 քայլ
Video: Home Assistant. Դաս 9.4 ADD-ON - Xiaomi Gateway 3, zigbee2mqtt ինտեգրում 2024, Հուլիսի
Anonim
Ավելացրեք Custom Alexa Control ՝ Raspberry Pi նախագծին
Ավելացրեք Custom Alexa Control ՝ Raspberry Pi նախագծին

Այս նախագիծը նախատեսված է բոլոր նրանց համար, ովքեր ունեն Raspberry Pi նախագիծ, որն օգտագործում է Python- ը, ով ցանկանում է ձայնային վերահսկողություն ավելացնել իրենց գործող Amazon Echo սարքերի միջոցով: Անհրաժեշտ չէ լինել փորձառու ծրագրավորող, բայց պետք է հարմարավետ լինեք ՝ օգտագործելով հրամանի տողը և հարմարեցնելով առկա կոդը `ձեր կարիքներին համապատասխան:

Սկզբում ես սկսեցի մի նախագիծ, որը հնարավորություն կտար իմ Raspberry Pi- ին ձայնով կառավարել Alexa- ն, որպեսզի այն թեյնիկի մեջ ջուրը տաքացնի որոշակի ջերմաստիճանի: Թեև իմ ուզած փոխազդեցությունը բավականին պարզ էր (Alexa- ից մեկ համար փոխանցեք Raspberry Pi- ին), գոյություն ունեցող ձեռնարկներից այդ վիճակին հասնելու համար մեծ աշխատանք պահանջվեց: Հուսով եմ, որ այս ձեռնարկը հնարավորինս արագ կդարձնի այդ գործընթացը մյուսների համար:

Իմ օրինակում ես սկսում եմ Raspberry Pi Zero W- ով Raspbian- ով: Ես Pi- ի վրա ունեմ Python3 ծրագիր, որն ունակ է տեքստ գրել SPI էկրանին, և ունեմ ջերմաչափի զոնդ, որը կարող եմ կարդալ: Ձեզ համար այս ծրագիրը կարող է լինել գրեթե ամեն ինչ, բայց գաղափարն այն է, որ դուք կարող եք ունենալ որոշ մուտքային սարքեր, որոնք ցանկանում եք կարդալ Alexa- ի միջոցով և/կամ որոշ ելքային սարքեր, որոնք ցանկանում եք վերահսկել Alexa- ի միջոցով:

Նպատակն այն է, որ հիմնական ծրագրից, ինչպիսին է վերը նկարագրվածը, անցնել մի սարքի, որը հեշտությամբ կարող եք կառավարել իմ Echo- ով: Ենթադրելով, որ դուք արդեն ունեք այս ապարատը, այս նախագիծը ձեզ համար ոչ մի գումար չի պահանջում: Ի վերջո, դուք կհասնեք այն կետին, որտեղ կարող եք ասել հետևյալ բաները.

Ես. «Ալեքսա, խնդրիր իմ գործիքից ՝ ստուգել ջերմաստիճանը սենսորի 1 -ի վրա»:

Ալեքսայի պատասխանը. «Theոնդը կարդում է 72,31 աստիճան»:

կամ

Ես. «Ալեքսա, ասա իմ գործիքը գրել Georgeորջ Վաշինգտոն»

Պատասխան. Իմ Raspberry Pi- ի հետ կապված ցուցադրման վրա այժմ գրված է «George Washington»

Հաջորդ բաժնում ես կներկայացնեմ, թե ինչ պետք է տեղի ունենա կուլիսներում `այս աշխատանքը կատարելու համար: Եթե դուք պարզապես ցանկանում եք դա աշխատել ձեր նախագծի վրա և ձեզ չի հետաքրքրում, թե ինչպես է այն աշխատում, ազատ զգացեք այն բաց թողնել (չնայած դա կարող է ավելի դժվարացնել, եթե ինչ -որ բան սխալ է ընթանում):

Քայլ 1: Նախապատմություն

Նախապատմություն
Նախապատմություն

Այս պատկերում (վարկ ՝ https://developer.amazon.com/hy-US/docs/alexa/alex…) մենք կարող ենք տեսնել Alexa գործիքների ընդհանուր ճարտարապետությունը:

Երբ ինչ -որ բան եք ասում ձեր Echo սարքին, այն ձայնը ուղարկում է Alexa Cloud, որտեղ այն մշակվում է և որտեղ ստեղծվում է պատասխան ՝ ձեզ պատասխանելու համար: Երբ հարցնում եք, թե ինչ եղանակ է, շփման մեջ հենց այս երկուսն են: Այժմ ենթադրենք, որ ցանկանում եք ձայնային վերահսկողություն ավելացնել Raspberry Pi- ի ձեր փոքր նախագծերից մեկին: Ինքնաթիռում ամեն ինչ մշակելը կպահանջի զգալի սարքավորում և շատ բարդ կոդ `ամեն ինչ իրագործելու համար: Ավելի լավ լուծում կլինի օգտագործել Alexa Cloud- ը, որը շատ բարդ է և շատ լավ է վարվել խոսքի բարդ ձևերի հետ: Alexa Gadgets- ը ձեզ լավ միջոց է տալիս դա անելու համար:

Alexa գործիքը հաղորդակցվում է Echo սարքի հետ ՝ օգտագործելով bluetooth: Այս կապը հաստատվելուց հետո երկուսը միմյանց փոխանցում են հաղորդագրություններ ՝ օգտագործելով UTF-8 կոդավորումը: Երբ Էխոն ինչ -որ բան փոխանցում է գաջեթին, այն կոչվում է դիրեկտիվ: Մյուս ուղղությունը կոչվում է իրադարձություն: Այս ամենի ճշգրիտ հոսքին անցնելուց առաջ մենք պետք է ներկայացնենք ևս մեկ հիմնական տարր ՝ Alexa- ի հատուկ հմտություններ:

Alexa- ն թույլ է տալիս մշակողներին ստեղծել իրենց անհատական հմտությունները, ինչը թույլ է տալիս նրանց նախագծել իրենց փոխազդեցություններն ու վարքագիծը ՝ Echo բոլոր սարքերում օգտագործելու համար: Օրինակ, մշակողը կարող է ստեղծել յուրահատուկ հմտություն ՝ ձեզ ԱՄՆ -ի երկու օդանավակայանների միջև հեռավորությունը պատմելու համար: Օգտվողը կասեր. «Ալեքսա, հարցրու իմ հեռավոր հաշվիչի անհատական հաշվիչը, թե որքան է LAX- ի և JFK- ի միջև հեռավորությունը», և այն կարող է պատասխանել «2475 մղոն» -ով: Ինչպե՞ս է դա անում: Երբ մշակողը յուրահատուկ հմտություն է ստեղծում, նրանք սահմանում են այն, ինչ կոչվում է «մաքսային մտադրություններ» ՝ «սլոթ» պարունակող «արտահայտությունների օրինակով»: Օրինակ, այս հմտության մեջ ես կարող եմ «calc_dist» մտադրություն ունենալ երկու կետերի միջև հեռավորությունը հաշվարկելու համար: Օրինակելի արտահայտություն կլինի «ինչ է հեռավորությունը {slot1} - ի և {slot2} - ի միջև» կամ «որքան հեռու է {slot1} - ի և {slot2} - ի միջև»: Փակագծերում ցուցադրվող անցքերն ունեն հատուկ տեսակներ: Այս դեպքում այդ տեսակները կլինեն օդանավակայանի կոդերը, ինչպիսիք են LAX, JFK, BOS, ATL: Երբ օգտվողը պահանջում է անհատականացված հմտություն, Alexa Cloud- ը փորձում է համապատասխանել օգտագործողի ասածին սովորական մտադրությանը `օգտագործելով տրամադրված նմուշի արտահայտությունները և փորձում է գտնել այդ հարցման վավեր արժեքների արժեքները: Այս օրինակում նա կգտնի, որ օգտագործողը ցանկանում էր «calc_dist» մտադրությունը, և որ slot1- ը LAX է, իսկ slot2- ը JFK: Այս պահին Alexa Cloud- ը աշխատանքը փոխանցում է մշակողի սեփական ծածկագրին: Հիմնականում, այն պատմում է մշակողների կոդին, թե ինչ մտադրություն է այն ստացել և ինչ բնույթի բոլոր արժեքներն են եղել, ի թիվս այլ մանրամասների:

Մշակողը պետք է որոշի, թե որտեղ է ապրում իրենց ծածկագիրը, սակայն շատ տարածված տարբերակ է օգտագործել AWS Lambda գործառույթը: Եթե չգիտեք, թե ինչ է դա, դա, ըստ էության, ծառայություն է, որը թույլ է տալիս վերբեռնել ցանկացած պահի գործարկվող կոդ, այնուհետև ձեզանից գանձում է միայն այն ժամանակահատվածի համար, երբ ձեր կոդը գործարկվում է: Եթե շարունակենք մեր օրինակը, մշակողի ծածկագիրը կարող է լինել Python ֆունկցիա, որը ստանում է օդանավակայանի երկու ծածկագիրը, փնտրում է դրանց գտնվելու վայրը, հաշվարկում հեռավորությունները և այնուհետև պատասխան է ուղարկում Alexa Cloud- ին ՝ օգտվողին ինչ -որ բան հայտնելու համար: Alexa Cloud- ն այնուհետև այդ խոսքի տվյալները հետ կուղարկեր օգտվողի սարքին, և նրանք կստանային պատասխանը:

Այժմ մենք կարող ենք վերադառնալ գաջեթին: Մենք կարող ենք ստեղծել հատուկ հմտություններ, որոնք նախատեսված են հատուկ գաջեթների հետ աշխատելու համար: Մշակողը կարող է գրել այնպիսի հմտություն, որը հրահանգ է ուղարկում միացված գործիքի: Այդ հրահանգն ունի ծանրաբեռնվածություն, որը կարող է օգտագործվել, ինչպես որ այն անհրաժեշտ է գաջեթին: Այդ հմտությունը կարող է նաև ուղարկել ուղեցույց, այնուհետև գաջեթից իրադարձություն լսել, որպեսզի հմտության կոդին հասանելի լինի գաջեթից ուղարկված տեղեկատվությունը:

Այս հոսքի հաստատումը թույլ է տալիս ստեղծել մի շատ հզոր գործիք, քանի որ էժան գործիքները կարող են ունենալ ամպի մեջ ծածկագրված հաղորդակցության և ձայնային հրամաններին արձագանքելու ունակություն `օգտագործելով առկա լավագույն ձայնային ճանաչումը:

Պետք է նշել, որ հմտությունների մեծ մասը թույլ է տալիս նրանց հետ փոխգործակցության տարբեր եղանակներ: Օրինակ, օգտվողը կարող է անմիջապես մտնել մտադրության մեջ ՝ ասելով «Ալեքսա, հարցրու իմ հեռավորության հաշվիչից, թե որն է հեռավորությունը LAX- ի և JFK- ի միջև» (կոչվում է մեկ կրակոց) կամ պարզապես կարող է օգտագործել գործարկման մտադրությունը ՝ «Ալեքսա, բացեք իմ սովորական հեռավորության հաշվիչը »: Այս վերջին օրինակին, որպես կանոն, կհաջորդի այն, որ Alexa- ն պատասխանի ՝ լրացուցիչ տեղեկություններ ստանալու համար: Այս ձեռնարկը միտումնավոր բաց է թողնում վերջիններիս աջակցությունը: Ավելի կոնկրետ ՝ առանց Lambda գործառույթը փոփոխելու, դուք կարող եք միայն հմտել հմտությունը ՝ օգտագործելով մեկ կրակոց: Այս դիզայնի ընտրությունը թույլ է տալիս մոդելին ավելի պարզ լինել (պարտադիր չէ, որ աջակցի գործարկման մտադրություններին կամ խոսակցական հոսքին), և ես գտա, որ ես սովորաբար ցանկանում եմ իմ գաջեթների հետ շփվել, այնուամենայնիվ, օգտագործելով մեկ կրակոց, քանի որ դրանք սովորաբար ավելի արագ են:

Քայլ 2. Գրանցեք գործիքը Alexa Voice Service Developer Console- ում

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

  1. Գնացեք
  2. Եթե դեռ չունեք անվճար հաշիվ, ստեղծեք այն
  3. Կտտացրեք «Ապրանքներ»
  4. Լրացրեք պիտակները և ընտրեք «Alexa Gadget»
  5. Լրացրեք այն, ինչ ցանկանում եք մնացած դաշտերի համար
  6. Կտտացրեք Ավարտել

Քայլ 3. Ստեղծեք AWS Lambda գործառույթ և հարմարեցված հմտություն

Ստեղծեք անհատական հմտություններ Alexa Skills Kit Developer Console- ում

Այս ձեռնարկի ծածկագիրը կարելի է գտնել այստեղ

Այս քայլն ավարտելուց առաջ ձեզ հարկավոր է ստեղծել.zip ֆայլ, որը պարունակում է AWS Lambda գործառույթի տեղակայման փաթեթ, ինչպես ցույց է տրված այստեղ տրված ձեռնարկում:

  1. Ներբեռնեք «lambda» թղթապանակը իմ Github- ից, որը պարունակում է «lambda_function.py» և «պահանջները. Txt»
  2. Բացեք տերմինալը և փոխեք ընթացիկ գրացուցակը, որը գտնվում է այս պանակի ներսում:
  3. Գործարկեք հետևյալ հաջորդականությունը.

pip install -r պահանջները. txt -t skill_env

cp lambda_function.py skill_env cd skill_env zip -r../../skill-code.zip

Ձեր.zip ֆայլը այժմ կտեղակայվի այն գրացուցակում, որտեղ lambda թղթապանակը եղել և կկոչվի «skill-code.zip»:

Նշում AWS- ում հյուրընկալման արժեքի վերաբերյալ. Այս ձեռնարկը պահանջում է, որ դուք ունենաք AWS հաշիվ (անվճար ստեղծելու համար): Լամբդայի գործառույթները իսկապես գումար են պահանջում, սակայն ներկայիս գինը Ն. Վիրջինիայի շրջանում կազմում է $ 0.000000208 ՝ 100 մգ օգտագործման համար ՝ 128 ՄԲ հիշողությամբ: Տեղեկության համար նշեմ, որ իմ հմտության յուրաքանչյուր կոչում վճարում է այս մակարդակում մոտ 800 մս օգտագործման համար: $ 1.00 ԱՄՆ դոլար հաշիվ գանձելու համար դուք պետք է կանչեք այս գործառույթը մոտ 600,000 անգամ, որը (եթե ձեզ պահանջվի 5 վայրկյան մեկ զանգի համար) կպահանջի ձեզ 34 օր անընդհատ ձեր գործառույթը կանչելու համար: Արժեքը չպետք է լինի էական խնդիր, եթե դուք չհրապարակեք ձեր հմտությունը և հսկայական թվով մարդիկ չսկսեն օգտագործել այն: Եթե մտահոգված եք AWS- ով հաշիվներ ստանալու համար, հաշվի առեք օգտագործման ահազանգերի տեղադրումը, որոնք ձեզ կտեղեկացնեն, եթե օգտագործումը անցնի սահմանված շեմը:

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

  1. Գնացեք https://aws.amazon.com/ և մուտք գործեք վահանակ կամ ստեղծեք անվճար հաշիվ, եթե չունեք
  2. Որոնեք և կտտացրեք Lambda ծառայությունների ներքո
  3. Կտտացրեք «Ստեղծել գործառույթ»
  4. Ընտրեք «Հեղինակ զրոյից», տվեք անունը և ընտրեք Python 3 վերջին տարբերակը ՝ գործարկման համար
  5. Փոխեք «խմբագրել կոդը ներսում» ՝ «վերբեռնել.zip ֆայլ» և ընտրեք վերը ստեղծված.zip ֆայլը
  6. Նոր պատուհանում անցեք https://developer.amazon.com/alexa/console/ask և մուտք գործեք
  7. Կտտացրեք «Ստեղծել հմտություն»
  8. Պիտակեք այն, ընտրեք «Պատվերով» մոդելը և «Տրամադրեք ձեր սեփականը» և կտտացրեք «Ստեղծել հմտություն»
  9. Կտտացրեք «Սկսել քերծվածքից» և կտտացրեք «Ընտրել»
  10. «Մտադրություններ» բաժնում կտտացրեք «Ավելացնել»
  11. Ստեղծեք «alexa_to_pi» անունով հատուկ մտադրություն և լրացրեք «գրել {անձին» որպես օրինակելի արտահայտություն
  12. Կատարեք «AMAZON. Person» տիպով «անձ» կոչվող մտադրության բնիկ:
  13. Ստեղծեք «pi_to_alexa» անունով հատուկ մտադրություն և լրացրեք «ստուգեք ջերմաստիճանը սենսորից {sensor_num}
  14. Կատարեք «sensor_num» կոչվող մտադրության անցք «AMAZON. NUMBER» տիպով
  15. Ինտերֆեյսերի ներքո միացրեք «Պատվերով ինտերֆեյսի վերահսկիչ»
  16. Վերջնակետի ներքո ընտրեք «AWS Lambda ARN» և պատճենեք «Ձեր հմտության ID- ն»
  17. Վերադառնալ դեպի AWS վահանակ
  18. Կտտացրեք «Ավելացնել ձգան»
  19. Ընտրեք «Alexa Skills Kit», նշեք «Enable» ՝ Skill ID- ի ստուգման ներքո, տեղադրեք հենց պատճենած Skill ID- ն և կտտացրեք ավելացնել
  20. Պատճենեք Lambda ARN- ը վերին աջ անկյունում
  21. Գնացեք դեպի Alexa Developer Console և տեղադրեք Lambda ARN- ը «Լռելյայն տարածաշրջան» դաշտում
  22. Invocation- ի ներքո, Skill Invocation Name- ը սահմանեք որպես «իմ գործիքը»
  23. Կտտացրեք «Պահել մոդելը», այնուհետև «Կառուցել մոդել»
  24. Կտտացրեք «Փորձարկում» վերևի ներդիրներում և ընտրիչը «Անջատված» -ից փոխեք «Developmentարգացման»:
  25. Նկատի ունեցեք, որ Lambda գործառույթի տեղեկամատյանները գտնվում են AWS- ի «CloudWatch» ծառայությունում:

Քայլ 4. Կարգավորեք ծածկագիրը ձեր ազնվամորի Pi- ի վրա

Որպեսզի ձեր Raspberry Pi- ն կարողանա հաղորդակցվել Alexa սարքի հետ, նրան անհրաժեշտ է որոշակի ծածկագիր ՝ Bluetooth- ով տեղեկատվության փոխանցումը և այդ կապը պահպանելու համար, ի լրումն մի քանի այլ ֆայլերի: Amazon- ի ամենաթարմ ֆայլերով սկսելու ամենահեշտ ձևը նրանց Raspberry Pi Gadgets պահոցը կլոնավորելն է: Գնացեք ձեր ընթացիկ նախագծի գրացուցակին և գործարկեք

git կլոն

Սա ձեր ամբողջ պահոցը կբեռնի ձեր Pi- ի վրա անհրաժեշտ բոլոր ծածկագրերով: Այն ունի որոշ նախագծերի օրինակներ, որոնք ցույց են տալիս Alexa Gadgets- ի որոշ հնարավորություններ: Եթե ցանկանում եք ավելի շատ տեղեկություններ ունենալ, տե՛ս readime- ը նրանց Github էջում:

Գործարկեք դրանց տեղադրման գործառույթը `ամեն ինչ կազմաձևելու համար:

cd/home/pi/Alexa-Gadgets-Raspberry-Pi- նմուշներ

sudo python3 laun.py -կարգաբերում

Հետևեք հուշումներին և պատասխանեք «y» - ին, եթե հարցնեք, թե ցանկանում եք կարգավորել ձեր Gadget- ի հավատարմագրերի օգտագործումը: Հիշեցրեք Amazon ID- ն և Gadget Secret- ը ՝ ձեր գաջեթը մշակողի վահանակում տեղադրելուց, քանի որ այն կպահանջվի այստեղ: Ես ընտրեցի «bt» փոխանցման ռեժիմ իմ Raspberry Pi Zero W. BLE- ի համար, որը չի աջակցվում բոլոր հին Echo սարքերի կողմից, բայց դուք կարող եք փնտրել, թե ինչի է ընդունակ ձեր սարքավորումները: Եթե դուք օգտագործում եք ձեր Pi- ն աշխատասեղանի ռեժիմում, Amazon- ը խորհուրդ է տալիս աջ սեղմել վերին աջում գտնվող bluetooth պատկերակի վրա և սեղմել «Հեռացնել« Bluetooth »-ը վահանակից» ՝ միացման խնդիրներից խուսափելու համար:

Նշում. Այս քայլը կարող է որոշ ժամանակ տևել ՝ կախված այն բանից, թե որքան պետք է տեղադրվի:

Այժմ դուք կունենաք բոլոր անհրաժեշտ օժանդակ ֆայլերը ՝ ձեր նախագծին վերադառնալու և գործառույթների ավելացման համար, որոնք թույլ կտան հաղորդակցվել ձեր Echo- ի հետ:

Եթե ընտրեք, կարող եք ջնջել «օրինակներ» պանակը «Alexa-Gadgets-Raspberry-Pi-Samples/src»-ում:

Դուք կարող եք ունենալ ձեր ծրագրի կոդը որտեղ ցանկանում եք, բայց ես դրա համար թղթապանակ եմ պատրաստում, այլապես կարող եք ներբեռնել թղթապանակը կոդով իմ Github- ից, պարզապես համոզվեք, որ խմբագրեք.ini ֆայլերը, ինչպես նկարագրված է ստորև:

cd /home /pi

mkdir my_project cd my_project touch my_gadget.py touch my_gadget.ini

Այժմ ես ստեղծել եմ երկու ֆայլ «my_project» անունով թղթապանակում:. Ini ֆայլը կարեւոր է: Համոզվեք, որ այն պարունակում է հետևյալը և փոխարինում ձեր Amazon ID- ում և Gadget Secret- ում.

[GadgetSettings]

amazonId = INSERT_AMAZON_ID_HERE alexaGadgetSecret = INSERT_ALEXA_GADGET_SECRET_HERE [GadgetCapilities] Custom. MyGadget = 1.0

Այժմ, եկեք նայենք python ֆայլին ՝ մանրամասներին անցնելուց առաջ.

ներմուծել json

agt import AlexaGadget- ից

դաս MyGadget (AlexaGadget):

def _init _ (self):

super ()._ init _ ()

def on_custom_mygadget_alexatopi (ինքնուրույն, հրահանգ):

payload = json.loads (directive.payload.decode ("utf-8")) print ("Received data:" + str (payload)) write_text (str (payload ['data'] ['person'] ['value ']))

def on_custom_mygadget_pitoalexa (ինքնուրույն, հրահանգ):

payload = json.loads (directive.payload.decode ("utf-8")) print ("Received data:" + str (payload)) payload = {'data': "The sond read" + str (get_temp (payload ['data'] ['sensor_num'] ['value'])) + "grad."} self.send_custom_event ('Custom. MyGadget', 'PiToAlexa', payload) MyGadget (). main ()

Նախ կնկատեք, որ այն կանչում է երկու գործառույթ ՝ write_text () և get_temp (): Իմ ծածկագրում ես այս գործառույթները սահմանում եմ նույն ֆայլում, բայց դրանք կախված են իմ սարքավորումից, ուստի ես ընտրել եմ դրանք բաց թողնել: Ես կցել եմ այս ֆայլը այն գործառույթներով, որոնք սահմանված են ուղղակի տպելու և վերադարձնելու կեղծ տվյալները, եթե ցանկանում եք գործարկել այս ճշգրիտ կոդը: Ես կառաջարկեի փորձարկել այս ճշգրիտ ծածկագիրը, նախքան այն փոփոխելը `ձեր նախագծի հետ աշխատելու համար: Ես կցել եմ նաև.ini ֆայլը, բայց համոզվեք, որ ներս եք մտնում և փոխում եք ID- ն և գործիքի գաղտնիքը: Վերևի գործառույթը ստանում է Alexa- ից փոխանցված տվյալները: Ներքևի գործառույթը նույն ձևաչափով տվյալներ է ստանում, սակայն Alexa սարքը հինգ վայրկյան կսպասի, որպեսզի իրադարձությունը հետ փոխանցվի իր իսկ բեռնվածությամբ: Այս ծանրաբեռնվածությունն առանձնահատուկ է նրանով, որ Alexa սարքը կխոսի դրա բովանդակության մասին:

Այս ֆայլերը ձեռք բերելուց հետո անցեք «my_project» պանակին և գործարկեք python ֆայլը:

sudo վերագործարկում

cd/home/pi/my_project sudo python3./my_gadget.py

Եթե առաջին անգամ եք գործարկում ծրագիրը, ապա ձեզ հարկավոր է այն զուգակցել ձեր Echo սարքի հետ: Համոզվեք, որ ձեր Echo սարքը գտնվում է Raspberry Pi- ի մոտ, քանի որ մենք պետք է թույլ տանք ապահովել bluetooth կապ:

Ձեր բջջային սարքի Alexa հավելվածում ներքևի աջ անկյունում կտտացրեք «սարքեր»:

Կտտացրեք «Էխո և Ալեքսա» վերին ձախ մասում:

Կտտացրեք ձեր Echo սարքին:

«WIRELESS» բաժնում կտտացրեք «Bluetooth սարքեր»:

Կտտացրեք «IRՈ PAԵԼ ՆՈՐ ՍԱՐՔ» և ձեր գործիքը կտեսնեք ցուցակում:

Հպեք ձեր գործիքի վրա: Դուք պետք է տեսնեք Pi- ի զեկույցը, որ այն հաջողությամբ զուգակցվել է:

Ձեր Pi- ի ելքը դիտելիս փորձեք ձայնային հրաման տալ Echo- ին.

Դուք. «Ալեքսա, խնդրիր իմ գործիքը ստուգել ջերմաստիճանը սենսորից մեկից»

Եթե ամեն ինչ ճիշտ է աշխատել, դուք պետք է լսեք.

Էխո. «Beոնդը կարդում է 120.505 աստիճան»:

Դուք. «Ալեքսա, ասա իմ գործիքը ՝ գրել Georgeորջ Վաշինգտոն»:

Pi- ն պետք է տպի.

«Ստացված տվյալներ. {'Տվյալներ': {'անձ': {'անուն': 'անձ', 'արժեք'` 'Georgeորջ Վաշինգտոն', 'confirmationStatus': 'NONE'}}}

Georgeորջ Վաշինգտոն »

Քայլ 5: Փաթեթավորում

Այստեղ ցուցադրված տեսանյութը գաջեթի օրինակ է, որն աշխատում է ջերմաստիճանի ընթերցման հետ (նույն զոնդը F- ում C- ով) և անուններ է գրում պարզ ցուցադրման վրա:

Այժմ, երբ հույս ունեք, որ ինչ -որ բան աշխատում է, դուք պետք է փորձեք գնալ և հարմարեցնել դա ՝ ձեր սեփական նախագիծը ավելի ունակ դարձնելու համար: Հիշեք, որ դուք կարող եք հեշտությամբ խմբագրել Alexa Developer Console- ի մտադրությունները, և որ ձեր օգտագործած բոլոր անցքերը կփոխանցվեն ձեր Pi- ին բեռնվածության մեջ: Ավելին, կարող եք թույլ տալ, որ Alexa- ն ասի այն ամենը, ինչ կցանկանայիք ՝ պարզապես խմբագրելով այն բեռը, որը հետ եք փոխանցում իրադարձության դեպքում ձեր Raspberry Pi կոդից:

Խնդրում ենք նկատի ունենալ, որ այս ձեռնարկը նախատեսված չէ լինել վերջնական լուծում այն բոլոր հնարավորությունների համար, որոնք դուք կցանկանայիք ունենալ Alexa Gadget- ով: Alexa- ի և Gadget- ի միջև յուրաքանչյուր ուղղությամբ տվյալներ փոխանցելու համար ձեզ երկու պարզ գործառույթ տալու համար միտումնավոր սահմանափակ է: Եթե դուք հետաքրքրված եք փոխգործակցության ավելի բարդ մոդելներ կառուցելով, ես ձեզ կխրախուսեի կարդալ readme- ի բոլոր ֆայլերը https://github.com/alexa/Alexa-Gadgets-Raspberry-P… և փորձել նրանց տված բոլոր օրինակները. Ես նաև կառաջարկեի կարդալ Alexa Gadgets Toolkit- ի և Alexa Skills Kit- ի փաստաթղթերը:

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