INHOUDSOPGAWE:

Produktiwiteitstracker - aangedryf deur Raspberry Pi: 9 stappe (met foto's)
Produktiwiteitstracker - aangedryf deur Raspberry Pi: 9 stappe (met foto's)

Video: Produktiwiteitstracker - aangedryf deur Raspberry Pi: 9 stappe (met foto's)

Video: Produktiwiteitstracker - aangedryf deur Raspberry Pi: 9 stappe (met foto's)
Video: И ЭТО ТОЖЕ ДАГЕСТАН? Приключения в долине реки Баараор. БОЛЬШОЙ ВЫПУСК (Путешествие по Дагестану #3) 2024, Julie
Anonim
Produktiwiteitstracker - Aangedryf deur Raspberry Pi
Produktiwiteitstracker - Aangedryf deur Raspberry Pi
Produktiwiteitstracker - Aangedryf deur Raspberry Pi
Produktiwiteitstracker - Aangedryf deur Raspberry Pi
Produktiwiteitstracker - Aangedryf deur Raspberry Pi
Produktiwiteitstracker - Aangedryf deur Raspberry Pi

Produktiwiteit Tracker is 'n magiese spieël, maar in plaas daarvan om die tyd, weer en 'n motiverende aanhaling te vertoon, vertoon dit 4 dinge;

Die persentasie van die tyd wat u vir die dag aan produktiewe materiaal op u rekenaar en telefoon bestee het. (RescueTime)

Jou taaklys van Trello

'N Radargrafiek wat aandui hoeveel tyd u spandeer het saam met die kategorieë van die programme-programme wat u gebruik het in vergelyking met die gebruik van gister. (RescueTime)

'N Weeklikse oorsig. (RescueTime)

En as die persentasie van die tyd wat u aan produktiewe materiaal bestee het, meer as 50% is, sal die LED's 'n heldergroen kleur vertoon. As dit minder as 50% is, sal dit 'n rooi kleur vertoon, wat daarop dui dat u meer produktief moet wees! U kan ook self 'n doelwit stel.

Buitelyn

In die eerste stap verduidelik ek die idee agter produktiwiteitsopsporing. Vervolgens gee ek u twee verskillende gereedskap- en onderdele -lys, sodat u die volledige projek kan bou of 'n basiese weergawe (bevat nie die LED's nie) wat geen soldeervaardighede benodig nie. Later sal ek u wys hoe ek my weergawe van die projek prototipeer, sodat u 'n idee het hoe u u eie prototipe kan modelleer. Ek sal ook in detail in die kode -afdeling ingaan, sodat u die kode volgens u eie behoeftes kan aanpas. Aan die einde gee ek u 'n gids vir probleemoplossing, gebaseer op die probleme wat ek tydens hierdie opbou ondervind het. En brei die lys uit met u vrae.

Die doel van hierdie instruksies is nie net om vir u 'n kookboek te gee nie. Ek sal jou wys hoe ek hierdie projek opgebou het en aan jou oop vrae gee, sodat jy jou eie idees kan byvoeg en hierdie projek nog verder kan neem. Ek moedig u ten sterkste aan om u konstruksie te deel wanneer dit klaar is! Laat ons begin.

Stap 1: Die idee

Die idee
Die idee

Ek is al maande lank van plan om hierdie instruksies te skryf. Maar 'n ou vriend van my met die naam 'Uitstel' het my nie toegelaat nie. Uitstel is 'n daad om 'n taak of stel take uit te stel of uit te stel, en in plaas daarvan om die take te doen, vul dit die tyd met die kyk van video's uit die donker dieptes van YouTube.

Op 'n dag toe ek 'n artikel oor uitstel lees, kom ek op verskeie programme/programme af wat my sal help met my probleem, Trello as 'n taakbestuur -app en RescueTime as 'n tydbestuur -app. Albei het ten minste vir 'n tyd perfek vir my behoeftes gewerk. Na 'n rukkie het ek die apps heeltemal nagegaan en die kennisgewings geïgnoreer. Dit is toe dat ek met hierdie projek vorendag gekom het. Ek sou die data van programme op 'n spieël wat aan my muur gehang is, vertoon. Op hierdie manier was daar geen ontsnapping aan my verantwoordelikhede nie.

Die eerste konsep wat ek vir my projek geteken het, was redelik eenvoudig. Ek sou die RescueTime API gebruik om my produktiewe/afleidende werkpersentasie te vertoon. En gebruik die Trello API om my taaklys vir die dag te vertoon. Maar na 'n rukkie het ek meer funksies bygevoeg wat ek in die volgende stappe in detail sal kry.

Stap 2: Gereedskap en onderdele

Opmerking: dit is 'n lys met gereedskap wat ek tydens my build gebruik het; dit hoef nie dieselfde te wees vir u build nie!

Vir die basis:

4 meter speelhout 7x15cm - 6 $ - Dit hang af van u skermgrootte

30x40 cm eensydige spieël - hang af van u skermgrootte

25x35cm Samsung -monitor - 15 $ - Gevind op 'n vlooimark. enige monitor sou doen

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 is ook goed, maar jy benodig 'n wifi -module

HDMI -kabel - 2 dollar

Vir die Led Lightning:

200 cm smd5050 RGB Led strip - 4 $ - Dit moet later meer smd5050 hieroor wees …

  • Drie N -kanaal MOSFET's (bv. IRLZ34N) - 2 $
  • 12V -2A kragadapter - 3,15 $
  • Prototipe PCB - 1 $

Gereedskap:

  • Hout saag
  • Houtgom
  • Soldeerbout (vir LED -beligting)

Stap 3: Die kode

Die kode
Die kode

Hierdie stap bestaan uit drie dele; u hoef nie al die onderdele wat in die vorige stap genoem is, nodig te hê nie. 'N Framboos Pi en die monitor wat u vir hierdie projek sal gebruik, behoort genoeg te wees vir die prototipe stadium.

Stel jou Raspberry Pi op

As u nog nie u Raspberry Pi ingestel het nie, doen dit dan hier. Vir hierdie opbou moet u Apache installeer vir die webbediener en die PHP-LED-beheerder.

Volg hierdie amptelike gids om Apache te installeer.

Volg die gids deur Christian Nikkanen om die PHP-LED-beheerder te installeer

Laai nou die index.php -lêer van die projekbewaarplek af na u Raspberry Pi en plaas dit op hierdie pad:

/var/www/html/

As u nie vertroud is met die skuif van lêers in Linux Terminal nie, kan u na hierdie gids kyk om aan die gang te kom.

Pas die kode aan

Opmerking: hierdie gedeelte benodig 'n bietjie HTML/CSS -kennis as u 'n ander monitor gebruik.

Die aanpassing word gedoen op die index.php -lêer, wat die kern van hierdie opbou is. Koppel nou u monitor aan u Raspberry Pi as u dit nog nie gedoen het nie.

As u nou probeer om die index.php -lêer oop te maak, sal dit nie werk nie, want u moet eers die API -sleutels in die kode invul. Gaan dan na die RescueTime -webwerf en maak 'n rekening oop. Gaan dan na die ontwikkelaarafdeling en skep 'n API -sleutel deur op hierdie sleutel te aktiveer. Skryf u API -sleutel na êrens.

Doen dieselfde met u Trello API -sleutel, maak 'n rekening oop en gaan na die ontwikkelaarportaal om 'n API -sleutel te genereer.

Maak vervolgens die index.php -lêer oop wat u in/var/www/html/in u gunsteling teksredakteur geplaas het, en vervang [API_KEY] met u eie API -sleutel wat u van RescueTime en Trello gekry het. Die [list_number] is die lysnommer wat u gebruik vir u taaklys Trello. Om die nommer te kry, moet u eers 'n nuwe lys op Trello skep en dit 'To-Do' noem, dit is die lys wat u vir u taaklys sal gebruik, en dit sal op die spieël verskyn.

Neem vervolgens die URL op u adresbalk wat lyk soos:

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

en voeg.json so daarby:

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

en druk op enter, dan sien u 'n kodemors op die skerm. Probeer om u lysnaam '' To-Do '' op daardie gemors te vind. Dit moet so lyk: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, daardie ID is u lys-ID. Sit daardie nommer na [list_number] in die index.php -lêer.

Maak nou u blaaier oop, tik localhost in die adresbalk en druk enter. U moet u data op die grafieke vertoon.

Let wel: die plasings van die grafieke kan anders wees as gevolg van die resolusie van die monitor wat u gebruik. U kan die breedte, hoogte en ligging van die elemente in die CSS -deel van die kode wysig.

Nou hoef u net 'n boks rondom die monitor te ontwerp en die LED's aan te sluit.

Let wel: as u nie in detail geïnteresseerd is in die API's nie, kan u na die volgende stap gaan. In die gedeelte van die API sal ek in detail uitvind hoe die hele program werk en data van API's kry.

Die API's (in detail)

Die kern van hierdie projek is die twee API's;

  • Trello API
  • RescueTime API

Alhoewel die dokumentasie gedetailleerde inligting beskikbaar het, gaan ek verduidelik watter data van die API hierdie projek gebruik.

Op die tydsbestuursdeel is die RescueTime API -oproep wat die tydinligting vir die huidige dag kry, "https://www.rescuetime.com/anapi/data?key=•. "& format = json"

waar, datum ('Y-m-d') is die huidige datum

perspektief = rang is die tipe data -sortering in hierdie geval "rang" wat die meeste tyd bestee

Hierdie oproep gee 'n lêer in JSON -formaat wat so lyk: (kyk na data.json aan die einde van hierdie stap)

Die data wat ons uit hierdie lêer gebruik, is die 'tyd spandeer (sekondes)' en die 'produktiwiteit', wat waardes tussen -2 en 2 het, 2 afleidend en 2 produktief. Met hierdie data kan ons 'n waarde van meer as 100 vir die produktiwiteit telling genereer.

Nog 'n API -oproep na RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Dit gee u 'n weeklikse opsomming van u gegewens, wat so lyk: (kyk na Summary.json aan die einde van hierdie stap.)

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

Dit gee u die kaarte op u Trello -lys soos volg:

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

weer kan u die teks op die kaarte trek en dit êrens anders opsit.

data.json

Opgemaakte JSON -data
{
"notes": "data is 'n skikking van skikkings (rye), kolomname vir rye in ry_opskrifte",
"row_headers": [
"Rang",
"Tyd spandeer (sekondes)",
"Aantal mense",
"Aktiwiteit",
"Kategorie",
"Produktiwiteit"
],
"rye": [
[
1,
1536,
1,
"en.0wikipedia.org",
"Ongekategoriseer",
0
],
[
2,
1505,
1,
"youtube.com",
"Video",
-2
],
[
3,
1178,
1,
"OpenOffice",
"Skryf",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Algemene verwysing / leer",
2
],
[
5,
602,
1,
"google.com.tr",
"Soek",
2
],
[
6,
439,
1,
"reddit.com",
"Algemene nuus \u0026 mening",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Skryf",
2
],
[
8,
361,
1,
"yemeksepeti.com",
"Algemene inkopies",
-2
],
[
9,
356,
1,
"Gmail",
"E -pos",
0
],
[
10,
328,
1,
"Google Chrome",
"Blaaiers",
0
],
[
11,
207,
1,
"stars.bilkent.edu.tr",
"Algemene verwysing \u0026 leer",
2
],
[
12,
179,
1,
"whatsapp",
"Onmiddellike boodskap",
-1
],

bekyk rawdata.json aangebied deur ❤ deur GitHub

opsomming.json

[
{
"id": 1515657600,
"datum": "2018-01-11",
"produktiwiteit_puls": 54,
"baie_produktiewe_persentasie": 34.2,
"produktiewe_persentasie": 10.6,
"neutrale_persentasie": 25.6,
"afleidingspersentasie": 0.0,
"baie_afleidende_persentasie": 29.6,
"all_productive_percentage": 44.8,
"all_distracting_percentage": 29.6,
"uncategorized_percentage": 16.1,
"besigheid_persentasie": 6.0,
"kommunikasie_en_skedulering_persentasie": 4.3,
"social_networking_percentage": 0.0,
"ontwerp_en_komposisie_persentasie": 0.0,
"vermaak_persentasie": 15.2,
"nuus_persentasie": 3.3,
"software_development_percentage": 5.4,
"reference_and_learning_percentage": 22.8,
"inkopiespercentage": 12,9,
"utilities_percentage": 14.1,
"totale uur": 2,51,
"baie_produktiewe ure": 0,86,
"produktiewe ure": 0.27,
"neutrale ure": 0.64,
"afleidende ure": 0.0,
"baie afleidende ure": 0,74,
"all_productive_hours": 1.12,
"alle_afleidende ure": 0,74,
"uncategorized_hours": 0.4,
"besigheidsure": 0.15,
"kommunikasie- en_planne -ure": 0.11,
"social_networking_hours": 0.0,
"ontwerp_en_komposisie_ure": 0.0,
"vermaak -ure": 0,38,
"nuusure": 0,08,
"software_development_hours": 0.13,
"reference_and_learning_hours": 0.57,
"inkopietye": 0,32,
"utilities_hours": 0.35,
"total_duration_formatted": "2u 30m",
"very_productive_duration_formatted": "51m 26s",
"productive_duration_formatted": "15m 56s",
"neutral_duration_formatted": "38m 34s",
"distracting_duration_formatted": "geen tyd",
"very_distracting_duration_formatted": "44m 30s",
"all_productive_duration_formatted": "1u 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": "geen tyd",
"design_and_composition_duration_formatted": "geen tyd",
"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",
"produktiwiteit_puls": 33,
"baie_produktiewe" persentasie ": 21,9,
"produktiewe_persentasie": 2.3,
"neutrale_persentasie": 14.4,
"afleidingspersentasie": 11.0,
"baie_afleidende_persentasie": 50.3,
"all_productive_percentage": 24.2,
"all_distracting_percentage": 61.4,
"uncategorized_percentage": 0.3,
"besigheid_persentasie": 0.0,
"kommunikasie_en_skedulering_persentasie": 13.5,
"social_networking_percentage": 0.0,
"ontwerp_en_komposisie_persentasie": 6.3,
"vermaakpersentasie": 44,7,
"nuus_persentasie": 4.2,
"software_development_percentage": 0.0,
"reference_and_learning_percentage": 15.5,
"shopping_percentage": 0.0,
"utilities_percentage": 15.4,
"totaal_ure": 2,24,
"baie_produktiewe ure": 0.49,
"produktiewe ure": 0,05,
"neutrale_ure": 0.32,
"afleidende ure": 0,25,
"baie_afleidende ure": 1.13,
"all_productive_hours": 0.54,
"alle_afleidende ure": 1.37,
"ongekategoriseerde ure": 0,01,
"besigheidsure": 0.0,
"kommunikasie_en_planne_ure": 0.3,
"social_networking_hours": 0.0,
"ontwerp_en_samestelling_ure": 0.14,
"vermaak -ure": 1.0,
"nuusure": 0.09,
"software_development_hours": 0.0,
"reference_and_learning_hours": 0.35,
"inkopietye": 0.0,
"utilities_hours": 0.34,
"total_duration_formatted": "2u 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": "1u 7m",
"all_productive_duration_formatted": "32m 30s",
"all_distracting_duration_formatted": "1u 22m",
"uncategorized_duration_formatted": "27s",
"business_duration_formatted": "1s",
"Communication_and_scheduling_duration_formatted": "18m 5s",
"social_networking_duration_formatted": "geen tyd",
"design_and_composition_duration_formatted": "8m 30s",
"entertainment_duration_formatted": "59m 54s",
"news_duration_formatted": "5m 39s",
"software_development_duration_formatted": "geen tyd nie",
"reference_and_learning_duration_formatted": "20m 51s",
"shopping_duration_formatted": "geen tyd",
"utilities_duration_formatted": "20m 39s"
},
{
"id": 1515484800,
"datum": "2018-01-09",
"produktiwiteit_puls": 68,
"baie_produktiewe" persentasie ": 60.4,
"produktiewe persentasie": 0.5,
"neutrale_persentasie": 11.0,
"afleidende_persentasie": 7.1,
"baie_afleidende_persentasie": 21.0,
"all_productive_percentage": 60,9,
"all_distracting_percentage": 28.1,
"uncategorized_percentage": 9.1,
"besigheid_persentasie": 21,9,
"kommunikasie_en_skedulering_persentasie": 7.2,
"sosiale_netwerk_persentasie": 5.1,
"ontwerp_en_komposisie_persentasie": 1.2,
"vermaak_persentasie": 1.6,
"nuus_persentasie": 12.5,
"software_development_percentage": 9.1,
"reference_and_learning_percentage": 28.2,
"inkopiespercentage": 2,9,
"utilities_percentage": 1.2,
"totale uur": 2,78,
"baie_produktiewe_ure": 1.68,
"produktiewe ure": 0,01,
"neutrale ure": 0.31,
"afleidende ure": 0.2,
"baie_afleidende ure": 0,58,
"all_productive_hours": 1.69,
"alle_afleidende ure": 0,78,
"ongekategoriseerde ure": 0,25,
"besigheidsure": 0,61,
"kommunikasie- en_planne -ure": 0.2,
"sosiale_netwerkure": 0.14,
"ontwerp_en_samestelling_ure": 0,03,
"vermaak -ure": 0,04,
"nuusure": 0.35,
"software_development_hours": 0.25,
"reference_and_learning_hours": 0.78,
"inkopietye": 0,08,
"utilities_hours": 0.03,
"total_duration_formatted": "2u 46m",
"very_productive_duration_formatted": "1u 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": "1u 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"
}
]

sien rawsummary.json aangebied deur ❤ deur GitHub

Stap 4: Prototipering

Groot prys in die Raspberry Pi -wedstryd 2017

Aanbeveel: