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

Alexa- ի և Arduino- ի միջոցով ձայնով կառավարվող անջատիչ. 10 քայլ (նկարներով)
Alexa- ի և Arduino- ի միջոցով ձայնով կառավարվող անջատիչ. 10 քայլ (նկարներով)

Video: Alexa- ի և Arduino- ի միջոցով ձայնով կառավարվող անջատիչ. 10 քայլ (նկարներով)

Video: Alexa- ի և Arduino- ի միջոցով ձայնով կառավարվող անջատիչ. 10 քայլ (նկարներով)
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Դեկտեմբեր
Anonim
Ձայնով վերահսկվող անջատիչ ՝ օգտագործելով Alexa և Arduino
Ձայնով վերահսկվող անջատիչ ՝ օգտագործելով Alexa և Arduino

Այս նախագծի հիմնական նպատակն է օգտագործել ջերմաստիճանի տվիչը `սարքը միացնելու կամ անջատելու համար անջատիչը (ռելե) վերահսկելու համար:

Նյութերի ցանկ

  1. 12V ռելեի մոդուլ ==> $ 4.2
  2. Arduino uno ==> 8 դոլար
  3. DHT11 ջերմաստիճանի տվիչ ==> 3 դոլար
  4. ESP8266 Մոդուլ ==> $ 4.74
  5. N26 օպտիկական զույգ ==> $ 0.60
  6. LM1117 լարման կարգավորիչ ==> $ 0.60
  7. Հացաթուղթ ==> $ 2.2
  8. Թռիչքային լարեր ==> $ 2,5
  9. Կտտացրեք կոճակը ==> 2,5 դոլար

Projectրագրի ընդհանուր արժեքը կազմում է մոտ $ 30 դոլար: Այս նախագիծը բաժանված է երեք մասի: Նախ, մենք օգտագործում ենք heroku ծրագիրը ստեղծելու համար: Երկրորդ, մենք կառուցում ենք Amazon Alexa հմտություն ՝ մեր աշխատանքն իրականացնելու համար (Ամենակարևոր մասը): Երրորդ, մենք կարգավորում ենք մեր սարքավորումները և ծրագրավորում այն Arduino IDE- ի միջոցով:

Քայլ 1. Հերոկուի կապը GitHub- ի հետ

Հերոկուի կապը GitHub- ի հետ
Հերոկուի կապը GitHub- ի հետ
Հերոկուի կապը GitHub- ի հետ
Հերոկուի կապը GitHub- ի հետ
Հերոկուի կապը GitHub- ի հետ
Հերոկուի կապը GitHub- ի հետ

Heroku- ն ամպային հարթակ է որպես ծառայություն (PaaS), որն աջակցում է մի քանի ծրագրավորման լեզուների, որն օգտագործվում է որպես վեբ հավելվածի տեղակայման մոդել: Նախ, գնացեք heroku կայք, ստեղծեք նոր հաշիվ կամ մուտք գործեք այնտեղ: Հղումը տրված է ստորև

Հերոկու կայք

Եկեք սկսենք նոր ծրագիր ստեղծելուց: Ես իմ ծրագրի անունը տվել եմ «iottempswitch», երբ ծրագիրը տեղակայում ես, հղումը գեներացվում է:

Հավելվածը պատրաստվելուց հետո գնացեք GitHub. GitHub/

Մուտք գործեք այնտեղ կամ գրանցվեք, եթե հաշիվ չունեք: Մուտք գործելուց հետո ստեղծեք նոր պահեստ: Տվեք ցանկացած անուն, որը ցանկանում եք ընտրել, այնուհետև սեղմեք ստեղծել պահեստ: Հաջորդ էջում կտտացրեք README, այս էջում տվեք նկարագրություն, որը ցանկանում եք կիսել ուրիշների հետ: Դրանից հետո կտտացրեք կատարել նոր ֆայլ: Հաջորդը, կտտացրեք բեռնման կոճակին:

Երկու տարբերակ կա ՝ կամ թղթապանակը քաշել և թողնել, կամ ֆայլ ընտրել: Ներբեռնեք անհրաժեշտ ֆայլերը ներքևից: Ֆայլեր ընտրելուց հետո սեղմեք կատարել փոփոխությունները: Բացեք Heroku- ում ստեղծված ծրագիրը, այնուհետև անցեք տեղակայման բաժին: Դրանից հետո կտտացրեք GitHub- ին: Տվեք պահեստի անունը, որը դուք ստեղծել եք GitHub- ի կողքին: Իմ դեպքում դա Smart-Relay է: Պատճենեք և տեղադրեք այստեղ: Երբ ձեր հղումը ցուցադրվի, կտտացրեք կապել: Հաջորդը, կտտացրեք տեղակայման մասնաճյուղ (ձեռնարկ): Տեղադրելուց հետո դուք կարող եք տեսնել հղումը կառուցման մատյանում կամ կարող եք տեսնել հղումը կարգավորումների մեջ: Այս հղումը մեզ պետք է ավելի ուշ, երբ մենք Amazon հմտություն ենք պատրաստում:

Քայլ 2: Amazon

Amazon
Amazon
Amazon
Amazon
Amazon
Amazon

Alexa հմտության վերջին պատկերները

Amazon Developer կայքում մենք օգտագործում ենք Amazon հմտությունը ՝ ջերմաստիճանը և խոնավությունը սահմանելով ՝ անջատիչի ձգանը վերահսկելու համար:

Գնացեք Amazon Developer կայք: Հղումը տրված է ստորև:

Amazon Developer կայք

  • Գնացեք Developer վահանակ վերևի աջ մասում, ինչպես ցույց է տրված նկար i4- ում
  • Գնացեք Alexa, ապա ընտրեք Alexa Skill Kit- ը, այնուհետև ստեղծեք նոր հմտություն ՝ կտտացնելով Ավելացնել նոր հմտություն:

Նոր հմտություն ավելացնելիս կտեսնեք հմտությունների մասին տեղեկատվության էջը:

1. Հմտությունների մասին տեղեկություններ (ինչպես ցույց է տրված նկար i7- ում)

մենք պետք է տրամադրենք հմտությունների տեսակը, լեզուն, անունը, կանչի անունը:

Հմտության տեսակ ==> ընտրեք հարմարեցված:

  • Անուն ==> ընտրեք ցանկացած անուն:
  • Հրավիրման անուն ==> որը դուք օգտագործում եք Alexa- ի հետ շփվելիս: Օրինակ.
  • Լեզու ==> անգլերեն (Հնդկաստան): Ընտրեք ըստ ձեր երկրի

սեղմեք պահպանել, ապա հաջորդը:

2. Փոխազդեցության մոդել

Այստեղ մենք կօգտագործենք հմտություն ստեղծող: Այսպիսով, կտտացրեք Գործարկել հմտությունների շինարար: Դուք կտեսնեք էջը, ինչպես ցույց է տրված i8 պատկերում:

Նախ մենք ստեղծում ենք նոր մտադրություններ: Կտտացրեք Ավելացնել (ձախ կողմում) և տվեք ցանկացած անուն, որը ցանկանում եք, ես օգտագործել եմ «խելացի անջատիչ»:

  • Նշեք անցքի տիպի անվանումը «չափման_տիպ» և բնիկի արժեքները «ջերմաստիճան» և «խոնավություն», ինչպես ցույց է տրված նկար 9 -ում:
  • Դրանից հետո ավելացրեք անցքի տիպի անուն «հարցում», և բնիկի արժեքներն են «ինչ» և «ինչ», ինչպես ցույց է տրված i10 պատկերում:

  • Դրանից հետո ավելացրեք բնիկի տեսակը «switchstate», և բնիկի արժեքները «միացված» և «անջատված» են, ինչպես ցույց է տրված i11 պատկերում:
  • Ավելացրեք մեկ այլ տիպի «tempscale» և բնիկի արժեքներն են «fahrenheit» և «celcuis», ինչպես ցույց է տրված i12 պատկերում:
  • Դրանից հետո այստեղ ավելացրեք անցքի նոր տեսակ, մենք օգտագործում ենք գոյություն ունեցող անցքի տիպը, դրա համար պետք է սեղմել օգտագործել առկա սլոթը: Ավելացնելուց հետո այն կտեսնեք անցքերի տեսակների մեջ, ինչպես ցույց է տրված i13 պատկերում:

Այսպիսով, մենք ավարտում ենք անցքերի տեսակները, որոնցից օգտագործում ենք 5 -ը: Այժմ անցեք հաջորդ քայլին: Սեղմեք մեր ստեղծած մտադրության վրա, իմ դեպքում դա խելացի անջատիչ է: Աջ կողմում կտեսնեք մտադրության անցք, ինչպես ցույց է տրված i14 պատկերում:

  • Ստեղծեք նոր անցք, անվանեք «Switch_State» և քարտեզագրեք այն «switchstate» ՝ օգտագործելով բացվող կոճակը, ինչպես ցույց է տրված i15 պատկերում:
  • Ստեղծեք նոր անցք, անվանեք «Sensor_Values» և քարտեզագրեք այն «չափման_տիպ», ինչպես ցույց է տրված i16 պատկերում:
  • Ստեղծեք նոր անցք, տվեք «հարցում» անունը և քարտեզագրեք «հարցման», ինչպես ցույց է տրված i17 պատկերում:
  • Դրանից հետո ստեղծեք նոր «tmp_scale» անցք և քարտեզագրեք այն «tempscale» - ի վրա, ինչպես ցույց է տրված i18 պատկերում:
  • Ստեղծեք նոր «Համարներ» բնիկ և տեղադրեք այն «Amazon. Numbers» - ում, ինչպես ցույց է տրված i19 պատկերում:

Այժմ մենք ավարտեցինք Intent slots- ը: Մենք օգտագործում ենք մտադրության 5 անցք: Դրանից հետո մենք անցնում ենք Sample Utterances- ին, ինչպես ցույց է տրված i20 պատկերում:

Ավելացրեք այս օրինակային արտահայտությունները:

անջատիչի ձգան դնել {Numbers} տոկոս {tmp_scale}

{հարցումը} անջատիչի վիճակն է

{Switch_State} անջատիչի ձգան

անջատիչի ձգան դնել {Numbers} աստիճանի {tmp_scale}

միացնել անջատիչը {Switch_State}

{query} անջատիչ {Switch_State}

{query} - ը ներկայիս {Sensor_Values} է

Այս մոդելից հետո պահեք և կառուցեք այն: Սպասեք, որ մոդելը կառուցվի դրանից հետո կտտացրեք կազմաձևմանը: Կառուցելուց հետո կտեսնեք հաղորդագրություն, ինչպես ցույց է տրված i21 և i22 պատկերներում:

3. Կազմաձևում

Ընտրեք HTTPS և ավելացրեք հղում, որը ստեղծվել է heroku հավելված ստեղծելիս: Իմ դեպքում դա https://iottempswitch.herokuapp.com/ է: Հղումն ավելացնելուց հետո կտտացրեք հաջորդին, ինչպես ցույց է տրված i23 պատկերում:

4. SSL վկայագիր Ընտրեք երկրորդ տարբերակը և կտտացրեք հաջորդին, ինչպես ցույց է տրված i24 պատկերում:

մենք հաջողությամբ ստեղծել ենք մեր հմտությունը:

Քայլ 3: Arduino

Արդուինո
Արդուինո
Արդուինո
Արդուինո
Արդուինո
Արդուինո

Բացեք Arduino IDE- ն: Այնուհետև անցեք Ֆայլ ==> Նախապատվություն:

Լրացուցիչ տախտակների կառավարիչում պատճենեք և տեղադրեք URL- ը և կտտացրեք ok, ինչպես ցույց է տրված i26 պատկերում:

arduino.esp8266.com/versions/2.4.0/package_…

  • Բացեք խորհրդի կառավարիչը `գնալով Գործիքներ ==> Տախտակ ==> Տախտակի կառավարիչ:
  • Բացեք Տախտակների կառավարիչը և որոնեք nodemcu- ն, ինչպես ցույց է տրված i27 պատկերում:
  • Դրանից հետո ներբեռնեք ESP8266WiFi գրադարանը:
  • Որոնեք ESP8266WiFi գրադարանը և տեղադրեք այն:
  • Ընտրեք տախտակ ==> Ընդհանուր ESP8266 մոդուլ:
  • Նախքան ծածկագիրը վերբեռնելը մեզ պետք է երեք գրադարան:

Պահանջվող գրադարաններ

Տեղափոխեք այս գրադարանները Arduino- ի գրադարանների պանակ:

Դուք պետք է երեք բան փոխեք SSID- ի, PWD- ի և ձեր heroku հավելվածի հղման մեջ: Դրանից հետո վերբեռնեք կոդը: ESP մոդուլի համար պետք է կոճակը բեռնելիս սեղմել ֆլեշ կոճակը, այնուհետև մեկ անգամ սեղմել վերականգնման կոճակը, այնուհետև բաց թողնել բռնկման կոճակը: Կոդը վերբեռնելուց հետո բացեք տերմինալը: կտեսնեք ելք:

Քայլ 4: Բաղադրիչի նկարագրություն

Բաղադրիչի նկարագրությունը
Բաղադրիչի նկարագրությունը
Բաղադրիչի նկարագրությունը
Բաղադրիչի նկարագրությունը
Բաղադրիչի նկարագրությունը
Բաղադրիչի նկարագրությունը
Բաղադրիչի նկարագրությունը
Բաղադրիչի նկարագրությունը

1. Ինչ է ռելե

Ռելեը էլեկտրամագնիսական սարք է, որն օգտագործվում է երկու սխեմաների էլեկտրական մեկուսացման և մագնիսական միացման համար: Դրանք շատ օգտակար սարքեր են և թույլ են տալիս մի սխեմային միացնել մյուսը, մինչդեռ դրանք ամբողջովին առանձին են: Նրանք հաճախ օգտագործվում են էլեկտրոնային սխեման (ցածր լարման դեպքում) միացնելու համար էլեկտրական միացման, որն աշխատում է շատ բարձր լարման դեպքում: Օրինակ, ռելեը կարող է կատարել 5V DC մարտկոցի միացում `230V AC ցանցի միացման միացման համար:

Ինչպես է դա աշխատում

Ռելե անջատիչը կարելի է բաժանել երկու մասի `մուտքային և ելքային: Մուտքային հատվածն ունի կծիկ, որն առաջացնում է մագնիսական դաշտ, երբ դրա վրա էլեկտրոնային միացումից մի փոքր լարվածություն է կիրառվում: Այս լարումը կոչվում է աշխատանքային լարման: Հաճախ օգտագործվող ռելեներ հասանելի են աշխատանքային լարման տարբեր կոնֆիգուրացիաներում `6V, 9V, 12V, 24V և այլն: Ելքային հատվածը բաղկացած է մեխանիկական միացվող կամ անջատվող կոնտակտներից: Հիմնական ռելեում կան երեք կոնտակտներ `սովորաբար բաց (NO), սովորաբար փակ (NC) և սովորական (COM): Առանց մուտքի վիճակի, COM- ը միացված է NC- ին: Գործող լարումը կիրառելիս ռելեի կծիկն էներգիա է ստանում, և COM- ը փոխում է շփումը NO- ի: Հասանելի են ռելեների տարբեր կոնֆիգուրացիաներ, ինչպիսիք են SPST, SPDT, DPDT և այլն, որոնք ունեն տարբեր քանակությամբ փոխարկիչ կոնտակտներ: Օգտագործելով կոնտակտների համապատասխան համադրություն, էլեկտրական միացումը կարող է միացվել և անջատվել: Ստացեք ներքին մանրամասներ ռելեի անջատիչի կառուցվածքի վերաբերյալ:

COM տերմինալը սովորական տերմինալ է: Եթե COIL տերմինալները սնուցվում են անվանական լարման միջոցով, COM և NO տերմինալներն ունեն շարունակականություն: Եթե COIL տերմինալները միացված չեն, ապա COM և NO տերմինալները շարունակականություն չունեն:

NC տերմինալը նորմալ փակ տերմինալ է: Դա այն տերմինալն է, որը կարող է միացվել, նույնիսկ եթե ռելեն չի ստանում որևէ կամ բավարար լարվածություն աշխատելու համար:

NO տերմինալը սովորաբար բաց տերմինալն է: Դա այն տերմինալն է, որտեղ դուք տեղադրում եք ձեր ուզած ելքը, երբ ռելեն ստանում է իր անվանական լարումը: Եթե COIL- ի տերմինալներում լարվածություն չկա կամ անբավարար լարում, ելքը բաց է և լարում չի ստանում: Երբ COIL տերմինալները ստանում են անվանական լարման կամ մի փոքր ցածր, NO տերմինալը ստանում է բավարար լարման և կարող է միացնել սարքը ելքի վրա:

2. DHT ջերմաստիճանի տվիչ

DHT11- ը խոնավության և ջերմաստիճանի տվիչ է, որն առաջացնում է տրամաչափված թվային ելք: DHT11- ը կարող է ինտերֆեյս լինել ցանկացած միկրո վերահսկիչի հետ, ինչպիսիք են Arduino- ն, Raspberry Pi- ն և այլն և ստանալ ակնթարթային արդյունքներ: DHT11- ը ցածր խոնավության և ջերմաստիճանի տվիչ է, որն ապահովում է բարձր հուսալիություն և երկարաժամկետ կայունություն:

3. ESP8266 Ամբողջական նկարագրություն

ESP8266 WiFi մոդուլը ինքնուրույն SOC է `ինտեգրված TCP/IP արձանագրության կույտով, որը կարող է ցանկացած միկրոկոնտրոլերի մուտք գործել ձեր WiFi ցանց: ESP8266- ն ի վիճակի է կամ մեկ այլ ծրագրից տեղակայել ծրագրերի ցանցային գործառույթներ: Յուրաքանչյուր ESP8266 մոդուլը նախապես ծրագրավորված է AT հրամանով:

ESP8266- ն աջակցում է APSD- ին VoIP ծրագրերի և Bluetooth համատեղ գոյության միջերեսների համար, այն պարունակում է ինքնակալիբրիացված ՌԴ, որը թույլ է տալիս աշխատել բոլոր աշխատանքային պայմաններում և չի պահանջում ՌԴ արտաքին մասեր:

Հատկություններ

  • 802.11 բ/գ/ն
  • Wi-Fi Direct (P2P),
  • soft-API ինտեգրված TCP/IP արձանագրության կույտ
  • Ինտեգրված TR անջատիչ, balun, LNA, հզորության ուժեղացուցիչ և համապատասխան ցանց
  • Ինտեգրված PLL- ներ, կարգավորիչներ, DCXO և էներգիայի կառավարման միավորներ
  • +19.5 դԲմ ելքային հզորություն 802.11 բ ռեժիմում
  • Միացրեք հոսանքի հոսանքը <10uA
  • 1 ՄԲ ֆլեշ հիշողություն
  • Applicationածր էներգիայի ինտեգրված 32-բիթանոց պրոցեսորը կարող է օգտագործվել որպես կիրառական պրոցեսոր
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU & A-MSDU համախմբում և 0.4 մգ պահակային միջակայք
  • Արթնացեք և փաթեթներ փոխանցեք <2ms- ում
  • Սպասման էներգիայի սպառումը <1.0 մՎտ (DTIM3)

Ամրացնել նկարագրությունը, ինչպես ցույց է տրված i34 պատկերում:

ESP մոդուլը Arduino UNO- ի հետ միացնելու համար մեզ անհրաժեշտ է Lm1117 3.3 լարման կարգավորիչ կամ ցանկացած կարգավորիչ, քանի որ Arduino- ն ի վիճակի չէ ESP8266- ին ապահովել 3.3 v:

Նշում.

DHT11 սենսորին և ռելեին միացնելու համար մենք օգտագործում ենք ESP8266 մոդուլի երկու GPIO կապ: Կոդը վերբեռնելուց հետո կարող եք անջատել RX, TX, GPIO0 կապումները: Ես օգտագործել եմ GPIO0- ը DHT11 սենսորի համար, իսկ GPIO2- ը `ռելեներ: DHT11 սենսորը լավ է աշխատում ESP8266- ի հետ, բայց ռելեների համար մեզ անհրաժեշտ է մեկ լրացուցիչ բան, այսինքն `օպտո մեկուսիչ կամ օպտո միակցիչ: Տե՛ս պատկերներ i30, i31, i32 և i33:

Քայլ 5: Միացումներ

ESP8266 ===> DHT11GPIO0 ===> Ելքային փին

ESP8266 ===> RelayGPIO2 ===> Մուտք

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Վերակայել կոճակը ===> RST

Ֆլեշ կոճակ ===> GPIO0

Քայլ 6: Ստուգեք ամեն ինչ

Բոլոր բաների ստուգում
Բոլոր բաների ստուգում
Բոլոր բաների ստուգում
Բոլոր բաների ստուգում
Բոլոր բաների ստուգում
Բոլոր բաների ստուգում
Բոլոր բաների ստուգում
Բոլոր բաների ստուգում

Մենք հաջողությամբ ստեղծել ենք մեր ծրագիրը, հմտությունը և մեր սարքավորումները պատրաստ են: Այսպիսով, ժամանակն է ստուգել:

Դրա համար ձեր ESP8266- ը միացված է, քանի որ մեր սերվերը աշխատում է ESP8266- ով: Այստեղ ես ոչ մի սենսոր չեմ միացրել ESP8266- ին, ես պարզապես ստուգում եմ ՝ այն աշխատում է, թե ոչ, բայց դուք կարող եք միացնել սենսորը, ռելեն ESP8266- ին: Երբ այն միացված է Heroku- ին, դուք կտեսնեք միացված: Փորձարկման համար անցեք ձեր ստեղծած Amazon հմտությանը, այնուհետև կտտացրեք փորձարկման էջին: Երբ այն ստուգվի, որ այն աշխատում է, ես իմ սենսորը կկապեմ ESP8266- ի հետ: Դուք կարող եք տեսնել արդյունքները, ինչպես ցույց են տրված i35, i36, 37, 38, 39, 40 պատկերներում:

Եթե այն օգտագործում եք առանց ESP8266- ը միացնելու, դուք ստանում եք այս սխալը, ինչպես ցույց է տրված i41 պատկերում:

Արտասանություն, որը կարող եք օգտագործել

անջատիչի ձգան դնել {Numbers} տոկոս {tmp_scale}

օրինակ.- անջատիչի ձգանը դնել 50 % խոնավության վրա

{հարցումը} անջատիչի վիճակն է

միացված/անջատված է անջատիչի վիճակը

{Switch_State} անջատիչի ձգան

նախկին անջատիչ/անջատիչ ձգան

անջատիչի ձգան դնել {Numbers} աստիճանի {tmp_scale}

նախկին անջատիչի ձգանը դրել 76 աստիճանի فارենհայտի

նախկին անջատիչի ձգանը դնել 24 աստիճանի ջերմաստիճանի

միացնել անջատիչը {Switch_State}

նախկին - միացնել/անջատել անջատիչը

Արդյունքների համար տե՛ս i41- ից i46 պատկերը:

AlexaAlexa- ի հետ խոսելիս arduino- ին խնդրեք միացնել/անջատել անջատիչը

Ալեքսա, խնդրիր arduino- ից անջատիչի ձգանը դնել 24 աստիճանի ջերմաստիճանի:

Ալեքսա, խնդրու arduino- ից անջատիչի ձգանը դնել 50 % խոնավության վրա

Ալեքսա, խնդրիր arduino- ին միացնել/անջատել անջատիչը

Քայլ 7: VUI (Ձայնային ինտերֆեյս) դիագրամ

VUI (ձայնային օգտվողի միջերես) դիագրամ
VUI (ձայնային օգտվողի միջերես) դիագրամ

Քայլ 8: Դեմո

Image
Image

1. Սահմանեք ջերմաստիճանի և խոնավության ազդանշանը:

2. Տեղադրեք ձգանը մինչև 20 աստիճան ցելսիուս:

3. Տեղադրեք ձգանը մինչև 80 տոկոս խոնավություն:

Քայլ 9: Սխեմատիկ

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