Spisu treści:

Śledzenie produktywności - obsługiwane przez Raspberry Pi: 9 kroków (ze zdjęciami)
Śledzenie produktywności - obsługiwane przez Raspberry Pi: 9 kroków (ze zdjęciami)

Wideo: Śledzenie produktywności - obsługiwane przez Raspberry Pi: 9 kroków (ze zdjęciami)

Wideo: Śledzenie produktywności - obsługiwane przez Raspberry Pi: 9 kroków (ze zdjęciami)
Wideo: Jak pracuję: stanowisko pracy i maksymalna produktywność 2024, Listopad
Anonim
Śledzenie produktywności - obsługiwane przez Raspberry Pi
Śledzenie produktywności - obsługiwane przez Raspberry Pi
Śledzenie produktywności - obsługiwane przez Raspberry Pi
Śledzenie produktywności - obsługiwane przez Raspberry Pi
Śledzenie produktywności - obsługiwane przez Raspberry Pi
Śledzenie produktywności - obsługiwane przez Raspberry Pi

Productivity Tracker to magiczne lustro, ale zamiast wyświetlać godzinę, pogodę i motywujący cytat, wyświetla 4 rzeczy;

Procent czasu spędzonego tego dnia na produktywnym materiale na komputerze i telefonie. (RescueTime)

Twoja lista rzeczy do zrobienia z Trello

Wykres radarowy pokazujący, ile czasu spędziłeś wraz z kategoriami programów-aplikacji, z których korzystałeś w porównaniu do poprzedniego użytkowania. (RescueTime)

Tygodniowy przegląd. (RescueTime)

A jeśli procent czasu spędzonego na produktywnym materiale przekracza 50%, diody LED będą świecić jasnozielonym kolorem. Jeśli jest poniżej 50%, wyświetli się czerwony kolor, sygnalizując, że jesteś bardziej produktywny! Możesz także sam wyznaczyć sobie cel.

Zarys

W pierwszym kroku wyjaśnię ideę narzędzia do śledzenia produktywności. Następnie dam ci dwa różne narzędzia i listę części, dzięki czemu możesz zbudować pełny projekt lub podstawową wersję (nie zawiera diod LED), która nie wymaga umiejętności lutowania. Później pokażę Ci, jak wykonałem prototyp mojej wersji projektu, więc masz pomysł na modelowanie własnego prototypu. Ponadto zajmę się szczegółami w sekcji kodu, abyś mógł dostosować kod do własnych potrzeb. Na koniec dam wam przewodnik rozwiązywania problemów w oparciu o problemy, które napotkałem podczas tej kompilacji. I poszerz listę o swoje pytania.

Celem tej instrukcji nie jest tylko wydanie książki kucharskiej. Pokażę Ci, w jaki sposób zbudowałem ten projekt i udzielę pytań otwartych, abyś mógł dodać własne pomysły i posunąć ten projekt jeszcze dalej. Gorąco zachęcam do udostępnienia swojego builda, gdy jest gotowy! Zacznijmy.

Krok 1: Pomysł

Pomysł
Pomysł

Zamierzałem napisać ten Instruktaż od miesięcy. Ale mój stary przyjaciel, który nazywa się "Prokrastynacja", nie pozwolił mi. Prokrastynacja to czynność opóźniania lub odkładania zadania lub zestawu zadań, a zamiast wykonywania tych zadań wypełnianie czasu oglądaniem filmów z mrocznych głębin YouTube.

Pewnego dnia, czytając artykuł na temat prokrastynacji, natknąłem się na wiele aplikacji/programów, które pomogłyby mi w rozwiązaniu mojego problemu, Trello jako aplikację do zarządzania zadaniami i RescueTime jako aplikację do zarządzania czasem. Obie działały idealnie na moje potrzeby, przynajmniej przez jakiś czas. Po pewnym czasie całkowicie przestałem sprawdzać aplikacje i zignorowałem powiadomienia. Wtedy wymyśliłem ten projekt. Dane z aplikacji wyświetlałbym na lustrze zawieszonym na ścianie. W ten sposób nie było ucieczki od moich obowiązków.

Pierwszy szkic mojego projektu był dość prosty. Użyłbym API RescueTime do wyświetlenia mojego procentu pracy produktywnej/dystrakcyjnej. I użyj Trello API, aby wyświetlić moją listę rzeczy do zrobienia na dany dzień. Ale po chwili dodałem kolejne funkcje, które szczegółowo omówię w kolejnych krokach.

Krok 2: Narzędzia i części

Uwaga: To jest lista narzędzi, których użyłem podczas mojej kompilacji, nie muszą być takie same dla twojej kompilacji!

Dla bazy:

4 metry sklejki 7x15cm - 6$ - To zależy od rozmiaru Twojego ekranu

Jednostronne lustro 30x40cm - w zależności od rozmiaru ekranu

Monitor Samsung 25x35cm - 15$ - Znaleziono na pchlim targu. każdy monitor by zrobił

Raspberry Pi 3 Model B- 35$ - Raspberry pi 2 też jest w porządku, ale potrzebujesz modułu wifi

Kabel HDMI - 2$

Dla błyskawicy Led:

Taśma Led 200cm smd5050 RGB - 4$ - Musi być smd5050 więcej o tym później…

  • Trzy N-kanałowe tranzystory MOSFET (np. IRLZ34N) - 2$
  • Zasilacz 12V-2A - 3.15$
  • Prototypowanie PCB - 1$

Narzędzia:

  • Piła do drewna
  • Klej do drewna
  • Lutownica (do oświetlenia LED)

Krok 3: Kodeks

Kod
Kod

Ten krok będzie składał się z 3 części, nie potrzebujesz wszystkich części wymienionych w poprzednim kroku. Raspberry Pi i monitor, którego użyjesz do tego projektu, powinny wystarczyć do etapu prototypowania.

Konfiguracja Raspberry Pi

Jeśli jeszcze nie ustawiłeś swojego Raspberry Pi, zrób to tutaj. W przypadku tej kompilacji musisz zainstalować Apache dla serwera WWW i kontrolera PHP-LED.

Aby zainstalować Apache, postępuj zgodnie z tym oficjalnym przewodnikiem.

Aby zainstalować kontroler PHP-LED postępuj zgodnie z tym przewodnikiem autorstwa Christiana Nikkanena

Teraz pobierz plik index.php z repozytorium projektu do swojego Raspberry Pi i umieść go w tej ścieżce:

/var/www/html/

Jeśli nie znasz się na przenoszeniu plików w Terminalu Linux, możesz zapoznać się z tym przewodnikiem, aby zacząć.

Dostosuj kod

Uwaga: Ta część wymaga trochę znajomości HTML/CSS, jeśli używasz innego monitora.

Dostosowanie zostanie wykonane w pliku index.php, który jest sercem tej kompilacji. Teraz śmiało podłącz monitor do Raspberry Pi, jeśli jeszcze tego nie zrobiłeś.

Teraz, jeśli spróbujesz otworzyć plik index.php, nie zadziała, ponieważ najpierw musisz wypełnić klucze API w kodzie, w tym celu przejdź do strony RescueTime i otwórz konto. Następnie przejdź do sekcji programistów i utwórz klucz API, naciskając Aktywuj ten klucz. Zapisz gdzieś swój klucz API.

Zrób to samo dla swojego klucza API Trello, Otwórz konto i przejdź do portalu dla programistów, aby wygenerować klucz API.

Następnie otwórz plik index.php, który umieściłeś w /var/www/html/ w swoim ulubionym edytorze tekstu i zastąp [API_KEY] własnym kluczem API, który otrzymałeś odpowiednio z RescueTime i Trello. [numer_listy] to numer listy, którego używasz dla swojej listy rzeczy do zrobienia Trello. Aby uzyskać ten numer, najpierw utwórz świeżą listę w Trello i nazwij ją „Do zrobienia”, będzie to lista, której użyjesz do swojej listy rzeczy do zrobienia i pojawi się w lustrze.

Następnie weź adres URL na pasku adresu, który wygląda tak:

trello.com/b/3hS6yyLo/nazwa-tablicy

i dodaj do niego.json w ten sposób:

trello.com/b/3hS6yyLo/nazwa-tablicy.json

i naciśnij enter, następnie zobaczysz bałagan z kodami na ekranie. Spróbuj znaleźć nazwę listy „Do zrobienia” w tym bałaganie. Powinna wyglądać mniej więcej tak: {"name":"Do zrobienia", "id":"5981c123cd1b23f13907cd18"}, Ten identyfikator to identyfikator Twojej listy. ten numer do [numer_listy] w pliku index.php.

Teraz otwórz przeglądarkę i wpisz localhost w pasku adresu i naciśnij enter. Powinieneś zobaczyć swoje dane wyświetlane na wykresach.

Uwaga: Rozmieszczenie wykresów może się różnić ze względu na rozdzielczość używanego monitora. Możesz edytować szerokość, wysokość i położenie elementów w części kodu CSS.

Teraz pozostaje już tylko zaprojektować ramkę wokół monitora i podłączyć diody LED.

Uwaga: Jeśli nie interesują Cię szczegóły API, możesz przejść do następnego kroku. W części API omówię szczegółowo jak działa cały program i pobiera dane z API.

API (szczegóły)

Sercem tego projektu są dwa interfejsy API;

  • Interfejs API Trello
  • RescueTime API

Chociaż w dokumentacji dostępne są szczegółowe informacje, zamierzam wyjaśnić, jakich danych z API używa ten projekt.

W części dotyczącej zarządzania czasem wywołanie API RescueTime, które pobiera informacje o czasie dla bieżącego dnia, to:

"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"

gdzie, date('R-m-d') to bieżąca data

Perspektywa=rank to typ sortowania danych w tym przypadku „ranga”, która oznacza większość czasu spędzonego

To wywołanie da plik w formacie JSON, który wygląda tak: (spójrz na data.json na końcu tego kroku)

Dane, których używamy z tego pliku, to „Czas spędzony (w sekundach)” i „Wydajność”, które mają wartości od -2 do 2, przy czym -2 rozprasza uwagę, a 2 produktywność. Dzięki tym danym możemy wygenerować wartość powyżej 100 dla wyniku produktywności.

Kolejne wywołanie API do RescueTime, „https://www.rescuetime.com/anapi/daily_summary_feed?key=[KLUCZ_API]”

Co daje tygodniowe podsumowanie danych, które wygląda tak: (spójrz na podsumowanie.json na końcu tego kroku). Użyłem tych danych do wygenerowania wykresu podsumowania tygodnia, który daje przegląd tygodnia.

Wywołanie Trello API, „https://api.trello.com/1/lists/[numer_listy]/cards?fields=name&key=[API_KEY]&token=[Token]”

Dzięki temu uzyskasz karty z listy Trello w następujący sposób:

[{"id":"5a4160103bfcd14994852f59", "name":"ceylan cinemagraph"}, {"id":"59e8241f6aa8662a51eb7de6", "name":"Dowiedz się GitHuB"}, {"id":"5981c19577c732f826ad8025", "name ":"Publish Instructible"}, {"id":"5a341dba7f17d235d7c5bbd1", "name":"PROGRAM PRZESTRZENI"}]

znowu możesz wyciągnąć tekst z tych kart i umieścić go w innym miejscu.

data.json

Sformatowane dane JSON
{
"notes":"data to tablica tablic (wierszy), nazw kolumn dla wierszy w row_headers",
"row_headers":[
"Ranga",
"Czas spędzony (sekundy)",
"Liczba ludzi",
"Działalność",
"Kategoria",
"Wydajność"
],
"wydziwianie":[
[
1,
1536,
1,
"pl.0wikipedia.org",
"Bez kategorii",
0
],
[
2,
1505,
1,
"youtube.com",
"Wideo",
-2
],
[
3,
1178,
1,
"OpenOffice",
"Pismo",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
„Informacje ogólne \u0026 Nauka”,
2
],
[
5,
602,
1,
"google.com.tr",
"Szukaj",
2
],
[
6,
439,
1,
"reddit.pl",
„Ogólne wiadomości \u0026 Opinia”,
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Pismo",
2
],
[
8,
361,
1,
"jemeksepeti.com",
"Zakupy ogólne",
-2
],
[
9,
356,
1,
"Gmail",
"E-mail",
0
],
[
10,
328,
1,
"Google Chrome",
„Przeglądarki”,
0
],
[
11,
207,
1,
"gwiazdy.bilkent.edu.tr",
„Informacje ogólne \u0026 Nauka”,
2
],
[
12,
179,
1,
"whatsapp",
"Natychmiastowa wiadomość",
-1
],

wyświetl rawdata.json hostowany z ❤ przez GitHub

podsumowanie.json

[
{
"id": 1515657600,
"date":"2018-01-11",
"impuls_produktywności":54,
"bardzo_produktywny_procent":34,2,
„procent_produktywny”:10.6,
"neutralny_procent": 25,6,
"procent_rozpraszający":0.0,
"bardzo_rozpraszający_procent":29,6,
"all_productive_percentage": 44,8,
"all_distracting_percentage":29,6,
"uncategorized_percentage":16.1,
"procent_biznesu":6.0,
"procent_komunikacji i_planowania":4.3,
"procent_sieci_społecznej":0.0,
"procent_projektu i składu":0.0,
"entertainment_percentage": 15,2,
"news_percentage":3.3,
"software_development_percentage":5.4,
"procent_odniesienia_i_nauczenia":22.8,
"procent_zakupów": 12,9,
"procent_narzędzia"::14.1,
"całkowita_godzina": 2,51,
"bardzo_produktywne_godziny":0.86,
"produktywne_godziny": 0,27,
"neutralne_godziny": 0,64,
"rozpraszające_godziny":0.0,
"very_distracting_hours":0.74,
"wszystkie_godziny_produktywności":1.12,
"all_distracting_hours":0.74,
"uncategorized_hours":0.4,
"godziny_pracy":0.15,
"godziny_komunikacji i harmonogramu":0.11,
"social_networking_hours":0.0,
"godziny_projektu i składu":0.0,
"godziny_rozrywki":0.38,
"godziny_aktualności":0.08,
"godziny_rozwoju_oprogramowania":0.13,
"godziny_odniesienia i_nauki":0,57,
"godziny_zakupów": 0,32,
"godziny_użytków": 0,35,
"total_duration_formatted":"2h 30m",
"very_productive_duration_formatted":"51m 26s",
"productive_duration_formatted":"15m 56s",
"neutral_duration_formatted":"38m 34s",
"distracting_duration_formatted":"bez czasu",
"very_distracting_duration_formatted":"44m 30s",
"all_productive_duration_formatted":"1 godz. 7 m",
"all_distracting_duration_formatted":"44m 30s",
"uncategorized_duration_formatted":"24m 11s",
"business_duration_formatted":"9m-6s",
"communication_and_scheduling_duration_formatted":"6m 26s",
"social_networking_duration_formatted":"bez czasu",
"design_and_composition_duration_formatted":"bez czasu",
"entertainment_duration_formatted":"22m 49s",
"news_duration_formatted":"4m 55s",
"software_development_duration_formatted":"8m 3s",
"reference_and_learning_duration_formatted":"34m 17s",
"shopping_duration_formatted":"19m 22s",
"utilities_duration_formatted":"21m-17s"
},
{
"id": 1515571200,
"date":"2018-01-10",
"impuls_produktywności":33,
"bardzo_produktywny_procent":21,9,
"procent_produktywny":2.3,
"neutralny_procent": 14,4,
„procent_rozpraszający”: 11,0,
"very_distracting_percentage": 50,3,
"all_productive_percentage":24,2,
"all_distracting_percentage":61.4,
"uncategorized_percentage":0.3,
"procent_biznesowy":0.0,
"procent_komunikacji i_planowania":13,5,
"procent_sieci_społecznej":0.0,
"procent_projektu i składu":6.3,
"entertainment_percentage": 44,7,
"news_percentage":4.2,
"procent_rozwoju_oprogramowania":0.0,
"procent_odniesienia_i_nauczenia":15,5,
"procent_zakupów":0.0,
"procent_utilities":15.4,
"całkowita_godzina":2.24,
"bardzo_produktywne_godziny":0.49,
"produktywne_godziny": 0,05,
"neutralne_godziny": 0,32,
"rozpraszające_godziny":0.25,
"bardzo_rozpraszające_godziny":1.13,
"all_productive_hours":0,54,
"all_distracting_hours":1,37,
"uncategorized_hours":0.01,
"godziny_pracy":0.0,
"godziny_komunikacji i harmonogramu":0.3,
"social_networking_hours":0.0,
"godziny_projektu i składu": 0,14,
"godziny_rozrywki":1.0,
"godziny_aktualności":0.09,
"godziny_rozwoju_oprogramowania":0.0,
"godziny_odniesienia i_nauki": 0,35,
"godziny_zakupów":0.0,
"godziny_użytków":0.34,
"total_duration_formatted":"2h 14m",
"very_productive_duration_formatted":"29m 22s",
"productive_duration_formatted":"3m 8s",
"neutral_duration_formatted":"19m-18s",
"distracting_duration_formatted":"14m 48s",
"very_distracting_duration_formatted":"1 godz. 7 m",
"all_productive_duration_formatted":"32m 30s",
"all_distracting_duration_formatted":"1 godz. 22 m",
"uncategorized_duration_formatted":"27 s",
"business_duration_formatted":"1s",
"communication_and_scheduling_duration_formatted":"18m 5s",
"social_networking_duration_formatted":"bez czasu",
"design_and_composition_duration_formatted":"8m 30s",
"entertainment_duration_formatted":"59m 54s",
"news_duration_formatted":"5m 39s",
"software_development_duration_formatted":"bez czasu",
"reference_and_learning_duration_formatted":"20m 51s",
"shopping_duration_formatted":"bez czasu",
"utilities_duration_formatted":"20 min 39 s"
},
{
"id": 1515484800,
"date":"2018-01-09",
"impuls_produktywności":68,
"bardzo_produktywny_procent":60,4,
"procent_produktywny":0,5,
„neutralny_procent”: 11,0,
"distracting_percentage":7.1,
"bardzo_rozpraszający_procent":21,0,
"all_productive_percentage": 60,9,
"all_distracting_percentage":28.1,
"uncategorized_percentage":9.1,
"procent_biznesowy": 21,9,
"komunikacja_i_scheduling_percentage":7.2,
"social_networking_percentage":5.1,
"procent_projektu i składu":1.2,
"entertainment_percentage": 1,6,
"procent_wiadomości":12,5,
"procent_rozwoju_oprogramowania":9.1,
"procent_odniesienia_i_nauczenia":28,2,
"procent_zakupów":2,9,
"utilities_percentage":1.2,
"całkowita_godzina": 2,78,
"bardzo_produktywne_godziny": 1.68,
"produktywne_godziny": 0,01,
"neutralne_godziny": 0,31,
"distracting_hours":0.2,
"very_distracting_hours":0,58,
"wszystkie_produktywne_godziny": 1.69,
"all_distracting_hours":0.78,
"uncategorized_hours":0.25,
"godziny_pracy":0.61,
"godziny_komunikacji i harmonogramu":0.2,
"social_networking_hours":0.14,
"projekt_i_skład_godziny":0.03,
"godziny_rozrywki":0.04,
"godziny_aktualności":0.35,
"godziny_rozwoju_oprogramowania":0.25,
"godziny_odniesienia i_nauki":0,78,
"godziny_zakupów":0.08,
"godziny_użytków":0.03,
"total_duration_formatted":"2h 46m",
"very_productive_duration_formatted":"1 godz. 40 m",
"productive_duration_formatted":"47s",
"neutral_duration_formatted":"18m 23s",
"distracting_duration_formatted":"11m 49s",
"very_distracting_duration_formatted":"34 mln 57 s",
"all_productive_duration_formatted":"1 godz. 41 m",
"all_distracting_duration_formatted":"46m 46s",
"uncategorized_duration_formatted":"15m-7s",
"business_duration_formatted":"36m 26s",
"communication_and_scheduling_duration_formatted":"11m 59s",
"social_networking_duration_formatted":"8m 28s",
"design_and_composition_duration_formatted":"2m 4s",
"entertainment_duration_formatted":"2m 39s",
"news_duration_formatted":"20m 49s",
"software_development_duration_formatted":"15m 5s",
"reference_and_learning_duration_formatted":"46m 59s",
"shopping_duration_formatted":"4m 51s",
"utilities_duration_formatted":"2m 3s"
}
]

wyświetl rawsummary.json hostowany z ❤ przez GitHub

Krok 4: Prototypowanie

Główna nagroda w konkursie Raspberry Pi 2017

Zalecana: