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

Բյուրեղյա տուն ՝ 5 քայլ
Բյուրեղյա տուն ՝ 5 քայլ

Video: Բյուրեղյա տուն ՝ 5 քայլ

Video: Բյուրեղյա տուն ՝ 5 քայլ
Video: «Կարգին Հայկոյին» ճանապարհեցին տուն․ տեղակալը՝ նոր քաղաքապետ, «5 ՐՈՊԵ ՊԱԿԱՍ».ԼՈՒՐԵՐ 16:55 2024, Հուլիսի
Anonim
Image
Image
Բյուրեղյա տուն
Բյուրեղյա տուն

Հեռավոր հեռավորության պատճառով բաժանված զույգերն ու ընտանիքները հաճախ զգում են կապի կարոտը: Crystal House- ը կառուցված է զույգերի և ընտանիքների համար, որպեսզի միմյանց հետ կապվեն լույսերի միջոցով: Բյուրեղյա տները միացված են wifi ազդանշաններին: Երբ կտտացնում եք մեկ բյուրեղյա տան կոճակին, մյուս բյուրեղյա տան լույսերը ազդանշան են ստանում և կմիացվեն: Դա հեշտ և զվարճալի է պատրաստել: Ես քայլ առ քայլ կանցնեմ օգտագործվող նյութերից/գործիքներից, Arduino- ի միջոցով կառուցելու/փորձարկելու սխեմայից և կառուցելով Բյուրեղյա տան կառուցվածքը

Քայլ 1: Մասեր, գործիքներ, պարագաներ

  • Հավաքված փետուր Huzzah ESP8266 (երկու)
  • Perma-Proto Կիսա չափի հացաթուղթ (երկու)
  • Լիթիումի մարտկոց -3,7 1200 mAh (երկու)
  • Mini On/Off Push-Button Switch (չորս)
  • NeoPixel մինի կոճակ (չորս)
  • Breadboard Wire
  • Oldոդման երկաթ և զոդիչ
  • Մետաղալար մերկապարուհի
  • Երրորդ ձեռքի գործիք
  • Քառակուսի փայտե փայտ
  • Ակրիլային թերթ
  • Բյուրեղյա թափանցիկ քար
  • Թափանցիկ թուղթ
  • Սուպեր սոսինձ

Քայլ 2. Շղթայի դիագրամ և ծածկագիր

Շղթայի դիագրամ և ծածկագիր
Շղթայի դիագրամ և ծածկագիր

// Instructables Internet of Things Class նմուշի կոդ // Մուտքերի և ելքերի համադրություն // Երկու սեղմման կոճակներ հրամաններ են ուղարկում AIO feed // LED և թրթռացող շարժիչ (կամ ցանկացած թվային ելք) flah/buzz ըստ feed տվյալների // // Փոփոխված է Becky- ի կողմից Stern 2017 // Adafruit IO Arduino գրադարանի օրինակների հիման վրա ՝ // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit- ը ժամանակ և միջոցներ է ներդնում `ապահովելով այս բաց կոդ: // Խնդրում ենք աջակցել Adafruit- ին և բաց կոդով սարքավորումներին ՝ ձեռք բերելով // ապրանքներ Adafruit- ից: // // Գրված է Todd Treece- ի կողմից Adafruit Industries- ի համար // Հեղինակային իրավունք (գ) 2016 Adafruit Industries // Լիցենզավորված MIT լիցենզիայի ներքո: // // Բոլոր վերը նշված տեքստերը պետք է ներառվեն ցանկացած վերաբաշխման մեջ: #ներառում

  1. #սահմանեք NeoPIN1 15

    // Պարամետր 1 = շղթայի պիքսելների քանակ LED- ներ) // NEO_KHZ400 400 ԿՀց (դասական 'v1' (ոչ v2) FLORA պիքսելներ, WS2811 վարորդներ) // NEO_GRB պիքսելները միացված են GRB բիթստրիմի համար (NeoPixel- ի ապրանքների մեծ մասը) // NEO_RGB պիքսելները միացված են RGB բիթստրիմի համար (v1 FLORA պիքսել, ոչ v2) // NEO_RGBW պիքսելները միացված են RGBW բիթսթրիմի համար (NeoPixel RGBW արտադրանք) Adafruit_NeoPixel շերտ = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /*********************** Adafruit IO կազմաձևում ********************** *********

    / այցելեք io.adafruit.com, եթե ձեզ անհրաժեշտ է հաշիվ ստեղծել, // կամ եթե ձեզ անհրաժեշտ է ձեր Adafruit IO բանալին: #սահմանեք IO_USERNAME «Ձեր օգտանունը» #սահմանեք IO_KEY «Ձեր IO_KEY»

    /***************************** WIFI կազմաձևում **************** *********************/

    #սահմանել WIFI_SSID «Ձեր wifi» #սահմանել WIFI_PASS «Ձեր գաղտնաբառը»

    #ներառել «AdafruitIO_WiFi.h» AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

    /*********************** Հիմնական ծածկագիրը սկսվում է այստեղ ********************* **********/

    #ներառել #ներառել #ներառել #ներառել

    // #սահմանել LED_PIN 15 #սահմանել BUTTON1_PIN 4 #սահմանել BUTTON2_PIN 14 // #սահմանել MOTOR_PIN 5 // այս քորոցին անհրաժեշտ է PWM հնարավորություն

    // կոճակի վիճակը int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // ստեղծել «թվային» թարմացվող բովանդակություն AdafruitIO_Feed *հրաման = io.feed («հրաման»); AdafruitIO_Feed *command2 = io.feed ("command2");

    void setup () {strip.setBrightness (60); strip.begin (); strip.show (); // Նախաձեռնել բոլոր պիքսելները «անջատելու» համար // կոճակի կապումներն ամրագրել որպես ներածման ներքին դիմադրության pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // սահմանել led փին և շարժիչի քորոց որպես թվային ելքեր // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // սկսել սերիական կապը Serial.begin (115200);

    // միանալ io.adafruit.com- ին Serial.print («Միացում Adafruit IO- ին»); io.connect (); // ստեղծեք հաղորդագրությունների մշակող «հրաման» հոսքի համար: // handleMessage գործառույթը (ստորև սահմանված է) // կկանչվի ամեն անգամ, երբ հաղորդագրություն է ստացվում adafruit io- ից: հրաման-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // սպասեք միացման միաժամանակ (io.status () <AIO_CONNECTED) {Serial.print ("."); ուշացում (500); }

    // մենք կապված ենք Serial.println (); Serial.println (io.statusText ());

    // համոզվեք, որ բոլոր հոսքերը անմիջապես ստանում են իրենց ընթացիկ արժեքները հրաման-> ստանալ (); command2-> ստանալ (); }

    դատարկ շրջան () {

    // io.run (); պահանջվում է բոլոր ուրվագծերի համար: // այն միշտ պետք է ներկա լինի ձեր հանգույցի // գործառույթի վերևում: այն հաճախորդին կապ է պահում // io.adafruit.com- ի հետ և մշակում ցանկացած մուտքային տվյալ: io.run ();

    // բռնել կոճակի ընթացիկ վիճակը: // մենք պետք է շրջենք տրամաբանությունը, քանի որ մենք // օգտագործում ենք INPUT_PULLUP: if (digitalRead (BUTTON1_PIN) == LOW) {button1current = 1; } if (digitalRead (BUTTON2_PIN) == LOW) {button2current = 1; } if (digitalRead (BUTTON2_PIN) == HIGH && digitalRead (BUTTON1_PIN) == HIGH) {button1current = 0; button2current = 0; }

    // վերադարձ, եթե արժեքը չի փոխվել, եթե (button1current == button1last && button2current == button2last) վերադառնա;

    // պահպանել ընթացիկ վիճակը adafruit io Serial.print- ի «թվային» աղբյուրին («կոճակ ուղարկելու 1 կարգավիճակ ->»); Serial.println (button1current); հրաման-> փրկել (button1current);

    // պահպանել ընթացիկ վիճակը adafruit io Serial.print- ի «թվային» հոսքում («կոճակ ուղարկելու 2 կարգավիճակ ->»); Serial.println (button2current); command2-> փրկել (button2current);

    // պահել վերջին կոճակի վիճակը button1last = button1current; button2last = button2 ընթացիկ; }

    // այս գործառույթը կոչվում է ամեն անգամ, երբ «հրաման» հաղորդագրություն է ստացվում Adafruit IO- ից: այն կցված էր // հրամանի աղբյուրին վերը նշված setup () գործառույթում: անվավեր բռնիչ Button1 (AdafruitIO_Data *տվյալներ) {

    int հրաման = տվյալներ-> toInt ();

    if (command == 1) {// լուսավորել առաջին պիքսել Serial.print ("ստացվել է հրամանից (կոճակ 1) <-"); Serial.println (հրաման); // analogWrite (MOTOR_PIN, 200); // ուշացում (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, շերտագիծ. գույն (200, 100, 0)); // Դեղին շերտ. Ցուցադրում (); } else {Serial.print ("ստացվել է հրամանից (կոճակ 1) <-"); Serial.println (հրաման); strip.setPixelColor (0, շերտագիծ. գույն (0, 0, 0)); // անջատված strip.show (); }} // այս գործառույթը կոչվում է ամեն անգամ, երբ «հրաման» հաղորդագրություն է ստացվում Adafruit IO- ից: այն կցված էր // հրամանի աղբյուրին վերը նշված setup () գործառույթում: անվավեր բռնիչ Button2 (AdafruitIO_Data *տվյալներ) {

    int command2 = data-> toInt ();

    if (command2 == 1) {// լուսավորել առաջին պիքսել Serial.print ("ստացվել է հրաման 2-ից (կոճակ 2) <-"); Serial.println (command2); // analogWrite (MOTOR_PIN, 200); // ուշացում (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, շերտ. Գույն (255, 128, 128)); // Դեղին շերտ. Ցուցադրում (); } else {Serial.print ("ստացվել է հրաման 2-ից (կոճակ 2) <-"); Serial.println (command2); strip.setPixelColor (1, շերտ. Գույն (0, 0, 0)); // անջատված strip.show (); }}

Քայլ 3. Շրջանակի կառուցում նախատիպից մինչև զոդում

Շրջանակների կառուցում նախատիպից մինչև զոդում
Շրջանակների կառուցում նախատիպից մինչև զոդում
Շրջանակների կառուցում նախատիպից մինչև զոդում
Շրջանակների կառուցում նախատիպից մինչև զոդում

Ես կխրախուսեի ձեզ փորձել տախտակի վրա `միացումը փորձարկելու համար: Քանի որ մենք կառուցում ենք երկու սարք, մենք կարող ենք փորձարկել երկու տախտակի վրա: Ես միացրեցի Neopixel- ը և on.off կոճակը նախատիպային մետաղալարին, քանի որ այն ավելի հեշտ է օգտագործել: Հետագայում դուք կարող եք հեշտությամբ զոդել նախատիպի լարերը:

Նախատիպերի սխեմայի հաջողության հասնելուց հետո ժամանակն է կառուցել մեր իրական սխեման: Ես օգտագործում եմ Perma-proto breadboard- ը, քանի որ այն ավելի փոքր է, և շղթայի միացումը շատ ավելի լավ կլինի, քան նախատիպերի սխեման: Երբ խոսքը վերաբերում է եռակցմանը, այն պահանջում է մեծ համբերություն: Դեռ մի հանձնվիր: Դուք հասնում եք այնտեղ:

Միացումն ավարտելուց և ծածկագիրը ձեր ESP8266- ում ներբեռնելուց հետո երկու սարքերը պետք է աշխատեն այնպես, ինչպես մենք նշեցինք սկզբում:

Քայլ 4: Ձև և նյութ

Ձև և նյութ
Ձև և նյութ
Ձև և նյութ
Ձև և նյութ
Ձև և նյութ
Ձև և նյութ
Ձև և նյութ
Ձև և նյութ

Հիմա եկեք պատրաստենք մեր բյուրեղյա տունը:

Կտրեք փայտի փայտը 6 դյույմ: Մեզ ընդհանուր առմամբ անհրաժեշտ է 18 հատ: Քանի որ ես ուզում եմ այս երկու բյուրեղյա տնից որոշակի տատանումներ ունենալ, ես մեկում օգտագործեցի 7 կտոր, իսկ մյուսում `9 կտոր: Կպչեք կտորները տուփի կառուցվածքին: Ես երկու ակրիլային թերթ կտրեցի 6 -ով 6 դյույմով և սոսնձեցի դրանք Բյուրեղյա տների հատակին:

Երբ ավարտեք տների կառուցվածքը: Եկեք զարդարենք տները: Ես կտրեցի մի կտոր թափանցիկ գունավոր թուղթ և սոսնձեցի դրանք ակրիլային թերթիկի վրա: Դրանից հետո ես օգտագործեցի մի քանի թափանցիկ պլաստիկ բյուրեղներ և դրանք սոսնձեցի հիմքի վրա: Քանի որ ես ունեմ թափանցիկ գունավոր թուղթ բյուրեղների ներքևում, բյուրեղները արտացոլվում են տարբեր գույների:

Քայլ 5: Այժմ եկեք օգտագործենք բյուրեղյա տները

Այժմ եկեք օգտագործենք բյուրեղյա տները
Այժմ եկեք օգտագործենք բյուրեղյա տները
Այժմ եկեք օգտագործենք բյուրեղյա տները
Այժմ եկեք օգտագործենք բյուրեղյա տները

Նվիրեք ձեր սիրելիին ձեր պատրաստած բյուրեղյա տունը: Ասա նրանց, որ նրանք կարևոր են: Դուք միշտ կարող եք փոփոխել արտաքին կառուցվածքը ՝ օգտագործելով տարբեր նյութեր և գույներ: Թույլ տվեք իմանալ, թե ինչպես է դա անցնում:

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