Cuprins:

Tracker de productivitate - Dezvoltat de Raspberry Pi: 9 pași (cu imagini)
Tracker de productivitate - Dezvoltat de Raspberry Pi: 9 pași (cu imagini)

Video: Tracker de productivitate - Dezvoltat de Raspberry Pi: 9 pași (cu imagini)

Video: Tracker de productivitate - Dezvoltat de Raspberry Pi: 9 pași (cu imagini)
Video: Automatizari fotovoltaice incepatori Ep.1: Instalare și prezentare Solar Assistant 2024, Noiembrie
Anonim
Tracker de productivitate - Dezvoltat de Raspberry Pi
Tracker de productivitate - Dezvoltat de Raspberry Pi
Tracker de productivitate - Dezvoltat de Raspberry Pi
Tracker de productivitate - Dezvoltat de Raspberry Pi
Tracker de productivitate - Dezvoltat de Raspberry Pi
Tracker de productivitate - Dezvoltat de Raspberry Pi

Productivity Tracker este o oglindă magică, dar în loc să afișeze ora, vremea și un citat motivant, afișează 4 lucruri;

Procentul din timpul petrecut pe materialul productiv pe computer și telefon pentru ziua respectivă. (RescueTime)

Lista dvs. de lucruri de făcut de la Trello

Un grafic radar care arată cât timp ați petrecut împreună cu categoriile de programe-aplicații pe care le-ați folosit comparativ cu utilizarea de ieri. (RescueTime)

O prezentare săptămânală. (RescueTime)

Și dacă procentul din timpul petrecut pe materialul productiv este de peste 50%, LED-urile vor afișa o culoare verde strălucitor. Dacă este sub 50%, va afișa o culoare roșie, ceea ce vă indică să fiți mai productivi! De asemenea, îți poți stabili singur un obiectiv.

Contur

În primul pas, voi explica ideea din spatele productivității-tracker. În continuare, vă voi oferi două instrumente și o listă de piese diferite, astfel încât să puteți construi proiectul complet sau o versiune de bază (nu include LED-urile) care nu necesită abilități de lipire. Mai târziu îți voi arăta cum am prototipat versiunea mea a proiectului, astfel încât să ai o idee despre cum să îți modelezi propriul prototip. De asemenea, voi intra în detalii la secțiunea cod, astfel încât să puteți personaliza codul pentru propriile dvs. nevoi. La final, vă voi oferi un ghid de depanare bazat pe problemele pe care le-am întâmpinat în timpul acestei construcții. Și extindeți lista cu întrebările dvs.

Scopul acestui instructiv nu este doar să vă ofere o carte de bucate. Vă voi arăta modul în care am construit acest proiect și vă voi oferi întrebări deschise, astfel încât să puteți adăuga propriile idei și să duceți acest proiect și mai departe. Vă încurajez cu tărie să împărtășiți construcția dvs. după ce ați terminat! Să începem.

Pasul 1: Ideea

Ideea
Ideea

Am intenționat să scriu acest Instructable de luni de zile. Dar un vechi prieten de-al meu care poartă numele de „Procrastination” nu m-a lăsat. Procrastination este actul de a întârzia sau amâna o sarcină sau un set de sarcini și, în loc să faci acele sarcini, umple timpul cu vizionarea videoclipurilor din adâncurile întunecate ale YouTube.

Într-o zi, în timp ce citeam un articol despre amânare, am dat peste mai multe aplicații / programe care mă vor ajuta cu problema mea, Trello ca aplicație de gestionare a sarcinilor și RescueTime ca aplicație de gestionare a timpului. Ambele au funcționat perfect pentru nevoile mele, cel puțin o vreme. După un timp, am încetat să verific complet aplicațiile și am ignorat notificările. Atunci am venit cu acest proiect. Aș afișa datele din aplicații pe o oglindă agățată pe perete. În acest fel nu s-a scăpat de responsabilitățile mele.

Primul proiect pe care l-am desenat pentru proiectul meu a fost destul de simplu. Aș folosi API-ul RescueTime pentru a afișa procentul de lucru productiv / distractiv. Și utilizați API-ul Trello pentru a afișa lista de sarcini pentru ziua respectivă. Dar după un timp, am adăugat mai multe funcții pe care le voi obține în detaliu în pașii următori.

Pasul 2: Instrumente și piese

Notă: Aceasta este o listă de instrumente pe care le-am folosit în timpul construcției mele, nu trebuie să fie la fel pentru construcția dvs.!

Pentru bază:

4 metri de lemn de joc de 7x15cm - 6 $ - Depinde de dimensiunea ecranului

Oglindă unilaterală de 30x40cm - depinde de dimensiunea ecranului

Monitor Samsung 25x35cm - 15 $ - Găsit la o piață de vechituri. orice monitor ar face

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 este, de asemenea, în regulă, dar veți avea nevoie de un modul wifi

Cablu HDMI - 2 $

Pentru Fulgerul Led:

Banda LED 200cm smd5050 RGB- 4 $ - Trebuie să fie mai mult smd5050 despre asta mai târziu …

  • Trei MOSFET-uri cu canal N (de ex. IRLZ34N) - 2 $
  • Adaptor de alimentare 12V-2A - 3,15 $
  • PCB de prototipare - 1 $

Instrumente:

  • Ferăstrău de lemn
  • Lipici de lemn
  • Fier de lipit (pentru iluminatul cu LED)

Pasul 3: Codul

Codul
Codul

Acest pas va fi în 3 părți, nu aveți nevoie de toate părțile enumerate în pasul anterior. Un Raspberry Pi și monitorul pe care îl veți folosi pentru acest proiect ar trebui să fie suficiente pentru etapa de prototipare.

Configurarea Raspberry Pi

Dacă nu ați setat Raspberry Pi încă, continuați și faceți-o aici. Pentru această versiune, va trebui să instalați Apache pentru serverul web și controlerul PHP-LED.

Pentru a instala Apache, urmați acest ghid oficial.

Pentru a instala controlerul PHP-LED, urmați acest ghid de Christian Nikkanen

Acum descărcați fișierul index.php din depozitul de proiecte în Raspberry Pi și puneți-l pe această cale:

/ var / www / html /

Dacă nu sunteți familiarizați cu mutarea fișierelor în Linux Terminal, puteți consulta acest ghid pentru a începe.

Personalizați codul

Notă: Această parte necesită un pic de cunoștințe HTML / CSS dacă utilizați un alt monitor.

Personalizarea se va face pe fișierul index.php care este centrul acestei construcții. Acum, mergeți mai departe și conectați-vă monitorul la Raspberry Pi dacă nu ați făcut-o deja.

Acum, dacă încercați să deschideți fișierul index.php, acesta nu va funcționa, deoarece mai întâi trebuie să completați cheile API din cod, pentru aceasta accesați site-ul web RescueTime și deschideți un cont. Apoi, accesați secțiunea dezvoltator și creați o cheie API apăsând Activare această cheie. Scrieți cheia dvs. API undeva.

Faceți același lucru pentru cheia API Trello, deschideți un cont și accesați portalul pentru dezvoltatori pentru a genera o cheie API.

Apoi, deschideți fișierul index.php pe care l-ați pus în / var / www / html / în editorul de text preferat și înlocuiți [API_KEY] cu propria cheie API pe care ați obținut-o de la RescueTime și Trello în consecință. [List_number] este numărul listei pe care îl utilizați pentru lista de sarcini Trello. Pentru a obține acest număr, creați mai întâi o listă nouă pe Trello și numiți-o „De făcut”, aceasta va fi lista pe care o veți folosi pentru lista dvs. de sarcini și va apărea pe oglindă.

Apoi, luați adresa URL din bara de adrese care arată ca:

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

și adăugați.json la acesta astfel:

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

și apăsați Enter, apoi veți vedea o mizerie de cod pe ecran. Încercați să găsiți numele listei '' To-Do "în mizeria respectivă. Ar trebui să arate cam așa: {" name ":" To Do "," id ":" 5981c123cd1b23f13907cd18 "}, acel Id este ID-ul listei dvs. acel număr la [list_number] din fișierul index.php.

Acum deschideți browserul și tastați localhost în bara de adrese și apăsați Enter. Ar trebui să vedeți datele dvs. afișate pe grafice.

Notă: destinațiile de plasare ale graficelor pot fi diferite din cauza rezoluției monitorului pe care îl utilizați. Puteți edita lățimea, înălțimea și locația elementelor din partea CSS a codului.

Acum nu mai rămâne decât să proiectăm o cutie în jurul monitorului și să conectăm LED-urile.

Notă: Dacă nu vă interesează detaliile API-ului, puteți trece la pasul următor. În partea API, voi afla în detaliu cum funcționează întregul program și obține date de la API-uri.

API-urile (în detaliu)

Vatra acestui proiect sunt cele două API-uri;

  • API Trello
  • API RescueTime

Deși documentația are informații detaliate disponibile, voi explica ce date din API folosește acest proiect.

În partea de gestionare a timpului, apelul API RescueTime care obține informațiile de timp pentru ziua curentă este, "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"

Unde, data („Y-m-d”) este data curentă

perspectiva = rang este tipul de sortare a datelor în acest caz „rang” care reprezintă cel mai mult timp petrecut

Acest apel va da un fișier în format JSON care arată astfel: (uitați-vă la data.json la sfârșitul acestui pas)

Datele pe care le folosim din acest fișier sunt „Timpul petrecut (secunde)” și „Productivitatea” care are valori cuprinse între -2 și 2, -2 fiind distractive și 2 fiind productive. Cu aceste date, putem genera o valoare peste 100 pentru scorul de productivitate.

Un alt apel API către RescueTime, „https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]”

Ceea ce vă oferă un rezumat săptămânal al datelor dvs., care arată astfel: (uitați-vă la summary.json la sfârșitul acestui pas.) Am folosit aceste date pentru a genera graficul rezumat săptămânal care vă oferă o imagine de ansamblu a săptămânii.

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

Acest lucru vă va oferi cărțile din lista dvs. Trello astfel:

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

din nou, puteți trage textul de pe acele cărți și îl puteți pune în altă parte.

data.json

Date JSON formatate
{
"notes": "datele sunt o matrice de matrici (rânduri), nume de coloane pentru rânduri în head_headers",
„head_headers”: [
"Rang",
„Timpul petrecut (secunde)”,
"Numărul de persoane",
"Activitate",
"Categorie",
"Productivitate"
],
„rânduri”: [
[
1,
1536,
1,
„en.0wikipedia.org”,
„Necategorizat”,
0
],
[
2,
1505,
1,
„youtube.com”,
"Video",
-2
],
[
3,
1178,
1,
"Birou deschis",
"Scris",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
„Referință generală \u0026 Învățare”,
2
],
[
5,
602,
1,
„google.com.tr”,
"Căutare",
2
],
[
6,
439,
1,
„reddit.com”,
„Știri generale \u0026 Aviz”,
-2
],
[
7,
437,
1,
„tr.sharelatex.com”,
"Scris",
2
],
[
8,
361,
1,
„yemeksepeti.com”,
„Cumpărături generale”,
-2
],
[
9,
356,
1,
„Gmail”,
"E-mail",
0
],
[
10,
328,
1,
„Google Chrome”,
„Browsere”,
0
],
[
11,
207,
1,
„stars.bilkent.edu.tr”,
„Referință generală \u0026 Învățare”,
2
],
[
12,
179,
1,
„WhatsApp”,
"Mesaje instant",
-1
],

vizualizați rawdata.json găzduit cu ❤ de GitHub

rezumat.json

[
{
„id”: 1515657600,
„data”: „2018-01-11”,
"productive_pulse": 54,
"very_productive_percentage": 34.2,
„procentaj_productiv”: 10.6,
„procentaj_neutral”: 25,6,
"distracting_percentage": 0,0,
"very_distracting_percentage": 29.6,
"procentaj_productiv": 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,
"entertainment_percentage": 15.2,
"news_percentage": 3.3,
„software_development_percentage”: 5.4,
„referință_și_proces_de_învățare”: 22,8,
„shopping_percentage”: 12.9,
"utilities_percentage": 14.1,
„total_hours”: 2.51,
"very_productive_hours": 0.86,
„ore_productive”: 0,27,
„ore_neutrale”: 0.64,
„distracting_hours”: 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,
„comunicare_și_programare_hore”: 0,11,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0.0,
„entertainment_hours”: 0.38,
"ore_stiri": 0,08,
"software_development_hours": 0,13,
„ore_de_referință_și_învățare”: 0,57,
"shopping_hours": 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": "fără timp",
"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": "fără timp",
"design_and_composition_duration_formatted": "fără timp",
"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,
„data”: „2018-01-10”,
"productive_pulse": 33,
"procentaj_productiv": 21.9,
„procentaj_productiv”: 2.3,
„procentaj_neutral”: 14.4,
"distracting_percentage": 11.0,
"very_distracting_percentage": 50.3,
"procentaj_productiv": 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,
„entertainment_percentage”: 44,7,
"news_percentage": 4.2,
"software_development_percentage": 0,0,
"referință_și_învățare_procentaj": 15,5,
„shopping_percentage”: 0,0,
"utilities_percentage": 15.4,
„total_hours”: 2.24,
"very_productive_hours": 0.49,
„ore_productive”: 0,05,
„ore_neutrale”: 0,32,
„distracting_hours”: 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,
„comunicare_și_programare_hore”: 0.3,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0,14,
"entertainment_hours": 1.0,
"ore_stiri": 0,09,
„software_development_hours”: 0,0,
„ore_de_referință_și_învățare”: 0,35,
"shopping_hours": 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": "1h 22m",
"uncategorized_duration_formatted": "27s",
"business_duration_formatted": "1s",
"communication_and_scheduling_duration_formatted": "18m 5s",
"social_networking_duration_formatted": "fără timp",
"design_and_composition_duration_formatted": "8m 30s",
"entertainment_duration_formatted": "59m 54s",
"news_duration_formatted": "5m 39s",
"software_development_duration_formatted": "fără timp",
"reference_and_learning_duration_formatted": "20m 51s",
"shopping_duration_formatted": "fără timp",
"utilities_duration_formatted": "20m 39s"
},
{
„id”: 1515484800,
„data”: „2018-01-09”,
"productive_pulse": 68,
"very_productive_percentage": 60,4,
„procentaj_productiv”: 0,5,
"neutral_percentage": 11.0,
"distracting_percentage": 7.1,
"very_distracting_percentage": 21.0,
"procentaj_productiv": 60,9,
"all_distracting_percentage": 28.1,
„uncategorized_percentage”: 9.1,
„business_percentage”: 21.9,
„procentaj_comunicare_și_programare”: 7.2,
"social_networking_percentage": 5.1,
"design_and_composition_percentage": 1.2,
"entertainment_percentage": 1.6,
"news_percentage": 12.5,
"software_development_percentage": 9.1,
„referință_și_proces_de_învățare”: 28.2,
„shopping_percentage”: 2.9,
"utilities_percentage": 1.2,
„total_hours”: 2.78,
"very_productive_hours": 1.68,
„ore_productive”: 0,01,
„ore_neutrale”: 0.31,
"distracting_hours": 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,
"social_networking_hours": 0,14,
"design_and_composition_hours": 0,03,
„entertainment_hours”: 0,04,
"ore_stiri": 0,35,
„software_development_hours”: 0,25,
„ore_de_referință_și_învățare”: 0,78,
"shopping_hours": 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": "1h 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"
}
]

vizualizați rawsummary.json găzduit cu ❤ de GitHub

Pasul 4: Prototipare

Marele Premiu la Concursul Raspberry Pi 2017

Recomandat: