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

TOYL Task Tracker: 3 քայլ (նկարներով)
TOYL Task Tracker: 3 քայլ (նկարներով)

Video: TOYL Task Tracker: 3 քայլ (նկարներով)

Video: TOYL Task Tracker: 3 քայլ (նկարներով)
Video: Jurassic World Toy Movie: Hunt for the Indominus Rex, Part 2 #dinosaurtoys #toys #jurassicworld 2024, Նոյեմբեր
Anonim
Image
Image
TOYL առաջադրանքների որոնիչ
TOYL առաջադրանքների որոնիչ
TOYL առաջադրանքների որոնիչ
TOYL առաջադրանքների որոնիչ

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

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

Պարագաներ

Շրջան

  • Adafruit փետուր Huzzah
  • Adafruit FeatherWing
  • Արական վերնագրի քորոցներ
  • Վերնագրի կանացի կապում
  • 500 mAh մարտկոց
  • 100K ohm դիմադրություններ x2
  • Մեկուսիչ ժապավեն
  • Խճճված մետաղալար
  • Մետաղալարեր
  • Oldոդման երկրպագու

Պատյան

  • Անթափանց ակրիլային թերթ 24 "x18"
  • Երկկողմանի ժապավեն
  • Լազերային դանակի հասանելիություն
  • Վեկտորային ծրագրակազմ

Քայլ 1: oldոդեք ձեր սխեման

Sոդեք ձեր շրջանը
Sոդեք ձեր շրջանը
Sոդեք ձեր շրջանը
Sոդեք ձեր շրջանը
Sոդեք ձեր շրջանը
Sոդեք ձեր շրջանը

Femaleոդեք էգ գլխի կապում Փետուրի Huzzah- ին: Այս ձեռնարկը օգտակար է Feather Huzzah սարքավորումների տեղադրման համար: Այնուհետև տղամարդու վերնագրի կապերը ամրացրեք FeatherWing- ին: Այս եղանակով դրանք սոսնձելը թույլ է տալիս միանալ և անհրաժեշտության դեպքում առանձնացնել Փետուրի թևը Փետուրի հուզայից: Սա հատկապես հարմար է, երբ անհրաժեշտ է ձեր FeatherWing- ին ռեզիստորներ ավելացնել, ինչը հաջորդ քայլն է: Միացրեք 100K օմ դիմադրողականակներ յուրաքանչյուր 0 -ից և 2 -րդ կապից ՝ միացված 3 Վ -ին:

Կարգավորեք ձեր Feather Huzzah սարքավորումները

Կարգավորեք ձեր Feather Wing սարքավորումները

Քայլ 2: Ավելացրեք ձեր ծածկագիրը

Ավելացրեք ձեր ծածկագիրը
Ավելացրեք ձեր ծածկագիրը
Ավելացրեք ձեր ծածկագիրը
Ավելացրեք ձեր ծածկագիրը

Այս ծածկագիրը Դաս 5 -ի Իրերի ինտերնետի կոդի հարմարեցում է, եթե ժամանակը թույլ է տալիս, ես կցանկանայի փոխարինել Preceptitaton ծառայությունը այն ծառայությամբ, որը հետևում է առաջադրանքներին, որոնք ավելացվում են ToDosit IFTTT հավելվածի միջոցով: Այս պահին դուք պետք է ձեռքով մուտքագրեք առաջադրանքների շարք և օգտագործեք A կոճակը ՝ դրանք շրջանցելու համար: Բացի այդ, ես կցանկանայի կոդավորել ժմչփը ՝ հաշվելու րոպեներով և կանգնելու հաջորդ առաջադրանքին անցնելիս: Հսկայական շնորհակալություն Becky Stern- ին ՝ ժամաչափի համար բազային կոդ ստեղծելու և առաջադրանքների միջոցով հեծանիվ վարելու համար: Եթե ձեզ հետաքրքրում է նախագիծը ինտերնետին միացնելը, խորհուրդ կտամ անցնել դասերի այս փաթեթը:

// Instructables Internet of Things դասի նմուշի կոդը // Circuit ցուցադրում է ինտերնետի տվյալները // Եղանակի տվյալները հավաքվում են թարմացվող բովանդակության մեջ // Multiple NeoPixels visualize the weather weather // // Modified by Becky Stern 2017 // based on Adafruit IO Subscription Օրինակ

// Adafruit- ը ներդնում է ժամանակ և ռեսուրսներ ՝ ապահովելով այս բաց կոդով ծածկագիրը:

// Խնդրում ենք աջակցել Adafruit- ին և բաց կոդով սարքավորումներին ՝ ձեռք բերելով // ապրանքներ Adafruit- ից: // // Գրված է Todd Treece- ի կողմից Adafruit Industries- ի համար // Հեղինակային իրավունք (գ) 2016 Adafruit Industries // Լիցենզավորված MIT լիցենզիայի ներքո: // // Բոլոր վերը նշված տեքստերը պետք է ներառվեն ցանկացած վերաբաշխման մեջ:

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

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

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

#սահմանել WIFI_SSID «WifiName»

#սահմանել WIFI_PASS «WifiPassword»

#ներառել «AdafruitIO_WiFi.h»

AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

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

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

#ներառում

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

#սահմանեք OLED_RESET 3

Adafruit_SSD1306 էկրան (128, 32 և Wire, OLED_RESET);

// այս հաստատուն չի փոխվի.

const int կոճակ PinA = 0; // կապում, որոնց կոճակները կցվում են const int կոճակին PinB = 16; // այս մեկն արդեն ունի քաշման դիմադրություն, մյուս երկուսին անհրաժեշտ է մեկ const int կոճակ PinC = 2;

// Փոփոխականները կփոխվեն.

int կոճակAPushCounter = 0; // հաշվիչ կոճակների սեղմումների համար int buttonAState = 0; // կոճակի ընթացիկ վիճակը int lastButtonAState = 0; // կոճակի նախորդ վիճակը

// Փոփոխականները կփոխվեն.

int կոճակ BPushCounter = 0; // հաշվիչ կոճակի սեղմումների քանակի համար int buttonBState = 0; // կոճակի ընթացիկ վիճակը int lastButtonBState = 0; // կոճակի նախորդ վիճակը

// Փոփոխականները կփոխվեն.

int կոճակըCPushCounter = 0; // հաշվիչ կոճակի սեղմումների քանակի համար int buttonCState = 0; // կոճակի ընթացիկ վիճակը int lastButtonCState = 0; // կոճակի նախորդ վիճակը

String displayForecast = "անհայտ";

int timerVal = 0;

անստորագիր երկար lastStartTime = 0; bool timerAnabled = 0;

AdafruitIO_Feed *տեղումներ = io.feed («տեղումներ»); // կարգավորել «տեղումների» հոսքը

// AdafruitIO_Feed *taskmanager = io.feed («taskmanager»); // ստեղծեք «taskmanager» հոսքը

void setup () {

pinMode (buttonPinA, INPUT); pinMode (buttonPinB, INPUT_PULLUP); pinMode (buttonPinC, INPUT);

// SSD1306_SWITCHCAPVCC = ներքին 3.3 Վ -ից առաջացնում է ցուցադրման լարումը

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Հասցե 0x3C համար 128x32

// Showուցադրել էկրանին ցուցադրման բուֆերի սկզբնական բովանդակությունը -

// գրադարանը սա նախաստորագրում է Adafruit շաղ տալու էկրանով: display.display (); ուշացում (2000); // Դադար 2 վայրկյան

// Մաքրել բուֆերը:

display.clearDisplay ();

// սկսել սերիական կապը

Serial.begin (115200);

// միացեք io.adafruit.com- ին

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

// սպասեք կապի

while (io.status () <AIO_CONNECTED) {Serial.print ("."); ուշացում (500); }

// մենք կապված ենք

Serial.println (); Serial.println (io.statusText ());

}

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

// io.run (); պահանջվում է բոլոր ուրվագծերի համար:

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

// կարդալ կոճակի մուտքագրման քորոցը.

buttonAState = digitalRead (buttonPinA); buttonBState = digitalRead (buttonPinB); buttonCState = digitalRead (buttonPinC);

// համեմատել buttonState- ը իր նախկին վիճակի հետ

եթե (buttonAState! = lastButtonAState || buttonBState! = lastButtonBState || buttonCState! = lastButtonCState) {// եթե վիճակը փոխվել է, ավելացրեք հաշվիչը, եթե (buttonAState == LOW) {// եթե ընթացիկ վիճակը OWԱOWՐ է, ապա կոճակը սեղմված էր կոճակըAPushCounter ++; Serial.print («A կոճակը սեղմում է ՝»); Serial.println (buttonAPushCounter); } if (buttonBState == LOW) {// եթե ընթացիկ վիճակը OWԱOWՐ է, ապա կոճակը սեղմված էր buttonBPushCounter ++; Serial.print ("B կոճակների սեղմումների թիվը."); Serial.println (buttonBPushCounter); Serial.println («Գործարկման ժամանակաչափ»); ժամանակաչափ Միացրած = 1; lastStartTime = millis (); } if (buttonCState == LOW) {// եթե ընթացիկ վիճակը OWԱOWՐ է, ապա կոճակը սեղմված էր կոճակըCPushCounter ++; Serial.print ("C կոճակի սեղմումների թիվը."); Serial.println (buttonCPushCounter); Serial.println («erամաչափի դադարեցում»); ժամանակաչափ Միացրած = 0; }} if (timerEnabled == 1) {// ժամաչափը ավելացրեք միայն այն ժամանակ, երբ այն գործարկված է timerVal = (millis () - lastStartTime)/1000; }

// ցուցադրել դիրքը 1 - կանխատեսում

// if (buttonAPushCounter % 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (ՍՊԻՏԱԿ); // display.setCursor (0, 0); // display.print ("Կանխատեսում."); // display.println (displayForecast); // display.setCursor (0, 16); // display.println («երկրորդ տող»); // display.println («օրինակ բովանդակություն»); // display.display (); // // ուշացում (2000); //}

// ցուցադրել դիրքը 1 - Առաջադրանք 1

եթե (buttonAPushCounter % 3 == 0) {display.setTextSize (1); display.setTextColor (ՍՊԻՏԱԿ); display.clearDisplay (); display.setCursor (0, 0); display.println («Հետազոտություններ - հարցազրույցներ»); display.println (); display.print ("erամաչափ."); display.println (timerVal); display.display (); }

// ցուցադրել դիրքը 2 - Առաջադրանք 2

եթե (buttonAPushCounter % 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println («Ստեղծող ստուդիա - կոդ»); display.println (); display.print ("erամաչափ."); display.println (timerVal); display.display (); }

// ցուցադրել դիրքը 3 - Առաջադրանք 3

եթե (buttonAPushCounter % 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println ("DSV - ուրվագիծ"); display.println (); display.print ("erամաչափ."); display.println (timerVal); display.display (); }

// պահպանել ընթացիկ վիճակը որպես վերջին վիճակ, // հաջորդ անգամ օղակի միջոցով lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;

}

// այս գործառույթը կոչվում է ամեն անգամ, երբ հաղորդագրություն է ուղարկվում

// ստացվում է Adafruit IO- ից: այն կցված էր // feed- ին վերը նշված setup () գործառույթում: void handleMessage (AdafruitIO_Data *տվյալներ) {

Լարային կանխատեսում = տվյալներ-> toString (); // պահպանել եղանակի մուտքային տվյալները տողում

Serial.print ("ստացվել է <-"); Serial.println (կանխատեսում); displayForecast = կանխատեսում; // հետևյալ տողերը պահում են IFTTT եղանակի մասին զեկույցի տարբեր բառեր, որոնք ես մինչ այժմ հայտնաբերել եմ String task1 = String («Առաջադրանք 1»); Լարային անձրև = լարային («Անձրև»); String lightrain = String («Թեթև անձրև»); Լարային անձրևաջրեր = լարային («Անձրևի ցնցուղ»); Լարային AMshowers = լարային («AM ցնցուղներ»); String rainandsnow = Լար («Անձրև և ձյուն»); Լարային ձյուն = Լար («Ձյուն»); Լարային ձնաբուք = լարային («Ձյան ցնցուղ»); Լարը ամպամած = Լար («Ամպամած»); Լարային հիմնականում ամպամած = լարային («Հիմնականում ամպամած»); Լար partlycloudy = Լար («Մասամբ ամպամած»); String clearsky = Լար («Մաքրել»); Լարային տոնավաճառ = լարային («Արդար»); Լարային արևոտ = Լարային («Արևոտ»);

// Այս եթե հայտարարությունները համեմատում են եղանակի մուտքային փոփոխականը պահպանված պայմանների հետ և համապատասխանաբար վերահսկում են NeoPixels- ը:

// եթե անձրև է տեղում կանխատեսման մեջ if (կանխատեսում այսօր »);

}

// եթե կանխատեսման մեջ ձյուն է գալիս if (forecast.equalsIgnoreCase (snow) || forecast.equalsIgnoreCase (rainandsnow) || forecast.equalsIgnoreCase (snowshower)) {Serial.println («տեղումներ կանխատեսումներում այսօր»);

}

// եթե կանխատեսման մեջ արև կա, եթե (}

// եթե կանխատեսման մեջ ամպեր կան եթե (forecast.equalsIgnoreCase (ամպամած) || forecast.equalsIgnoreCase (հիմնականում ամպամած) || forecast.equalsIgnoreCase (մասամբ ամպամած)) {Serial.println («ամպամած երկինք այսօրվա կանխատեսման մեջ»);

}

}

Քայլ 3: Ստեղծեք բեռնարկղը / կեղևը

Ստեղծեք բեռնարկղ / պատյան
Ստեղծեք բեռնարկղ / պատյան
Ստեղծեք բեռնարկղ / պատյան
Ստեղծեք բեռնարկղ / պատյան
Ստեղծեք բեռնարկղ / պատյան
Ստեղծեք բեռնարկղ / պատյան
Ստեղծեք բեռնարկղ / պատյան
Ստեղծեք բեռնարկղ / պատյան

Կեղևի համար սկսեք ՝ որոշելով, թե ինչ չափի կցանկանայիք լինել ձեր շրջանակը, կամ կարող եք ներբեռնել իմ ֆայլը: Չափը որոշելուց հետո կարող եք օգտագործել MakerCase- ը ՝ վեկտորային ֆայլի դասավորությունը ստեղծելու համար:

Գործարկեք ֆայլը լազերային դանակի միջոցով - այն պետք է տևի մոտ 5 րոպե: Այնուհետև միացրեք կեղևը:

Ես հաշվի չեմ առել նյութի լայնությունը, ինչը դժվարացնում է իմ կոճակները հասնելը: Ես դեռ պետք է միջոցներ գտնեմ դրանք ամրացնելու համար: Նրանք նաև շատ փոքր են, ինչը դժվարացնում է նրանց հետ աշխատանքը:

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