2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Productivity Tracker je kouzelné zrcadlo, ale místo zobrazení času, počasí a motivačního citátu zobrazuje 4 věci;
Procento času, který jste za daný den strávili produktivním materiálem na počítači a telefonu. (RescueTime)
Váš seznam úkolů od společnosti Trello
Radarový graf ukazující, kolik času jste strávili spolu s kategoriemi programů a aplikací, které jste použili, ve srovnání s včerejším používáním. (RescueTime)
Týdenní přehled. (RescueTime)
A pokud je procento času, který jste strávili produktivním materiálem, vyšší než 50%, LED diody zobrazí jasně zelenou barvu. Pokud je nižší než 50%, zobrazí se červená barva, což znamená, že budete produktivnější! Cíl si také můžete stanovit sami.
Obrys
V prvním kroku vysvětlím myšlenku sledující produktivitu. Dále vám poskytnu dva různé nástroje a seznam dílů, abyste mohli sestavit celý projekt nebo základní verzi (nezahrnuje diody LED), která nevyžaduje pájecí schopnosti. Později vám ukážu, jak jsem vytvořil prototyp své verze projektu, abyste měli představu o tom, jak vymodelovat svůj vlastní prototyp. Také se dostanu do podrobností v sekci kódu, abyste si mohli kód přizpůsobit svým vlastním potřebám. Na konci vám dám průvodce odstraňováním problémů na základě problémů, se kterými jsem se během této stavby setkal. A rozšiřte seznam o své otázky.
Účelem tohoto pokynu není jen dát vám kuchařku. Ukážu vám způsob, jakým jsem tento projekt postavil, a poskytnu vám otevřené otázky, abyste mohli přidat vlastní nápady a posunout tento projekt ještě dál. Důrazně vám doporučuji sdílet svou sestavu, až bude hotová! Začněme.
Krok 1: Idea
Měl jsem v úmyslu napsat tento Instructable měsíce. Ale můj starý přítel, který se jmenuje „prokrastinace“, mi to nedovolil. Prokrastinace je zdržení nebo odložení úkolu nebo sady úkolů, a místo toho, abyste tyto úkoly plnili, vyplňujete čas sledováním videí z temných hlubin YouTube.
Jednoho dne jsem při čtení článku o odkládání narazil na více aplikací/programů, které by mi pomohly s mým problémem, Trello jako aplikaci pro správu úloh a RescueTime jako aplikaci pro správu času. Oba fungovali perfektně pro mé potřeby, alespoň po určitou dobu. Po nějaké době jsem úplně přestal kontrolovat aplikace a ignoroval oznámení. Tehdy jsem přišel s tímto projektem. Data z aplikací bych zobrazil na zrcadle zavěšeném na zdi. Tímto způsobem nebylo úniku z mých povinností.
První návrh, který jsem nakreslil pro svůj projekt, byl poměrně jednoduchý. K zobrazení procenta produktivní/rušivé práce bych použil API RescueTime. A pomocí rozhraní Trello API zobrazte můj seznam úkolů pro daný den. Ale po chvíli jsem přidal další funkce, které podrobně získám v dalších krocích.
Krok 2: Nástroje a součásti
Poznámka: Toto je seznam nástrojů, které jsem použil během svého sestavování, nemusí být stejné pro vaši sestavu!
Pro základnu:
4 metry hracího dřeva 7 x 15 cm - 6 $ - záleží na velikosti obrazovky
Jednostranné zrcadlo 30 x 40 cm - závisí na velikosti obrazovky
25x35cm monitor Samsung - 15 $ - Nalezen na bleším trhu. jakýkoli monitor by to udělal
Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 je také v pořádku, ale budete potřebovat modul wifi
HDMI kabel - 2 $
Pro Led Lightning:
200cm smd5050 RGB LED pás - 4 $ - To musí být později smd5050 více…
- Tři N -kanálové MOSFETy (např. IRLZ34N) - 2 $
- Napájecí adaptér 12V -2A - 3,15 $
- Prototypování DPS - 1 $
Nástroje:
- Pila na dřevo
- Lepidlo na drevo
- Páječka (pro LED osvětlení)
Krok 3: Kód
Tento krok bude rozdělen na 3 části, nepotřebujete všechny součásti uvedené v předchozím kroku. Raspberry Pi a monitor, který pro tento projekt použijete, by měly ve fázi prototypu stačit.
Nastavení vašeho Raspberry Pi
Pokud jste svůj Raspberry Pi ještě nenastavili, pokračujte a udělejte to zde. Pro toto sestavení budete muset nainstalovat Apache pro webový server a ovladač LED LED.
Apache nainstalujete podle tohoto oficiálního průvodce.
Při instalaci ovladače PHP-LED postupujte podle této příručky od Christiana Nikkanena
Nyní si stáhněte soubor index.php z úložiště projektu do svého Raspberry Pi a vložte jej na tuto cestu:
/var/www/html/
Pokud nejste obeznámeni s přesouváním souborů v terminálu Linux, můžete se podívat na tuto příručku, abyste mohli začít.
Přizpůsobte kód
Poznámka: Tato část vyžaduje trochu znalostí HTML/CSS, pokud používáte jiný monitor.
Přizpůsobení bude provedeno v souboru index.php, který je základem tohoto sestavení. Nyní pokračujte a připojte svůj monitor k Raspberry Pi, pokud jste to ještě neudělali.
Pokud se nyní pokusíte otevřít soubor index.php, nebude to fungovat, protože nejprve musíte do kódu vyplnit klíče API, přejděte na web RescueTime a otevřete si účet. Dále přejděte do části pro vývojáře a vytvořte klíč API stisknutím tlačítka Aktivovat tento klíč. Někam napište svůj klíč API.
Totéž proveďte pro svůj klíč API Trello, otevřete si účet a přejděte na portál pro vývojáře a vygenerujte klíč API.
Dále otevřete soubor index.php, který jste vložili do/var/www/html/ve svém oblíbeném textovém editoru, a nahraďte [API_KEY] vlastním klíčem API, který jste získali od RescueTime a Trello. [Číslo_listu] je číslo seznamu, které používáte pro svůj seznam úkolů Trello. Abyste toto číslo získali, vytvořte nejprve na Trellu nový seznam a říkejte mu „To-Do“, toto bude seznam, který použijete pro svůj seznam úkolů a objeví se v zrcadle.
Dále vezměte adresu URL do adresního řádku, která vypadá takto:
trello.com/b/3hS6yyLo/board-name
a přidejte k tomu.json takto:
trello.com/b/3hS6yyLo/board-name.json
a stiskněte Enter, dále uvidíte na obrazovce kódový nepořádek. Zkuste v tom nepořádku najít název seznamu '' Úkoly '. Mělo by to vypadat nějak takto: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, toto ID je vaše ID seznamu. toto číslo na [číslo_čísla] v souboru index.php.
Nyní otevřete prohlížeč a do adresního řádku zadejte localhost a stiskněte Enter. Vaše data byste měli vidět na grafech.
Poznámka: Umístění grafů se může lišit kvůli rozlišení monitoru, který používáte. Šířku, výšku a umístění prvků v části CSS kódu můžete upravit.
Nyní zbývá jen navrhnout rámeček kolem monitoru a připojit diody LED.
Poznámka: Pokud vás rozhraní API podrobně nezajímá, můžete přeskočit na další krok. V části API se podrobně seznámím s tím, jak celý program funguje a získává data z API.
API (podrobně)
Srdcem tohoto projektu jsou dvě API;
- API Trello
- RescueTime API
Přestože dokumentace obsahuje podrobné informace, vysvětlím, která data z API tento projekt používá.
Na straně správy času je volání RescueTime API, které získá informace o čase pro aktuální den, "https://www.rescuetime.com/anapi/data?key=[API_KEY]&perspective=rank&interval=hour&restrict_begin=".date('Ym-d')."&restrict_end=".date('Ym-d '). "& format = json"
kde, date ('Y-m-d') je aktuální datum
perspektiva = pozice je typ třídění dat, v tomto případě „hodnost“, což znamená většinu času stráveného
Toto volání poskytne soubor ve formátu JSON, který vypadá takto: (podívejte se na data.json na konci tohoto kroku)
Data, která z tohoto souboru používáme, jsou „Čas strávený (sekundy)“a „Produktivita“, která má hodnoty mezi -2 a 2, -2 rušivé a 2 produktivní. S těmito daty můžeme pro skóre produktivity vygenerovat hodnotu přes 100.
Další API volání RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"
Což vám poskytne týdenní souhrn vašich dat, který vypadá takto: (podívejte se na Summary.json na konci tohoto kroku.) Tato data jsem použil ke generování týdenního souhrnného grafu, který vám poskytne přehled týdne.
Volání API Trello, "https://api.trello.com/1/lists/[list_number]/cards?fields=name&key=[API_KEY]&token=[Token]"
Tím získáte karty ve svém seznamu Trello takto:
[{"id": "5a4160103bfcd14994852f59", "name": "ceylan cinemagraph"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "Learn GitHuB"}, {"id": "5981c19577f732 ":" Publish Instructible "}, {" id ":" 5a341dba7f17d235d7c5bbbd1 "," name ":" SPACE PROGRAM "}]
opět můžete vytáhnout text na tyto karty a dát ho někam jinam.
data.json
Formátovaná data JSON |
{ |
"notes": "data jsou pole polí (řádků), názvy sloupců pro řádky v záhlaví řádků", |
"row_headers": [ |
"Hodnost", |
"Čas strávený (sekundy)", |
"Počet lidí", |
"Aktivita", |
"Kategorie", |
"Produktivita" |
], |
"řádky": [ |
[ |
1, |
1536, |
1, |
"en.0wikipedia.org", |
"Nezařazeno", |
0 |
], |
[ |
2, |
1505, |
1, |
"youtube.com", |
"Video", |
-2 |
], |
[ |
3, |
1178, |
1, |
"OpenOffice", |
"Psaní", |
2 |
], |
[ |
4, |
709, |
1, |
"moodle.bilkent.edu.tr", |
"Obecná reference & Učení", |
2 |
], |
[ |
5, |
602, |
1, |
"google.com.tr", |
"Vyhledávání", |
2 |
], |
[ |
6, |
439, |
1, |
"reddit.com", |
"Obecné zprávy & Názor", |
-2 |
], |
[ |
7, |
437, |
1, |
"tr.sharelatex.com", |
"Psaní", |
2 |
], |
[ |
8, |
361, |
1, |
"yemeksepeti.com", |
"Obecné nakupování", |
-2 |
], |
[ |
9, |
356, |
1, |
"Gmail", |
"E-mailem", |
0 |
], |
[ |
10, |
328, |
1, |
"Google Chrome", |
"Prohlížeče", |
0 |
], |
[ |
11, |
207, |
1, |
"stars.bilkent.edu.tr", |
"Obecná reference & Učení", |
2 |
], |
[ |
12, |
179, |
1, |
"whatsapp", |
"Okamžitá zpráva", |
-1 |
], |
zobrazit rawdata.json hostovaný s ❤ od GitHub
Summary.json
[ |
{ |
"id": 1515657600, |
"date": "2018-01-11", |
"produktivita_pulse": 54, |
"very_productive_percentage": 34,2, |
"produktivní_percentage": 10,6, |
"neutrální_procento": 25,6, |
"distracting_percentage": 0,0, |
"very_distracting_percentage": 29,6, |
"all_productive_percentage": 44,8, |
"all_distracting_percentage": 29,6, |
"uncategorized_percentage": 16.1, |
"business_percentage": 6.0, |
"communication_and_scheduling_percentage": 4.3, |
"social_networking_percentage": 0,0, |
"design_and_composition_percentage": 0,0, |
"Entertainment_percentage": 15.2, |
"news_percentage": 3.3, |
"software_development_percentage": 5,4, |
"reference_and_learning_percentage": 22,8, |
"nákupní_centrum": 12,9, |
"utilities_percentage": 14.1, |
"total_hours": 2,51, |
"very_productive_hours": 0,86, |
"produktivní_hodiny": 0,27, |
"neutral_hours": 0,64, |
"distracting_hours": 0,0, |
"very_distracting_hours": 0,74, |
"all_productive_hours": 1,12, |
"all_distracting_hours": 0,74, |
"uncategorized_hours": 0,4, |
"business_hours": 0,15, |
"communication_and_scheduling_hours": 0,11, |
"social_networking_hours": 0,0, |
"design_and_composition_hours": 0,0, |
"Entertainment_hours": 0,38, |
"news_hours": 0,08, |
"software_development_hours": 0,13, |
"reference_and_learning_hours": 0,57, |
"shopping_hours": 0,32, |
"utilities_hours": 0,35, |
"total_duration_formatted": "2h 30m", |
"very_productive_duration_formatted": "51 m 26 s", |
"produktctive_duration_formatted": "15 m 56 s", |
"neutral_duration_formatted": "38 m 34 s", |
"distracting_duration_formatted": "není čas", |
"very_distracting_duration_formatted": "44 m 30 s", |
"all_productive_duration_formatted": "1h 7m", |
"all_distracting_duration_formatted": "44 m 30 s", |
"uncategorized_duration_formatted": "24 m 11 s", |
"business_duration_formatted": "9 m 6 s", |
"communication_and_scheduling_duration_formatted": "6m 26s", |
"social_networking_duration_formatted": "není čas", |
"design_and_composition_duration_formatted": "není čas", |
"Entertainment_duration_formatted": "22 m 49 s", |
"news_duration_formatted": "4 m 55 s", |
"software_development_duration_formatted": "8 m 3 s", |
"reference_and_learning_duration_formatted": "34 m 17 s", |
"shopping_duration_formatted": "19 m 22 s", |
"utilities_duration_formatted": "21 m 17 s" |
}, |
{ |
"id": 1515571200, |
"date": "2018-01-10", |
"produktivita_pulse": 33, |
"very_productive_percentage": 21,9, |
"produktivní_procento": 2,3, |
"neutrální_procento": 14,4, |
"distracting_percentage": 11.0, |
"very_distracting_percentage": 50,3, |
"all_productive_percentage": 24.2, |
"all_distracting_percentage": 61,4, |
"uncategorized_percentage": 0,3, |
"business_percentage": 0,0, |
"communication_and_scheduling_percentage": 13.5, |
"social_networking_percentage": 0,0, |
"design_and_composition_percentage": 6,3, |
"procenta zábavy": 44,7, |
"news_percentage": 4.2, |
"software_development_percentage": 0,0, |
"reference_and_learning_percentage": 15,5, |
"nákupní_procento": 0,0, |
"utilities_percentage": 15,4, |
"total_hours": 2,24, |
"very_productive_hours": 0,49, |
"produktivní_hodiny": 0,05, |
"neutral_hours": 0,32, |
"distracting_hours": 0,25, |
"very_distracting_hours": 1,13, |
"all_productive_hours": 0,54, |
"all_distracting_hours": 1,37, |
"uncategorized_hours": 0,01, |
"business_hours": 0,0, |
"communication_and_scheduling_hours": 0,3, |
"social_networking_hours": 0,0, |
"design_and_composition_hours": 0,14, |
"Entertainment_hours": 1,0, |
"news_hours": 0,09, |
"software_development_hours": 0,0, |
"reference_and_learning_hours": 0,35, |
"shopping_hours": 0,0, |
"utilities_hours": 0,34, |
"total_duration_formatted": "2h 14m", |
"very_productive_duration_formatted": "29 m 22 s", |
"produktctive_duration_formatted": "3 m 8 s", |
"neutral_duration_formatted": "19 m 18 s", |
"distracting_duration_formatted": "14 m 48 s", |
"very_distracting_duration_formatted": "1h 7m", |
"all_productive_duration_formatted": "32 m 30 s", |
"all_distracting_duration_formatted": "1h 22m", |
"uncategorized_duration_formatted": "27 s", |
"business_duration_formatted": "1 s", |
"communication_and_scheduling_duration_formatted": "18m 5s", |
"social_networking_duration_formatted": "není čas", |
"design_and_composition_duration_formatted": "8 m 30 s", |
"Entertainment_duration_formatted": "59 m 54 s", |
"news_duration_formatted": "5 m 39 s", |
"software_development_duration_formatted": "není čas", |
"reference_and_learning_duration_formatted": "20 m 51 s", |
"shopping_duration_formatted": "není čas", |
"utilities_duration_formatted": "20 m 39 s" |
}, |
{ |
"id": 1515484800, |
"date": "2018-01-09", |
"produktivita_pulse": 68, |
"very_productive_percentage": 60,4, |
"produktivní_procento": 0,5, |
"neutral_percentage": 11.0, |
"distracting_percentage": 7.1, |
"very_distracting_percentage": 21.0, |
"all_productive_percentage": 60,9, |
"all_distracting_percentage": 28,1, |
"uncategorized_percentage": 9.1, |
"business_percentage": 21.9, |
"communication_and_scheduling_percentage": 7.2, |
"social_networking_percentage": 5.1, |
"design_and_composition_percentage": 1.2, |
"procenta zábavy": 1,6, |
"news_percentage": 12.5, |
"software_development_percentage": 9.1, |
"reference_and_learning_percentage": 28.2, |
"nákupní_centrum": 2,9, |
"utilities_percentage": 1.2, |
"total_hours": 2,78, |
"very_productive_hours": 1,68, |
"produktivní_hodiny": 0,01, |
"neutral_hours": 0,31, |
"rušivé_hodiny": 0,2, |
"very_distracting_hours": 0,58, |
"all_productive_hours": 1,69, |
"all_distracting_hours": 0,78, |
"uncategorized_hours": 0,25, |
"business_hours": 0,61, |
"communication_and_scheduling_hours": 0,2, |
"social_networking_hours": 0,14, |
"design_and_composition_hours": 0,03, |
"Entertainment_hours": 0,04, |
"news_hours": 0,35, |
"software_development_hours": 0,25, |
"reference_and_learning_hours": 0,78, |
"shopping_hours": 0,08, |
"utilities_hours": 0,03, |
"total_duration_formatted": "2h 46m", |
"very_productive_duration_formatted": "1h 40m", |
"produktctive_duration_formatted": "47 s", |
"neutral_duration_formatted": "18 m 23 s", |
"distracting_duration_formatted": "11 m 49 s", |
"very_distracting_duration_formatted": "34 m 57 s", |
"all_productive_duration_formatted": "1h 41m", |
"all_distracting_duration_formatted": "46 m 46 s", |
"uncategorized_duration_formatted": "15 m 7 s", |
"business_duration_formatted": "36 m 26 s", |
"communication_and_scheduling_duration_formatted": "11 m 59 s", |
"social_networking_duration_formatted": "8 m 28 s", |
"design_and_composition_duration_formatted": "2m 4s", |
"Entertainment_duration_formatted": "2 m 39 s", |
"news_duration_formatted": "20 metrů 49 s", |
"software_development_duration_formatted": "15 m 5 s", |
"reference_and_learning_duration_formatted": "46 m 59 s", |
"shopping_duration_formatted": "4 m 51 s", |
"utilities_duration_formatted": "2 m 3 s" |
} |
] |
zobrazit rawsummary.json hostovaný s ❤ od GitHub
Krok 4: Prototypování
Velká cena v soutěži Raspberry Pi Contest 2017