Obsah:

Sledovač úloh TOYL: 3 kroky (s obrázkami)
Sledovač úloh TOYL: 3 kroky (s obrázkami)

Video: Sledovač úloh TOYL: 3 kroky (s obrázkami)

Video: Sledovač úloh TOYL: 3 kroky (s obrázkami)
Video: Fanoušci mi “vlezli” na pozemek! 😱 Děcka, tohle není v pořádku! 🥵 2024, Júl
Anonim
Image
Image
Sledovač úloh TOYL
Sledovač úloh TOYL
Sledovač úloh TOYL
Sledovač úloh TOYL

Nenávidíte to, keď plánujete pracovať alebo ešte horšie, ste uprostred pracovného zasadnutia a na váš telefón príde upozornenie-„rýchla kontrola“sa stane o niekoľko hodín neskôr. Tiež viete, koľko času pracujete na určitých úlohách v porovnaní s časom, ktorý ste si vyhradili na prácu týždenne?

Zadajte nástroj na sledovanie úloh TOYL. Umožňuje vám vypnúť telefón a sústrediť sa na prácu a súčasne vám umožňuje nastaviť čas, ktorý by ste chceli pracovať týždenne, povedzme 60 hodín-a úlohy, ktoré by ste chceli zvládnuť. Keď si sadnete na sedenie, získate predstavu o tom, koľko času vám zostáva na celkovú prácu. Tracker má dva režimy: Časovač, kde ste si prednastavili, koľko času by ste chceli venovať jednej úlohe za týždeň, a Stopky, kde môžete časovač jednoducho spustiť alebo zastaviť po výbere úlohy.

Zásoby

Obvod

  • Adafruit Feather Huzzah
  • Perie Adafruit
  • Samčie kolíkové hlavičky
  • Ženské kolíkové hlavičky
  • 500 mAh batéria
  • Rezistory 100K ohm x2
  • Izolačná páska
  • Splietaný drôt
  • Odizolovače drôtov
  • Spájkovací ventilátor

Plášť

  • Nepriehľadný akrylový list 24 "x 18"
  • Obojstranná lepiaca páska
  • Prístup k laserovej rezačke
  • Vektorový softvér

Krok 1: Spájkujte svoj obvod

Spájkujte svoj obvod
Spájkujte svoj obvod
Spájkujte svoj obvod
Spájkujte svoj obvod
Spájkujte svoj obvod
Spájkujte svoj obvod

Spájkujte kolíkové kolíky samice k peru Huzzah. Tento návod je užitočný pre nastavenie hardvéru Feather Huzzah. Potom spájajte kolíkové kolíky samcov s FeatherWing. Spájkovanie týmto spôsobom vám umožní v prípade potreby spojiť a oddeliť perové krídlo od peria Huzzah. To je obzvlášť praktické, keď potrebujete do svojho FeatherWing pridať odpory, čo je ďalší krok. Pripojte odpory 100K ohmov z každého kolíka 0 a 2, pripojeného k 3V.

Nastavte si hardvér Feather Huzzah

Nastavte si hardvér Feather Wing

Krok 2: Pridajte svoj kód

Pridajte svoj kód
Pridajte svoj kód
Pridajte svoj kód
Pridajte svoj kód

Tento kód je adaptáciou kódu Lekcie 5 Internet vecí, pokiaľ to čas dovolí, chcel by som nahradiť službu Preceptitaton službou, ktorá sleduje úlohy, ktoré sú pridané prostredníctvom apletu ToDosit IFTTT. V tejto chvíli by ste museli ručne zadať sadu úloh a pomocou tlačidla A ich prechádzať. Okrem toho by som bol rád, keby bol časový spínač kódovaný tak, aby počítal v minútach a zastavil sa pri prepínaní na ďalšiu úlohu. Obrovské ďakujem Becky Sternovej za vytvorenie základného kódu pre časovač a cyklické plnenie úloh. Ak máte záujem o pripojenie projektu k internetu, veľmi by som odporučil prejsť touto sadou tried.

// Instructables Internet of Things Vzorový kód triedy // Okruh zobrazuje internetové údaje // Údaje o počasí sú zhromažďované v kanáli // Viaceré NeoPixely vizualizujú poveternostné podmienky // // Upravené spoločnosťou Becky Stern 2017 // na základe príkladu predplatného Adafruit IO

// Adafruit investuje čas a zdroje do poskytovania tohto otvoreného zdrojového kódu.

// Podporte prosím Adafruit a hardvér s otvoreným zdrojovým kódom nákupom // produktov od Adafruit! // // Napísal Todd Treece pre Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Licencované pod licenciou MIT. // // Všetky texty uvedené vyššie musia byť zahrnuté v akejkoľvek redistribúcii.

/************************ Konfigurácia Adafruit IO ********************* *********

/ navštívte io.adafruit.com, ak si potrebujete vytvoriť účet, // alebo ak potrebujete svoj kľúč IO Adafruit. #define IO_USERNAME "YourUsernameHere" #define IO_KEY "YourIOKeyHere"

/******************************************************************************* *********************/

#define WIFI_SSID „WifiName“

#define WIFI_PASS "WifiPassword"

#include "AdafruitIO_WiFi.h"

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

/************************* Začína sa tu hlavný program ******************** **********/

#include #include #include #include

#zahrnúť

#include #include #include

#define OLED_RESET 3

Displej Adafruit_SSD1306 (128, 32, & Wire, OLED_RESET);

// táto konštanta sa nezmení:

tlačidlo const intPinA = 0; // piny, ku ktorym su tlacidla prichytene k const int buttonPinB = 16; // tento už má pullup rezistor, ostatné dva potrebujú jedno const int buttonPinC = 2;

// Premenné sa zmenia:

int tlačidloAPushCounter = 0; // počítadlo počtu stlačení tlačidiel int buttonAState = 0; // aktuálny stav tlačidla int lastButtonAState = 0; // predchádzajúci stav tlačidla

// Premenné sa zmenia:

int tlačidloBPushCounter = 0; // počítadlo počtu stlačení tlačidiel int buttonBState = 0; // aktuálny stav tlačidla int lastButtonBState = 0; // predchádzajúci stav tlačidla

// Premenné sa zmenia:

int tlačidloCPushCounter = 0; // počítadlo počtu stlačení tlačidiel int buttonCState = 0; // aktuálny stav tlačidla int lastButtonCState = 0; // predchádzajúci stav tlačidla

String displayForecast = "neznámy";

int timerVal = 0;

nepodpísaný dlhý lastStartTime = 0; bool timerEnabled = 0;

AdafruitIO_Feed *zrážky = io.feed („zrážky“); // nastavte informačný kanál pre zrážky

// AdafruitIO_Feed *taskmanager = io.feed ("taskmanager"); // nastavte informačný kanál „taskmanager“

neplatné nastavenie () {

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

// SSD1306_SWITCHCAPVCC = generovať napätie displeja z 3,3 V interne

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Adresa 0x3C pre 128x32

// Zobraziť pôvodný obsah vyrovnávacej pamäte na obrazovke -

// knižnica to inicializuje pomocou úvodnej obrazovky Adafruit. display.display (); oneskorenie (2000); // Pauza na 2 sekundy

// Vymažte vyrovnávaciu pamäť.

display.clearDisplay ();

// spustite sériové pripojenie

Serial.begin (115200);

// pripojenie na io.adafruit.com

Serial.print („Pripojenie k Adafruit IO“); io.connect (); // nastavenie obsluhy správ pre informačný kanál 'vyzrážanie'. // funkcia handleMessage (definovaná nižšie) // sa bude volať vždy, keď bude // prijatá správa z adafruit io. zrážky-> onMessage (handleMessage);

// počkajte na pripojenie

while (io.status () <AIO_CONNECTED) {Serial.print ("."); oneskorenie (500); }

// sme spojení

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

}

prázdna slučka () {

// io.run (); je potrebný pre všetky náčrty.

// vždy by mal byť prítomný v hornej časti funkcie loop //. udržuje klienta v spojení s // io.adafruit.com a spracováva všetky prichádzajúce údaje. io.run ();

// prečítajte si vstupný pin tlačidla:

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

// porovnanie buttonState s predchádzajúcim stavom

if (buttonAState! = lastButtonAState || buttonBState! = lastButtonBState || buttonCState! = lastButtonCState) {// ak sa stav zmenil, zvýšte počítadlo, ak (buttonAState == LOW) {// ak je aktuálny stav NÍZKY, potom tlačidlo bolo stlačené tlačidloAPushCounter ++; Serial.print ("počet stlačení tlačidla A:"); Serial.println (buttonAPushCounter); } if (buttonBState == LOW) {// ak je aktuálny stav LOW, potom bolo tlačidlo stlačené buttonBPushCounter ++; Serial.print ("počet stlačení tlačidla B:"); Serial.println (buttonBPushCounter); Serial.println ("Časovač spustenia"); timerEnabled = 1; lastStartTime = millis (); } if (buttonCState == LOW) {// ak je aktuálny stav LOW, potom bolo tlačidlo stlačené buttonCPushCounter ++; Serial.print ("počet stlačení tlačidla C:"); Serial.println (buttonCPushCounter); Serial.println ("Časovač zastavenia"); timerEnabled = 0; }} if (timerEnabled == 1) {// zvýši časovač iba vtedy, keď bol spustený timerVal = (millis () - lastStartTime)/1000; }

// pozícia zobrazenia 1 - predpoveď

// if (buttonAPushCounter % 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (WHITE); // display.setCursor (0, 0); // display.print ("Predpoveď:"); // display.println (displayForecast); // display.setCursor (0, 16); // display.println ("druhý riadok"); // display.println ("ukážkový obsah"); // display.display (); // // oneskorenie (2000); //}

// pozícia zobrazenia 1 - úloha 1

if (buttonAPushCounter % 3 == 0) {display.setTextSize (1); display.setTextColor (BIELY); display.clearDisplay (); display.setCursor (0, 0); display.println („Výskum - rozhovory“); display.println (); display.print ("Časovač:"); display.println (timerVal); display.display (); }

// pozícia zobrazenia 2 - úloha 2

if (buttonAPushCounter % 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println („Making Studio - Code“); display.println (); display.print ("Časovač:"); display.println (timerVal); display.display (); }

// pozícia zobrazenia 3 - úloha 3

if (buttonAPushCounter % 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println („DSV - skicovanie“); display.println (); display.print ("Časovač:"); display.println (timerVal); display.display (); }

// uloženie aktuálneho stavu ako posledného stavu, // nabudúce cez slučku lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;

}

// táto funkcia sa volá vždy, keď príde správa

// je prijaté od Adafruit IO. bol pripojený k // informačnému kanálu vo funkcii setup () vyššie. void handleMessage (údaje AdafruitIO_Data *) {

Reťazcová predpoveď = údaje-> toString (); // uložte prichádzajúce údaje o počasí do reťazca

Serial.print ("prijatý <-"); Serial.println (predpoveď); displayForecast = predpoveď; // nasledujúce reťazce ukladajú rôzne slová hlásenia o počasí IFTTT, ktoré som zatiaľ objavil. String task1 = String ("Úloha 1"); String rain = String („Dážď“); String lightrain = String („Slabý dážď“); String rainshower = String („Dažďová sprcha“); Reťazec AMshowers = Reťazec („AM sprchy“); String rainandsnow = String („Dážď a sneh“); String snow = String („Sneh“); String snowshower = String („Snehová sprcha“); String cloudy = String ("Cloudy"); String většinou zatiahnuté = String ("Skoro zatiahnuté"); String částečný oblak = String ("Čiastočne zamračené"); String clearsky = String ("Vymazať"); String fair = String ("Fair"); String Sunny = String ("Sunny");

// Tieto príkazy porovnávajú prichádzajúcu premennú počasia s uloženými podmienkami a podľa toho riadia NeoPixels.

// ak je v predpovedi dážď if (forecast.equalsIgnoreCase (dážď) || prognóza.equalsIgnoreCase (lightrain) || prognóza.equalsIgnoreCase (dažďová sprcha) || prognóza.equalsIgnoreCase (AMshowers)) {Serial.println ( zrážky v predpoveď na dnes “);

}

// ak je v predpovedi sneh if (prognóza.equalsIgnoreCase (sneh) || prognóza.equalsIgnoreCase (dážďovka) || prognóza.equalsIgnoreCase (snežná sprcha)) {Serial.println ("zrážky v predpovedi dnes");

}

// ak je v predpovedi slnko if (prognóza.equalsIgnoreCase (clearsky) || prognóza.equalsIgnoreCase (férová) || prognóza.equalsIgnoreCase (slnečná)) {Serial.println ("nejaký druh slnka v predpovedi dnes");

}

// ak sú v predpovedi mraky if (forecast.equalsIgnoreCase (oblačno) || prognóza.equalsIgnoreCase (väčšinou zatiahnutá obloha) || prognóza.equalsIgnoreCase (polojasno)) {Serial.println ("zamračená obloha v dnešnej predpovedi");

}

}

Krok 3: Vytvorte kontajner / škrupinu

Vytvorte kontajner / škrupinu
Vytvorte kontajner / škrupinu
Vytvorte kontajner / škrupinu
Vytvorte kontajner / škrupinu
Vytvorte kontajner / škrupinu
Vytvorte kontajner / škrupinu
Vytvorte kontajner / škrupinu
Vytvorte kontajner / škrupinu

Pokiaľ ide o shell, začnite určením veľkosti, akú by ste chceli, aby mal váš rámček, alebo si môžete stiahnuť môj súbor. Akonáhle určíte veľkosť, môžete pomocou MakerCase vytvoriť rozloženie pre vektorový súbor.

Spustite súbor laserovou rezačkou - malo by to trvať asi 5 minút. Potom dajte škrupinu dohromady.

Nezohľadnil som šírku materiálu, kvôli ktorému je moje tlačidlá ťažko dostupné. Stále musím nájsť spôsob, ako ich pripevniť. Sú tiež veľmi malé, a preto sa s nimi ťažko pracuje.

Odporúča: