Innholdsfortegnelse:

Productivity Tracker - Drevet av Raspberry Pi: 9 trinn (med bilder)
Productivity Tracker - Drevet av Raspberry Pi: 9 trinn (med bilder)

Video: Productivity Tracker - Drevet av Raspberry Pi: 9 trinn (med bilder)

Video: Productivity Tracker - Drevet av Raspberry Pi: 9 trinn (med bilder)
Video: The Choice is Ours (2016) Official Full Version 2024, November
Anonim
Productivity Tracker - Drevet av Raspberry Pi
Productivity Tracker - Drevet av Raspberry Pi
Productivity Tracker - Drevet av Raspberry Pi
Productivity Tracker - Drevet av Raspberry Pi
Productivity Tracker - Drevet av Raspberry Pi
Productivity Tracker - Drevet av Raspberry Pi

Productivity Tracker er et magisk speil, men i stedet for å vise tid, vær og et motiverende sitat, viser det 4 ting;

Prosentandelen av tiden du har brukt på produktivt materiale på datamaskinen og telefonen den dagen. (RescueTime)

Huskelisten din fra Trello

En radardiagram som viser hvor mye tid du brukte sammen med kategoriene av programmer-appene du brukte sammenlignet med gårsdagens bruk. (RescueTime)

En ukentlig oversikt. (RescueTime)

Og hvis prosentandelen av tiden du har brukt på produktivt materiale er over 50%, vil lysdiodene vise en lys grønn farge. Hvis den er under 50%, vil den vise en rød farge, noe som signaliserer at du er mer produktiv! Du kan også sette deg et mål selv.

Oversikt

I det første trinnet vil jeg forklare ideen bak produktivitetssporing. Deretter gir jeg deg to forskjellige verktøy og deleliste, slik at du kan bygge hele prosjektet eller en grunnleggende versjon (inkluderer ikke lysdiodene) som ikke krever loddeferdigheter. Senere vil jeg vise deg hvordan jeg prototyperte min versjon av prosjektet, så du har en ide om hvordan du kan modellere din egen prototype. Jeg vil også komme i detalj i kodeseksjonen, slik at du kan tilpasse koden til dine egne behov. På slutten vil jeg gi deg en feilsøkingsguide basert på problemene jeg støtte på under denne byggingen. Og utvid listen med spørsmålene dine.

Hensikten med denne instruksen er ikke bare å gi deg en kokebok. Jeg skal vise deg hvordan jeg bygde dette prosjektet og gi deg åpne spørsmål, slik at du kan legge til dine egne ideer og ta dette prosjektet enda lenger. Jeg oppfordrer deg sterkt til å dele bygget ditt når det er gjort! La oss komme i gang.

Trinn 1: Ideen

Ideen
Ideen

Jeg har tenkt å skrive denne Instructable i flere måneder. Men en gammel venn av meg som går under navnet "Procrastination" lot meg ikke. Utsettelse er å forsinke eller utsette en oppgave eller et sett med oppgaver, og i stedet for å gjøre disse oppgavene fyller tiden med å se på videoer fra YouTubes mørke dyp.

En dag mens jeg leste en artikkel om utsettelse, kom jeg over flere apper/programmer som ville hjelpe meg med problemet mitt, Trello som en oppgavehåndteringsapp og RescueTime som en tidsstyringsapp. Begge fungerte perfekt for mine behov, i det minste en stund. Etter en stund sluttet jeg å sjekke appene helt og ignorerte varslene. Det var da jeg kom på dette prosjektet. Jeg ville vise dataene fra apper på et speil som var hengt opp på veggen min. På denne måten var det ingen flukt fra mitt ansvar.

Det første utkastet jeg tegnet for prosjektet mitt var ganske enkelt. Jeg ville bruke RescueTime API for å vise min produktive/distraherende arbeidsprosent. Og bruk Trello API for å vise min huskeliste for dagen. Men etter en stund la jeg til flere funksjoner som jeg vil komme i detalj i de neste trinnene.

Trinn 2: Verktøy og deler

Merk: Dette er en liste over verktøy jeg brukte under byggingen min, de trenger ikke å være de samme for bygningen din!

For basen:

4 meter 7x15cm playwood - 6 $ - Det avhenger av skjermstørrelsen

30x40cm ensidig speil - avhenger av skjermstørrelsen

25x35cm Samsung -skjerm - 15 $ - Funnet på et loppemarked. hvilken som helst skjerm ville gjort

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 er også bra, men du trenger en wifi -modul

HDMI -kabel - 2 $

For Led Lightning:

200 cm smd5050 RGB LED stripe - 4 $ - Det må være smd5050 mer om dette senere …

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

Verktøy:

  • Tresag
  • Tre lim
  • Loddejern (for LED -belysning)

Trinn 3: Koden

Koden
Koden

Dette trinnet vil være i 3 deler. Du trenger ikke alle delene som er oppført i forrige trinn. En Raspberry Pi og skjermen du vil bruke til dette prosjektet burde være nok for prototyping.

Konfigurere din Raspberry Pi

Hvis du ikke har satt din Raspberry Pi ennå, kan du gjøre det her. For denne builden må du installere Apache for webserveren og PHP-LED-kontrolleren.

Følg denne offisielle guiden for å installere Apache.

Følg denne veiledningen av Christian Nikkanen for å installere PHP-LED-kontrolleren

Last ned filen index.php fra prosjektregisteret til Raspberry Pi og legg den på denne banen:

/var/www/html/

Hvis du ikke er kjent med å flytte filer rundt i Linux Terminal, kan du se på denne guiden for å komme i gang.

Tilpass koden

Merk: Denne delen krever litt HTML/CSS -kunnskap hvis du bruker en annen skjerm.

Tilpasningen vil bli utført på index.php -filen som er kjernen i denne bygningen. Fortsett nå og koble skjermen til Raspberry Pi hvis du ikke allerede har gjort det.

Hvis du prøver å åpne index.php -filen, vil den ikke fungere fordi du først må fylle API -nøklene i koden, for å gå til RescueTime -nettstedet og åpne en konto. Gå deretter til utviklerdelen og opprett en API -nøkkel ved å trykke Aktiver denne nøkkelen. Skriv din API -nøkkel til et sted.

Gjør det samme for Trello API -nøkkelen din, åpne en konto og gå til utviklerportalen for å generere en API -nøkkel.

Deretter åpner du filen index.php som du legger inn i/var/www/html/i ditt favoritt tekstredigeringsprogram, og erstatter [API_KEY] med din egen API -nøkkel som du fikk fra RescueTime og Trello deretter. [List_number] er listenummeret du bruker til gjøremålslisten Trello. For å få dette nummeret må du først opprette en ny liste på Trello og kalle den "To-Do", dette vil være listen du vil bruke til huskelisten din, og den vil vises på speilet.

Deretter tar du nettadressen på adressefeltet som ser ut som:

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

og legg til.json slik:

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

og trykk enter, deretter ser du et kode -rot på skjermen. Prøv å finne listenavnet ditt '' To-Do '' på det rotet. Det skal se slik ut: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, Id-en er din liste-ID. Put dette tallet til [list_number] i index.php -filen.

Åpne nå nettleseren din og skriv localhost til adresselinjen, og trykk enter. Du bør se dataene dine vises på grafene.

Merk: Plasseringen av grafene kan være forskjellige på grunn av oppløsningen til skjermen du bruker. Du kan redigere bredden, høyden og plasseringen av elementene i CSS -delen av koden.

Nå gjenstår det bare å designe en boks rundt skjermen og koble til lysdiodene.

Merk: Hvis du ikke er interessert i API -ene i detalj, kan du hoppe til neste trinn. I API -delen vil jeg komme i detalj hvordan hele programmet fungerer og får data fra API -er.

API -ene (i detalj)

Kjernen i dette prosjektet er de to API -ene;

  • Trello API
  • RescueTime API

Selv om dokumentasjonen har detaljert informasjon tilgjengelig, skal jeg forklare hvilke data fra API -en dette prosjektet bruker.

På tidsstyringsdelen er RescueTime API -anropet som får tidsinformasjonen for gjeldende 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 gjeldende dato

perspektiv = rang er datasorteringstypen i dette tilfellet "rang" som står for mest tid brukt

Denne samtalen vil gi en fil i JSON -format som ser slik ut: (se på data.json på slutten av dette trinnet)

Dataene vi bruker fra denne filen er "Tid brukt (sekunder)" og "Produktivitet" som har verdier mellom -2 og 2, -2 som er distraherende og 2 som er produktive. Med disse dataene kan vi generere en verdi over 100 for produktivitetspoengene.

Nok en API -samtale til RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Som gir deg en ukentlig oppsummering av dataene dine, som ser slik ut: (se Summary.json på slutten av dette trinnet.) Jeg brukte disse dataene til å generere den ukentlige sammendragsgrafen som gir deg en oversikt over uken.

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

Dette vil gi deg kortene på Trello -listen din slik:

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

igjen kan du trekke teksten på kortene og sette den på et annet sted.

data.json

Formaterte JSON -data
{
"notes": "data er en rekke matriser (rader), kolonnenavn for rader i row_headers",
"row_headers": [
"Rang",
"Tid brukt (sekunder)",
"Antall personer",
"Aktivitet",
"Kategori",
"Produktivitet"
],
"rader": [
[
1,
1536,
1,
"en.0wikipedia.org",
"Ikke kategorisert",
0
],
[
2,
1505,
1,
"youtube.com",
"Video",
-2
],
[
3,
1178,
1,
"Åpent kontor",
"Skriver",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Generell referanse \u0026 Læring",
2
],
[
5,
602,
1,
"google.com.tr",
"Søk",
2
],
[
6,
439,
1,
"reddit.com",
"Generelle nyheter \u0026 mening",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Skriver",
2
],
[
8,
361,
1,
"yemeksepeti.com",
"Generell shopping",
-2
],
[
9,
356,
1,
"Gmail",
"E -post",
0
],
[
10,
328,
1,
"Google Chrome",
"Nettlesere",
0
],
[
11,
207,
1,
"stars.bilkent.edu.tr",
"Generell referanse \u0026 Læring",
2
],
[
12,
179,
1,
"Hva skjer",
"Direktemelding",
-1
],

se rawdata.json hostet av ❤ av GitHub

oppsummering.json

[
{
"id": 1515657600,
"date": "2018-01-11",
"produktivitetspuls": 54,
"veldig_produktiv_prosent": 34,2,
"produktiv_prosent": 10,6,
"nøytral_prosent": 25,6,
"distracting_percentage": 0.0,
"very_distracting_percentage": 29.6,
"all_produktiv_prosent": 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,
"underholdningsprosent": 15,2,
"news_percentage": 3.3,
"software_development_percentage": 5.4,
"reference_and_learning_percentage": 22.8,
"shopping_prosent": 12,9,
"utilities_percentage": 14.1,
"totale timer": 2,51,
"very_productive_hours": 0,86,
"produktive timer": 0,27,
"nøytrale timer": 0,64,
"distraherende timer": 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,
"underholdningstimer": 0,38,
"news_hours": 0,08,
"software_development_hours": 0,13,
"reference_and_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,
"date": "2018-01-10",
"produktivitetspuls": 33,
"veldig_produktiv_prosent": 21,9,
"produktiv_prosent": 2,3,
"nøytral_prosent": 14,4,
"distracting_percentage": 11.0,
"very_distracting_percentage": 50,3,
"all_produktiv_prosent": 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,
"underholdningsprosent": 44,7,
"news_percentage": 4.2,
"software_development_percentage": 0.0,
"reference_and_learning_percentage": 15.5,
"shopping_prosent": 0,0,
"utilities_percentage": 15.4,
"totale timer": 2,24,
"very_productive_hours": 0,49,
"produktive timer": 0,05,
"nøytrale timer": 0,32,
"distraherende timer": 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,
"underholdningstimer": 1.0,
"news_hours": 0.09,
"software_development_hours": 0.0,
"reference_and_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,
"veldig_produktiv_prosent": 60,4,
"produktiv_prosent": 0,5,
"nøytral_prosent": 11,0,
"distracting_percentage": 7.1,
"very_distracting_percentage": 21.0,
"all_produktiv_prosent": 60,9,
"all_distracting_percentage": 28.1,
"uncategorized_percentage": 9.1,
"business_procent": 21,9,
"Communication_and_scheduling_percentage": 7.2,
"sosial_nettverk_prosent": 5.1,
"design_and_composition_percentage": 1.2,
"underholdningsprosent": 1,6,
"news_percentage": 12,5,
"software_development_percentage": 9.1,
"reference_and_learning_percentage": 28.2,
"shopping_prosent": 2,9,
"utilities_percentage": 1.2,
"totale timer": 2,78,
"very_productive_hours": 1,68,
"produktive timer": 0,01,
"nøytrale timer": 0,31,
"distraherende timer": 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,
"sosiale_nettverkstimer": 0,14,
"design_and_composition_hours": 0,03,
"underholdningstimer": 0,04,
"news_hours": 0,35,
"software_development_hours": 0,25,
"reference_and_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 av ❤ av GitHub

Trinn 4: Prototyping

Storpris i Raspberry Pi -konkurransen 2017

Anbefalt: