Indholdsfortegnelse:

Produktivitetstracker - drevet af Raspberry Pi: 9 trin (med billeder)
Produktivitetstracker - drevet af Raspberry Pi: 9 trin (med billeder)

Video: Produktivitetstracker - drevet af Raspberry Pi: 9 trin (med billeder)

Video: Produktivitetstracker - drevet af Raspberry Pi: 9 trin (med billeder)
Video: Тысячи Археологов со Всего Мира Пытаются Добиться Справедливости 2024, November
Anonim
Produktivitetstracker - Drevet af Raspberry Pi
Produktivitetstracker - Drevet af Raspberry Pi
Produktivitetstracker - Drevet af Raspberry Pi
Produktivitetstracker - Drevet af Raspberry Pi
Produktivitetstracker - Drevet af Raspberry Pi
Produktivitetstracker - Drevet af Raspberry Pi

Produktivitetstracker er et magisk spejl, men i stedet for at vise tid, vejr og et motiverende citat viser det 4 ting;

Procentdelen af den tid, du har brugt på produktivt materiale på din computer og telefon for den dag. (RescueTime)

Din huskeliste fra Trello

En radargraf, der viser, hvor meget tid du har brugt sammen med kategorierne af de programmer-apps, du brugte i forhold til i gårs brug. (RescueTime)

En ugentlig oversigt. (RescueTime)

Og hvis procentdelen af den tid, du har brugt på produktivt materiale, er over 50%, viser lysdioderne en lysegrøn farve. Hvis det er under 50%, viser det en rød farve, hvilket signalerer dig til at være mere produktiv! Du kan også selv sætte et mål.

Omrids

I det første trin vil jeg forklare ideen bag produktivitetssporing. Dernæst giver jeg dig to forskellige værktøjer og deleliste, så du kan bygge det fulde projekt eller en grundlæggende version (Inkluderer ikke lysdioderne), der ikke kræver loddefærdigheder. Senere vil jeg vise dig, hvordan jeg prototyperede min version af projektet, så du har en idé om, hvordan du modellerer din egen prototype. Jeg vil også komme i detaljer i kodesektionen, så du kan tilpasse koden til dine egne behov. I slutningen vil jeg give dig en fejlfindingsguide baseret på de problemer, jeg stødte på under denne build. Og udvid listen med dine spørgsmål.

Formålet med denne instruktive er ikke kun at give dig en kogebog. Jeg viser dig, hvordan jeg byggede dette projekt og giver dig åbne spørgsmål, så du kan tilføje dine egne ideer og tage dette projekt endnu længere. Jeg opfordrer dig kraftigt til at dele din build, når den er færdig! Lad os komme igang.

Trin 1: Idéen

Ideen
Ideen

Jeg har haft til hensigt at skrive denne instruktive i flere måneder. Men en gammel ven af mig, der går under navnet "udsættelse", lod mig ikke. Udsættelse er handlingen med at forsinke eller udsætte en opgave eller et sæt opgaver, og i stedet for at udføre disse opgaver fylder tiden med at se videoer fra YouTubes mørke dybder.

En dag mens jeg læste en artikel om udsættelse, stødte jeg på flere apps/programmer, der ville hjælpe mig med mit problem, Trello som en opgavehåndteringsapp og RescueTime som en tidsstyringsapp. Begge fungerede perfekt til mine behov, i hvert fald i en periode. Efter et stykke tid stoppede jeg helt med at kontrollere apps og ignorerede meddelelserne. Det var da jeg kom på dette projekt. Jeg ville vise data fra apps på et spejl hængt på min væg. På denne måde var der ingen flugt fra mit ansvar.

Det første udkast, jeg tegnede til mit projekt, var ret simpelt. Jeg ville bruge RescueTime API til at vise min produktive/distraktive arbejdsprocent. Og brug Trello API til at vise min huskeliste for dagen. Men efter et stykke tid tilføjede jeg flere funktioner, som jeg vil få detaljeret i de næste trin.

Trin 2: Værktøjer og dele

Bemærk: Dette er en liste over værktøjer, jeg brugte under min build, de behøver ikke at være de samme for din build!

Til basen:

4 meter 7x15cm playwood - 6 $ - Det afhænger af din skærmstørrelse

30x40cm ensidig spejl - afhænger af din skærmstørrelse

25x35cm Samsung skærm - 15 $ - Fundet på et loppemarked. enhver skærm ville gøre

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 er også fin, men du skal bruge et wifi -modul

HDMI -kabel - 2 $

Til Led Lightning:

200 cm smd5050 RGB Led strip- 4 $ - Det skal være smd5050 mere om dette senere …

  • Tre N -kanal MOSFET'er (f.eks. IRLZ34N) - 2 $
  • 12V -2A strømadapter - 3,15 $
  • Prototype PCB - 1 $

Værktøjer:

  • Træsav
  • Trælim
  • Loddejern (til LED -belysning)

Trin 3: Koden

Koden
Koden

Dette trin vil være i 3 dele, du behøver ikke alle de dele, der er angivet i det foregående trin. En Raspberry Pi og den skærm, du vil bruge til dette projekt, burde være nok til prototypefasen.

Opsætning af din Raspberry Pi

Hvis du ikke har indstillet din Raspberry Pi endnu, skal du gøre det her. Til denne build skal du installere Apache til webserveren og PHP-LED-controlleren.

Følg denne officielle guide for at installere Apache.

Følg denne vejledning af Christian Nikkanen for at installere PHP-LED-controlleren

Download nu index.php -filen fra projektlageret til din Raspberry Pi og læg den på denne sti:

/var/www/html/

Hvis du ikke er bekendt med at flytte filer rundt i Linux Terminal, kan du se denne vejledning for at komme i gang.

Tilpas koden

Bemærk: Denne del kræver en smule HTML/CSS -viden, hvis du bruger en anden skærm.

Tilpasningen udføres på index.php -filen, som er kernen i denne build. Fortsæt nu og tilslut din skærm til din Raspberry Pi, hvis du ikke allerede har gjort det.

Hvis du nu prøver at åbne filen index.php, virker det ikke, fordi du først skal udfylde API -nøglerne i koden, for at gå til RescueTime -webstedet og åbne en konto. Gå derefter til udviklerafsnittet og opret en API -nøgle ved at trykke på Aktiver denne nøgle. Skriv din API -nøgle til et sted.

Gør det samme for din Trello API -nøgle, Åbn en konto, og gå til udviklerportalen for at generere en API -nøgle.

Åbn derefter den index.php -fil, du lagde i/var/www/html/i din foretrukne teksteditor, og erstat [API_KEY] med din egen API -nøgle, som du fik fra RescueTime og Trello i overensstemmelse hermed. [List_number] er det listenummer, du bruger til din huskeliste Trello. For at få dette nummer skal du først oprette en ny liste på Trello og kalde den "To-Do", dette er den liste, du vil bruge til din huskeliste, og den vises på spejlet.

Tag derefter webadressen på din adresselinje, der ligner:

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

og tilføj.json til det sådan her:

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

og tryk på enter, derefter ser du et kode -rod på skærmen. Prøv at finde dit listenavn '' To-Do 'på det rod. Det skal se sådan ud: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, Id'et er din liste-id. Put dette nummer til [list_number] i filen index.php.

Åbn nu din browser, og skriv localhost til adresselinjen, og tryk på enter. Du skal se dine data vises på graferne.

Bemærk: Placeringerne af graferne kan være forskellige på grund af opløsningen på den skærm, du bruger. Du kan redigere bredden, højden og placeringen af elementerne i CSS -delen af koden.

Nu er det bare at designe en kasse omkring skærmen og tilslutte lysdioderne.

Bemærk: Hvis du ikke er interesseret i API'erne i detaljer, kan du springe til det næste trin. I API'ens del vil jeg komme i detaljer, hvordan hele programmet fungerer og får data fra API'er.

API'erne (i detaljer)

Kernen i dette projekt er de to API'er;

  • Trello API
  • RescueTime API

Selvom dokumentationen har detaljerede oplysninger til rådighed, vil jeg forklare, hvilke data fra API'en dette projekt bruger.

I tidsstyringsdelen er RescueTime API -opkaldet, der får tidsoplysninger for den aktuelle dag, "https://www.rescuetime.com/anapi/data?key=[API_KEYphia&perspective=rank&interval=hour&restrict_begin=".date('Ym-d')."&restrict_end=".date('Ym-d '). "& format = json"

hvor, dato ('Y-m-d') er den aktuelle dato

perspektiv = rang er datasorteringstypen i dette tilfælde "rang", der står for det meste af tiden

Dette opkald giver en fil i JSON -format, der ser sådan ud: (se data.json i slutningen af dette trin)

De data, vi bruger fra denne fil, er "brugt tid (sekunder)" og "produktivitet", der har værdier mellem -2 og 2, -2 er distraherende og 2 er produktive. Med disse data kan vi generere en værdi over 100 for produktivitetsscoren.

Endnu et API -opkald til RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Hvilket giver dig en ugentlig oversigt over dine data, der ser sådan ud: (se Summary.json i slutningen af dette trin.) Jeg brugte disse data til at generere den ugentlige oversigtsgraf, der giver dig et overblik over ugen.

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

Dette giver dig kortene på din Trello -liste sådan her:

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

igen kan du trække teksten på disse kort og sætte den et andet sted.

data.json

Formaterede JSON -data
{
"notes": "data er en matrix af arrays (rækker), kolonnenavne til rækker i row_headers",
"row_headers": [
"Rang",
"Brugt tid (sekunder)",
"Antal mennesker",
"Aktivitet",
"Kategori",
"Produktivitet"
],
"rækker": [
[
1,
1536,
1,
"en.0wikipedia.org",
"Ikke kategoriseret",
0
],
[
2,
1505,
1,
"youtube.com",
"Video",
-2
],
[
3,
1178,
1,
"OpenOffice",
"Skrivning",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Generel reference \u0026 læring",
2
],
[
5,
602,
1,
"google.com.tr",
"Søg",
2
],
[
6,
439,
1,
"reddit.com",
"Generelle nyheder \u0026 udtalelse",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Skrivning",
2
],
[
8,
361,
1,
"yemeksepeti.com",
"Generel indkøb",
-2
],
[
9,
356,
1,
"Gmail",
"E -mail",
0
],
[
10,
328,
1,
"Google Chrome",
"Browsere",
0
],
[
11,
207,
1,
"stars.bilkent.edu.tr",
"Generel reference \u0026 Læring",
2
],
[
12,
179,
1,
"whatsapp",
"Direkte besked",
-1
],

se rawdata.json hostet af ❤ af GitHub

resumé.json

[
{
"id": 1515657600,
"dato": "2018-01-11",
"produktivitetspuls": 54,
"meget_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_og_komposition_procent": 0,0,
"underholdningsprocent": 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,
"total_timer": 2,51,
"meget_produktive_timer": 0,86,
"produktive_timer": 0,27,
"neutrale_timer": 0,64,
"distraherende_timer": 0,0,
"very_distracting_hours": 0,74,
"all_productive_hours": 1.12,
"all_distracting_hours": 0,74,
"ukategoriseret_tid": 0,4,
"forretningstimer": 0,15,
"kommunikation_og_planlægningstimer": 0,11,
"social_networking_hours": 0.0,
"design_og_komposition_timer": 0,0,
"underholdningstimer": 0,38,
"nyhedstimer": 0,08,
"software_development_hours": 0,13,
"reference_og_learning_hours": 0,57,
"shoppingtimer": 0,32,
"utilities_hours": 0,35,
"total_duration_formatted": "2t 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": "1t 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,
"dato": "2018-01-10",
"produktivitetspuls": 33,
"meget_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_og_komposition_procent": 6,3,
"underholdningsprocent": 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,
"samlede timer": 2,24,
"meget_produktive_timer": 0,49,
"produktive timer": 0,05,
"neutrale_timer": 0,32,
"distraherende timer": 0,25,
"very_distracting_hours": 1.13,
"all_productive_hours": 0,54,
"all_distracting_hours": 1,37,
"ukategoriseret_timer": 0,01,
"forretningstimer": 0,0,
"kommunikation_og_planlægningstimer": 0,3,
"social_networking_hours": 0.0,
"design_og_komposition_timer": 0,14,
"underholdningstimer": 1.0,
"nyhedstimer": 0,09,
"software_development_hours": 0.0,
"reference_og_learning_hours": 0,35,
"shoppingtimer": 0,0,
"utilities_hours": 0,34,
"total_duration_formatted": "2t 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": "1t 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,
"dato": "2018-01-09",
"produktivitetspuls": 68,
"meget_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_og_komposition_procent": 1.2,
"underholdningsprocent": 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,
"total_timer": 2,78,
"meget_produktive_timer": 1,68,
"produktive timer": 0,01,
"neutrale_timer": 0,31,
"distraherende timer": 0,2,
"very_distracting_hours": 0,58,
"all_productive_hours": 1,69,
"all_distracting_hours": 0,78,
"ukategoriseret_timer": 0,25,
"forretningstimer": 0,61,
"kommunikation_og_planlægningstimer": 0,2,
"social_networking_hours": 0,14,
"design_og_komposition_timer": 0,03,
"underholdningstimer": 0,04,
"nyhedstimer": 0,35,
"software_development_hours": 0,25,
"reference_og_learning_hours": 0,78,
"shoppingtimer": 0,08,
"utilities_hours": 0,03,
"total_duration_formatted": "2t 46m",
"very_productive_duration_formatted": "1t 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"
}
]

se rawsummary.json hostet med ❤ af GitHub

Trin 4: Prototyping

Storpris i Raspberry Pi -konkurrencen 2017

Anbefalede: