Spisu treści:
Wideo: Śledzenie produktywności - obsługiwane przez Raspberry Pi: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
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ł
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
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:
Kontrolowanie Led przez aplikację Blynk za pomocą Nodemcu przez Internet: 5 kroków
Sterowanie Led przez aplikację Blynk za pomocą Nodemcu przez Internet: Witam wszystkich Dzisiaj pokażemy Ci, jak sterować diodą LED za pomocą smartfona przez Internet
Zaplanuj zegar: Twój wirtualny asystent produktywności.: 6 kroków (ze zdjęciami)
Zegar harmonogramu: Twój wirtualny asystent ds. produktywności.: Jestem zawodowym prokrastynatorem! Ta blokada wprowadziła mnie w pętlę czasową, w której codziennie po prostu leci bez żadnej produktywnej pracy. Aby pokonać prokrastynację, stworzyłem prosty i szybki zegar, który ustala harmonogram mojej pracy. Teraz mogę po prostu trzymać się
Movie Tracker - kinowe śledzenie wydań Raspberry Pi Powered: 15 kroków (ze zdjęciami)
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: Movie Tracker to śledzący wydania w kształcie klapsa, zasilany z Raspberry Pi. Wykorzystuje API TMDb do drukowania plakatu, tytułu, daty wydania i przeglądu nadchodzących filmów w Twoim regionie, w określonym przedziale czasowym (np. premiery filmów w tym tygodniu) w
Rolling Robot z ESP32 Thing i sterownikiem TB6612FNG, sterowany przez Androida przez BLE: 11 kroków
Rolling Robot z ESP32 Thing i sterownikiem TB6612FNG, kontrolowany przez Androida przez BLE: Witam wszystkich To jest moja pierwsza instrukcja. Toczący się robot (nazywany Raidho - od runy kojarzącej się z ruchem) oparty na ESP32 Thing, TB6612 FNG i BLE. Jedną z części, która może wydawać się osobliwa, jest to, że zdjęcia nie pochodzą z procesu tworzenia
Śledzenie ubrań Raspberry Pi NFC: 5 kroków (ze zdjęciami)
Śledzenie ubrań Raspberry Pi NFC: Jeśli jesteś podobny do mnie, masz mały stos ubrań na podłodze, które mogą być brudne lub nie. Może to obejmować dżinsy, koszule i ledwo noszone szorty. Jak więc rozpoznać, które ubrania są czyste lub brudne? Wymyśliłem sposób na śledzenie