Բովանդակություն:
- Պարագաներ
- Քայլ 1: oldոդեք ձեր սխեման
- Քայլ 2: Ավելացրեք ձեր ծածկագիրը
- Քայլ 3: Ստեղծեք բեռնարկղը / կեղևը
Video: TOYL Task Tracker: 3 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Մի՛ ատեք այն, երբ պլանավորում եք աշխատել կամ ավելի վատ, երբ աշխատանքային նստաշրջանի կեսին եք, և ձեր հեռախոսում ծանուցում է գալիս. «Արագ ստուգումը» դառնում է ժամեր անց: Բացի այդ, գիտե՞ք, թե շաբաթական աշխատանքի համար հատկացված ժամանակի համեմատ ինչքան ժամանակ եք աշխատում որոշակի առաջադրանքների վրա:
Մուտքագրեք TOYL առաջադրանքների որոնիչը: Այն հնարավորություն է տալիս անջատել հեռախոսը և կենտրոնանալ աշխատանքի վրա, միևնույն ժամանակ հնարավորություն տալով սահմանել շաբաթական աշխատելու ժամանակը, ասենք 60 ժամ, և այն խնդիրները, որոնք կցանկանայիք կատարել: Երբ նստում ես նիստի, պատկերացում ես ունենում, թե որքան ժամանակ է մնացել քո ընդհանուր աշխատանքի համար: Հետագծողն ունի երկու ռեժիմ ՝ erամաչափ, որտեղ դուք նախապես սահմանել եք, թե որքան ժամանակ եք ցանկանում ծախսել շաբաթական մեկ առաջադրանքի համար, և վայրկյանաչափ, որտեղ դուք կարող եք պարզապես գործարկել ժամաչափը ՝ խնդիրն ընտրելուց հետո:
Պարագաներ
Շրջան
- Adafruit փետուր Huzzah
- Adafruit FeatherWing
- Արական վերնագրի քորոցներ
- Վերնագրի կանացի կապում
- 500 mAh մարտկոց
- 100K ohm դիմադրություններ x2
- Մեկուսիչ ժապավեն
- Խճճված մետաղալար
- Մետաղալարեր
- Oldոդման երկրպագու
Պատյան
- Անթափանց ակրիլային թերթ 24 "x18"
- Երկկողմանի ժապավեն
- Լազերային դանակի հասանելիություն
- Վեկտորային ծրագրակազմ
Քայլ 1: oldոդեք ձեր սխեման
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 րոպե: Այնուհետև միացրեք կեղևը:
Ես հաշվի չեմ առել նյութի լայնությունը, ինչը դժվարացնում է իմ կոճակները հասնելը: Ես դեռ պետք է միջոցներ գտնեմ դրանք ամրացնելու համար: Նրանք նաև շատ փոքր են, ինչը դժվարացնում է նրանց հետ աշխատանքը:
Խորհուրդ ենք տալիս:
DIY GPS Tracker --- Python հավելված. 5 քայլ (նկարներով)
DIY GPS Tracker --- Python հավելված. Ես երկու շաբաթ առաջ մասնակցեցի հեծանվավազքի միջոցառման: Ավարտելուց հետո ես ուզում էի ստուգել երթուղին և այն ժամանակվա իմ արագությունը: Unfortunatelyավոք, դա չհաջողվեց: Այժմ ես օգտագործում եմ ESP32- ը ՝ GPS հետևող պատրաստելու համար, և այն կվերցնեմ ՝ իմ հեծանվային երթուղին ձայնագրելու համար
Etextile VR ձեռնոցներ Vive Tracker- ի համար. 13 քայլ (նկարներով)
Etextile VR ձեռնոցներ Vive Tracker- ի համար. Այս ձեռնարկը ցույց է տալիս, թե ինչպես պատրաստել etextile ձեռնոցներ VR- ի հետագծում VR- ում օգտագործելու համար: Նրանք փոխարինում են Vive- ի համար նախատեսված ջոյստիկներին ՝ VR փոխազդեցությունները դարձնելով ավելի շոշափելի և մարդկային: Նրանք կոչվում են «մուդրա» ձեռնոցներ, քանի որ դուք սեղմում եք ինդեքսը և զ
DIY Solar Tracker: 27 քայլ (նկարներով)
DIY Solar Tracker: Ներածություն Մենք նպատակ ունենք երիտասարդ ուսանողներին ծանոթացնել ճարտարագիտության հետ և նրանց սովորեցնել արևային էներգիայի մասին; նրանց ստիպելով կառուցել Հելիոս ՝ որպես իրենց ուսումնական ծրագրի մի մաս: Engineeringարտարագիտության մեջ ջանքեր են գործադրվում էներգիայի արտադրությունը հեռացնելու հանածո վառելիքի օգտագործումից
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: 15 Steps (With Pictures)
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: Movie Tracker is a clapperboard shaped, Raspberry Pi powered Release Tracker. Այն օգտագործում է TMDb API- ն ՝ ձեր տարածաշրջանում սպասվող ֆիլմերի պաստառը, վերնագիրը, թողարկման ամսաթիվը և ակնարկը տպելու համար ՝ որոշակի ժամանակամիջոցում (օրինակ ՝ այս շաբաթվա ֆիլմերի թողարկումները)
Multi Task Raspberry 1 B (Անձնական ամպ + եղանակային կայան) ՝ 4 քայլ
Multi Task Raspberry 1 B (Անձնական ամպ + եղանակային կայան). Որոշ ժամանակ առաջ ես հիշեցի, որ ավելի նոր տարբերակ գնելուց հետո կար RPiB պահեստ: Մտածելով գաղտնիության մասին ՝ պահուստային ֆայլերս պահելիս, որոշեցի ունենալ իմ ամպային սերվերը: Ուրախ լավ արդյունքով, բայց չբավարարված R- ից ներուժի վատնումով