Obsah:
Video: Sledovač úloh TOYL: 3 kroky (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
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 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
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
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:
Stolový sledovač COVID19 s hodinami! Sledovač poháňaný Raspberry Pi: 6 krokov
Stolový sledovač COVID19 s hodinami! Raspberry Pi Powered Tracker: Vieme, že môžeme zomrieť kedykoľvek, dokonca aj ja môžem zomrieť pri písaní tohto príspevku, koniec koncov ja, ja, všetci sme smrteľníci. Celý svet sa otriasol kvôli pandémii COVID19. Vieme, ako tomu zabrániť, ale hej! vieme, ako sa modliť a prečo sa modliť, robíme
Časovač domácich úloh vyrobený spoločnosťou Arduino: 5 krokov
Časovač domácich úloh vyrobený spoločnosťou Arduino: Píše vaše dieťa svoje domáce úlohy hodiny? Je vaše dieťa ľahko rozptýlené ostatnými, keď si robí domáce úlohy? Dnes som sa pokúsil urobiť najlepšie riešenie tohto konfliktu: časovač vyrobený spoločnosťou Arduino. Prečo sa pokúšam vytvoriť tento časovač namiesto
Stavový stroj a viac úloh naraz na Arduine s expandérmi SPI: 3 kroky
State Machine a multitasking na Arduine s expandérmi SPI: Minulý týždeň som požiadal o vytvorenie systému na pilotovanie ohňostrojov s arduinom. Na ovládanie požiarov bolo potrebných asi 64 výstupov. Jedným zo spôsobov, ako to urobiť, je použiť expandéry IC. K dispozícii sú teda 2 riešenia:- expandér I2C, ktorý však vyžaduje invertor, keď
Správca úloh - Systém správy chorey domácnosti: 5 krokov (s obrázkami)
Správca úloh - Systém starostlivosti o domácnosť - Chore: Chcel by som sa pokúsiť vyriešiť skutočný problém, s ktorým sa stretáva naša domácnosť (a domnievam sa, že aj problém mnohých ďalších čitateľov), a to rozdeliť, motivovať a odmeniť svoje deti za pomoc. s domácimi prácami. Doteraz sme uchovávali laminátový plech
Polovodičový krivkový sledovač: 4 kroky (s obrázkami)
Polovodičový krivkový sledovač: S pozdravom! Znalosť prevádzkových vlastností akéhokoľvek zariadenia je potrebná na získanie prehľadu o tomto zariadení. Tento projekt by vám pomohol vykresliť krivky diód, bipolárnych tranzistorov typu NPN a MOSFETov typu n na prenosnom počítači doma! Pre tých