Innehållsförteckning:

Produktivitetsspårare - Drivs av Raspberry Pi: 9 steg (med bilder)
Produktivitetsspårare - Drivs av Raspberry Pi: 9 steg (med bilder)

Video: Produktivitetsspårare - Drivs av Raspberry Pi: 9 steg (med bilder)

Video: Produktivitetsspårare - Drivs av Raspberry Pi: 9 steg (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Productivity Tracker - Drivs av Raspberry Pi
Productivity Tracker - Drivs av Raspberry Pi
Productivity Tracker - Drivs av Raspberry Pi
Productivity Tracker - Drivs av Raspberry Pi
Productivity Tracker - Drivs av Raspberry Pi
Productivity Tracker - Drivs av Raspberry Pi

Produktivitetsspårare är en magisk spegel, men istället för att visa tid, väder och ett motiverande citat visar den 4 saker;

Procentandelen av tiden du har lagt på produktivt material på din dator och telefon för den dagen. (RescueTime)

Din att göra-lista från Trello

Ett radardiagram som visar hur mycket tid du spenderade tillsammans med kategorierna av de program-appar du använde jämfört med gårdagens användning. (RescueTime)

En veckovis översikt. (RescueTime)

Och om procentandelen av tiden du har lagt på produktivt material är över 50% kommer lysdioderna att visa en ljusgrön färg. Om det är under 50% kommer det att visa en röd färg, vilket signalerar dig att vara mer produktiv! Du kan också sätta upp ett mål själv.

Översikt

I det första steget kommer jag att förklara tanken bakom produktivitetsspårare. Därefter ger jag dig två olika verktyg och reservdelslistor, så att du kan bygga hela projektet eller en grundversion (inkluderar inte lysdioderna) som inte kräver lödningskunskaper. Senare kommer jag att visa dig hur jag prototyperade min version av projektet, så att du har en idé om hur du modellerar din egen prototyp. Jag kommer också att gå in på detaljer i kodavsnittet så att du kan anpassa koden efter dina egna behov. I slutet kommer jag att ge dig en felsökningsguide baserat på problemen jag stötte på under denna byggnad. Och utöka listan med dina frågor.

Syftet med denna instruerbara är inte bara att ge dig en kokbok. Jag ska visa dig hur jag byggde det här projektet och ge dig öppna frågor, så att du kan lägga till dina egna idéer och ta detta projekt ännu längre. Jag uppmuntrar dig starkt att dela ditt bygge när det är klart! Låt oss börja.

Steg 1: Idén

Idén
Idén

Jag har tänkt skriva denna instruerbara i månader. Men en gammal vän till mig som går under namnet "Procrastination" lät mig inte. Att skjuta upp är att fördröja eller skjuta upp en uppgift eller uppsättning uppgifter, och istället för att utföra dessa uppgifter fyller tiden med att titta på videor från YouTubes mörka djup.

En dag när jag läste en artikel om förhalning stötte jag på flera appar/program som skulle hjälpa mig med mitt problem, Trello som en uppgiftshanteringsapp och RescueTime som en tidshanteringsapp. Båda fungerade perfekt för mina behov, åtminstone en tid. Efter ett tag slutade jag kolla apparna helt och hållet och ignorerade aviseringarna. Det var då jag kom på det här projektet. Jag skulle visa data från appar på en spegel som hängdes upp på min vägg. På så sätt kunde jag inte komma undan mitt ansvar.

Det första utkastet jag ritade för mitt projekt var ganska enkelt. Jag skulle använda RescueTime API för att visa min produktiva/distraktiva arbetsprocent. Och använd Trello API för att visa min att-göra-lista för dagen. Men efter ett tag lade jag till fler funktioner som jag kommer att få i detalj i nästa steg.

Steg 2: Verktyg och delar

Obs: Detta är en lista över verktyg jag använde under min byggnad, de behöver inte vara desamma för din byggnad!

För basen:

4 meter 7x15cm playwood - 6 $ - Det beror på din skärmstorlek

30x40cm enkelsidig spegel - beror på din skärmstorlek

25x35cm Samsung -skärm - 15 $ - Hittade på en loppis. någon bildskärm skulle göra

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 är också bra men du behöver en wifi -modul

HDMI -kabel - 2 $

För Led Lightning:

200 cm smd5050 RGB Led strip- 4 $ - Det måste vara smd5050 mer om detta senare …

  • Tre N -kanal MOSFET (t.ex. IRLZ34N) - 2 $
  • 12V -2A nätadapter - 3,15 $
  • Prototypning av kretskort - 1 $

Verktyg:

  • Träsåg
  • Trälim
  • Lödkolv (för LED -belysning)

Steg 3: Koden

Koden
Koden

Det här steget kommer att bestå av tre delar, du behöver inte alla delarna som listades i föregående steg. En hallon Pi och bildskärmen som du kommer att använda för detta projekt borde vara tillräckligt för prototyperingsstadiet.

Konfigurera din Raspberry Pi

Om du inte har ställt in din Raspberry Pi än så gör det här. För den här versionen måste du installera Apache för webbservern och PHP-LED-kontrollen.

För att installera Apache, följ den här officiella guiden.

Följ den här guiden av Christian Nikkanen för att installera PHP-LED-controller

Ladda nu ner index.php -filen från projektförvaret till din Raspberry Pi och lägg den på den här sökvägen:

/var/www/html/

Om du inte känner till att flytta filer i Linux Terminal kan du titta på den här guiden för att komma igång.

Anpassa koden

Obs! Den här delen kräver lite HTML/CSS -kunskap om du använder en annan bildskärm.

Anpassningen kommer att göras på index.php -filen som är kärnan i denna byggnad. Fortsätt nu och anslut din bildskärm till din Raspberry Pi om du inte redan gjorde det.

Om du nu försöker öppna index.php -filen fungerar det inte eftersom du först måste fylla API -nycklarna i koden, för att gå till RescueTime -webbplatsen och öppna ett konto. Gå sedan till utvecklaravsnittet och skapa en API -nyckel genom att trycka på Aktivera den här nyckeln. Skriv din API -nyckel till någonstans.

Gör samma sak för din Trello API -nyckel, öppna ett konto och gå till utvecklarportalen för att generera en API -nyckel.

Öppna sedan index.php -filen som du lägger in i/var/www/html/i din favorittextredigerare och ersätt [API_KEY] med din egen API -nyckel som du fick från RescueTime och Trello i enlighet därmed. [List_number] är listnumret som du använder för din att göra-lista Trello. För att få det numret skapar du först en ny lista på Trello och kallar den "Att göra", det här är listan som du kommer att använda för din att göra-lista och den visas i spegeln.

Ta sedan URL: en i adressfältet som ser ut som:

trello.com/b/3hS6yyLo/board-name

och lägg till.json till det så här:

trello.com/b/3hS6yyLo/board-name.json

och tryck på enter, därefter ser du en kodröra på skärmen. Försök hitta ditt listnamn '' Att göra '' på den röra. Det ska se ut ungefär så här: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, Id är din lista Id. Sätt det numret till [list_number] i index.php -filen.

Öppna nu din webbläsare och skriv localhost i adressfältet och tryck på enter. Du bör se dina data visas i graferna.

Obs! Placeringarna i graferna kan vara olika på grund av upplösningen på bildskärmen som du använder. Du kan redigera bredden, höjden och platsen för elementen i CSS -delen av koden.

Nu är det bara att designa en låda runt monitorn och ansluta lysdioderna.

Obs! Om du inte är intresserad av API: erna i detalj kan du hoppa till nästa steg. I API: s del kommer jag att få detaljerad information om hur hela programmet fungerar och hämtar data från API: er.

API: erna (i detalj)

Kärnan i detta projekt är de två API: erna;

  • Trello API
  • RescueTime API

Även om dokumentationen har detaljerad information tillgänglig, ska jag förklara vilka data från API: et detta projekt använder.

På tidshanteringsdelen är RescueTime API -anropet som får tidsinformationen för den aktuella dagen, "https://www.rescuetime.com/anapi/data?key=•. "& format = json"

var, datum ('Y-m-d') är det aktuella datumet

perspektiv = rang är datasorteringstypen i detta fall "rang" som står för den mesta tid som spenderas

Detta samtal ger en fil i JSON -format som ser ut så här: (titta på data.json i slutet av detta steg)

Data vi använder från den här filen är "Spenderad tid (sekunder)" och "Produktivitet" som har värden mellan -2 och 2, -2 är distraherande och 2 är produktiva. Med denna data kan vi generera ett värde över 100 för produktivitetspoängen.

Ytterligare ett API -anrop till RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Vilket ger dig en veckosammanfattning av dina data, som ser ut så här: (titta på summering.json i slutet av detta steg.) Jag använde dessa data för att generera veckosammanfattningsgrafen som ger dig en översikt över veckan.

Trello API -anropet, "https://api.trello.com/1/lists/[list_number]/cards?fields=name&key=[API_KEY]&token=[Token]"

Detta ger dig korten på din Trello -lista så här:

[{"id": "5a4160103bfcd14994852f59", "name": "ceylan cinemagraph"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "Learn GitHuB"}, {"id": "5981c19577 ":" Publish Instructible "}, {" id ":" 5a341dba7f17d235d7c5bbd1 "," name ":" SPACE PROGRAM "}]

igen kan du dra texten på dessa kort och lägga den på någon annanstans.

data.json

Formaterad JSON -data
{
"notes": "data är en rad matriser (rader), kolumnnamn för rader i row_headers",
"row_headers": [
"Rang",
"Spenderad tid (sekunder)",
"Antal personer",
"Aktivitet",
"Kategori",
"Produktivitet"
],
"rader": [
[
1,
1536,
1,
"en.0wikipedia.org",
"Okategoriserad",
0
],
[
2,
1505,
1,
"youtube.com",
"Video",
-2
],
[
3,
1178,
1,
"Öppet kontor",
"Skrift",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Allmän referens \u0026 lärande",
2
],
[
5,
602,
1,
"google.com.tr",
"Sök",
2
],
[
6,
439,
1,
"reddit.com",
"Allmänna nyheter / yttrande",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Skrift",
2
],
[
8,
361,
1,
"yemeksepeti.com",
"Allmän shopping",
-2
],
[
9,
356,
1,
"Gmail",
"E-post",
0
],
[
10,
328,
1,
"Google Chrome",
"Webbläsare",
0
],
[
11,
207,
1,
"stars.bilkent.edu.tr",
"Allmän referens \u0026 lärande",
2
],
[
12,
179,
1,
"whatsapp",
"Snabbmeddelande",
-1
],

visa rawdata.json värd med ❤ av GitHub

sammanfattning.json

[
{
"id": 1515657600,
"datum": "2018-01-11",
"produktivitetspuls": 54,
"mycket_produktiv_procent": 34,2,
"produktiv_procent": 10,6,
"neutral_procent": 25,6,
"distracting_percentage": 0,0,
"very_distracting_percentage": 29.6,
"all_produktiv_procent": 44,8,
"all_distracting_percentage": 29.6,
"uncategorized_percentage": 16.1,
"business_procent": 6,0,
"Communication_and_scheduling_percentage": 4.3,
"social_networking_percentage": 0.0,
"design_and_composition_percentage": 0,0,
"underhållningsprocent": 15,2,
"news_percentage": 3.3,
"software_development_percentage": 5.4,
"reference_and_learning_percentage": 22.8,
"shopping_procent": 12,9,
"utilities_percentage": 14.1,
"totala timmar": 2,51,
"very_productive_hours": 0,86,
"produktiva timmar": 0,27,
"neutrala timmar": 0,64,
"distraherande timmar": 0,0,
"very_distracting_hours": 0,74,
"all_productive_hours": 1.12,
"all_distracting_hours": 0,74,
"okategoriserade timmar": 0,4,
"business_hours": 0,15,
"Communication_and_scheduling_hours": 0,11,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0.0,
"underhållningstimmar": 0,38,
"news_hours": 0,08,
"software_development_hours": 0,13,
"reference_and_learning_hours": 0,57,
"shoppingtimmar": 0,32,
"utilities_hours": 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": "ingen tid",
"very_distracting_duration_formatted": "44m 30s",
"all_productive_duration_formatted": "1h 7m",
"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": "ingen tid",
"design_and_composition_duration_formatted": "ingen tid",
"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,
"datum": "2018-01-10",
"produktivitetspuls": 33,
"mycket_produktiv_procent": 21,9,
"produktiv_procent": 2.3,
"neutral_procent": 14,4,
"distracting_percentage": 11,0,
"very_distracting_percentage": 50,3,
"all_produktiv_procent": 24,2,
"all_distracting_percentage": 61.4,
"uncategorized_percentage": 0,3,
"business_procent": 0,0,
"Communication_and_scheduling_percentage": 13,5,
"social_networking_percentage": 0.0,
"design_and_composition_percentage": 6,3,
"underhållningsprocent": 44,7,
"news_percentage": 4.2,
"software_development_percentage": 0.0,
"reference_and_learning_percentage": 15,5,
"shopping_procent": 0,0,
"utilities_percentage": 15.4,
"totala timmar": 2,24,
"very_productive_hours": 0,49,
"produktiva timmar": 0,05,
"neutrala timmar": 0,32,
"distraherande timmar": 0,25,
"very_distracting_hours": 1.13,
"all_productive_hours": 0,54,
"all_distracting_hours": 1,37,
"okategoriserade timmar": 0,01,
"business_hours": 0.0,
"Communication_and_scheduling_hours": 0,3,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0,14,
"underhållningstimmar": 1.0,
"news_hours": 0,09,
"software_development_hours": 0.0,
"reference_and_learning_hours": 0.35,
"shoppingtimmar": 0,0,
"utilities_hours": 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": "1h 7m",
"all_productive_duration_formatted": "32m 30s",
"all_distracting_duration_formatted": "1t 22m",
"uncategorized_duration_formatted": "27s",
"business_duration_formatted": "1s",
"Communication_and_scheduling_duration_formatted": "18m 5s",
"social_networking_duration_formatted": "ingen tid",
"design_and_composition_duration_formatted": "8m 30s",
"entertainment_duration_formatted": "59m 54s",
"news_duration_formatted": "5m 39s",
"software_development_duration_formatted": "ingen tid",
"reference_and_learning_duration_formatted": "20m 51s",
"shopping_duration_formatted": "ingen tid",
"utilities_duration_formatted": "20m 39s"
},
{
"id": 1515484800,
"datum": "2018-01-09",
"produktivitetspuls": 68,
"mycket_produktiv_procent": 60,4,
"produktiv_procent": 0,5,
"neutral_procent": 11,0,
"distracting_percentage": 7.1,
"very_distracting_percentage": 21.0,
"all_produktiv_procent": 60,9,
"all_distracting_percentage": 28.1,
"uncategorized_percentage": 9.1,
"business_procent": 21,9,
"Communication_and_scheduling_percentage": 7,2,
"social_networking_percentage": 5.1,
"design_and_composition_percentage": 1.2,
"underhållningsprocent": 1,6,
"news_percentage": 12,5,
"software_development_percentage": 9.1,
"reference_and_learning_percentage": 28.2,
"shopping_procent": 2,9,
"utilities_percentage": 1.2,
"totala timmar": 2,78,
"very_productive_hours": 1,68,
"produktiva timmar": 0,01,
"neutrala timmar": 0,31,
"distraherande timmar": 0,2,
"very_distracting_hours": 0,58,
"all_productive_hours": 1,69,
"all_distracting_hours": 0,78,
"okategoriserade timmar": 0,25,
"business_hours": 0,61,
"Communication_and_scheduling_hours": 0,2,
"social_networking_hours": 0,14,
"design_and_composition_hours": 0,03,
"underhållningstimmar": 0,04,
"news_hours": 0,35,
"software_development_hours": 0,25,
"reference_and_learning_hours": 0,78,
"shoppingtimmar": 0,08,
"utilities_hours": 0,03,
"total_duration_formatted": "2h 46m",
"very_productive_duration_formatted": "1h 40m",
"productive_duration_formatted": "47s",
"neutral_duration_formatted": "18m 23s",
"distracting_duration_formatted": "11m 49s",
"very_distracting_duration_formatted": "34m 57s",
"all_productive_duration_formatted": "1t 41m",
"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"
}
]

visa rawsummary.json värd med ❤ av GitHub

Steg 4: Prototypning

Stora priset i Raspberry Pi -tävlingen 2017

Rekommenderad: