Obsah:
Video: Productivity Tracker - běží na Raspberry Pi: 9 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
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 \u0026 Učení", |
2 |
], |
[ |
5, |
602, |
1, |
"google.com.tr", |
"Vyhledávání", |
2 |
], |
[ |
6, |
439, |
1, |
"reddit.com", |
"Obecné zprávy \u0026 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 \u0026 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
Doporučuje:
DIY GPS Tracker --- Python aplikace: 5 kroků (s obrázky)
DIY GPS Tracker --- Aplikace v Pythonu: Před dvěma týdny jsem se zúčastnil cyklistické akce. Po dokončení jsem chtěl zkontrolovat trasu a rychlost, kterou jsem v té době jel. Bohužel toho nebylo dosaženo. Nyní používám ESP32 k výrobě GPS trackeru a vezmu ho k zaznamenání své cyklistické trasy
Desktop COVID19 Tracker s hodinami! Raspberry Pi Powered Tracker: 6 kroků
Desktop COVID19 Tracker s hodinami! Raspberry Pi Powered Tracker: Víme, že můžeme zemřít kdykoli, dokonce i já mohu zemřít při psaní tohoto příspěvku, koneckonců já já, vy, všichni jsme smrtelníci. Celý svět se otřásl kvůli pandemii COVID19. Víme, jak tomu zabránit, ale hej! víme, jak se modlit a proč se modlit, děláme
Přizpůsobení programu PulseSensor Visualizer události spouštění (Anti-Productivity Monitor): 8 kroků
Přizpůsobení programu PulseSensor Visualizer události spouštění (Anti-Productivity Monitor): V tomto návodu se naučíte, jak upravit program PulseSensor Visualizer, aby spustil událost ve webovém prohlížeči. Tomuto projektu říkám Monitor produktivity, protože přestože máme mnoho nástrojů, které nám pomáhají monitorovat naše životní funkce
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: 15 kroků (s obrázky)
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: Movie Tracker je klapka ve tvaru, Raspberry Pi poháněný Release Tracker. Používá API TMDb k tisku plakátu, názvu, data vydání a přehledu nadcházejících filmů ve vašem regionu v určeném časovém intervalu (např. Filmová vydání tento týden) na
Tracker oblečení Raspberry Pi NFC: 5 kroků (s obrázky)
Tracker oblečení Raspberry Pi NFC: Pokud jste jako já, pak máte na podlaze malou hromádku oblečení, které může, ale nemusí být špinavé. To může zahrnovat džíny, košile a sotva nošené šortky. Jak tedy poznáte, které oblečení je čisté nebo špinavé? Vymyslel jsem způsob, jak sledovat