Produktyvumo stebėjimo priemonė - „Raspberry Pi“: 9 žingsniai (su nuotraukomis)
Produktyvumo stebėjimo priemonė - „Raspberry Pi“: 9 žingsniai (su nuotraukomis)
Anonim
Produktyvumo stebėjimo priemonė - sukurta „Raspberry Pi“
Produktyvumo stebėjimo priemonė - sukurta „Raspberry Pi“
Produktyvumo stebėjimo priemonė - sukurta „Raspberry Pi“
Produktyvumo stebėjimo priemonė - sukurta „Raspberry Pi“
Produktyvumo stebėjimo priemonė - sukurta „Raspberry Pi“
Produktyvumo stebėjimo priemonė - sukurta „Raspberry Pi“

„Productivity Tracker“yra stebuklingas veidrodis, tačiau vietoje to, kad būtų rodomas laikas, oras ir motyvuojanti citata, jis parodo 4 dalykus;

Procentinė laiko dalis, kurią tą dieną praleidote produktyviai medžiagai kompiuteryje ir telefone. (RescueTime)

Jūsų darbų sąrašas iš „Trello“

Radaro diagrama, rodanti, kiek laiko praleidote kartu su naudojamų programų ir programų kategorijomis, palyginti su vakarykščiu naudojimu. (RescueTime)

Savaitės apžvalga. (RescueTime)

Ir jei laiko, kurį praleidote gamybinei medžiagai, procentas yra didesnis nei 50%, šviesos diodai parodys ryškiai žalią spalvą. Jei jis yra mažesnis nei 50%, bus rodoma raudona spalva, o tai reiškia, kad būsite produktyvesni! Tikslą taip pat galite nusistatyti patys.

Kontūras

Pirmajame žingsnyje paaiškinsiu produktyvumo stebėjimo idėją. Toliau pateiksiu du skirtingus įrankių ir dalių sąrašą, kad galėtumėte sukurti visą projektą arba pagrindinę versiją (neapima šviesos diodų), kuriai nereikia litavimo įgūdžių. Vėliau aš jums parodysiu, kaip aš sukūriau savo projekto versijos prototipą, taigi jūs turite idėją, kaip modeliuoti savo prototipą. Be to, aš išsamiai aprašysiu kodų skyrių, kad galėtumėte pritaikyti kodą savo poreikiams. Pabaigoje pateiksiu trikčių šalinimo vadovą, pagrįstą problemomis, su kuriomis susidūriau šio kūrimo metu. Ir išplėskite sąrašą savo klausimais.

Šios instrukcijos tikslas yra ne tik duoti jums kulinarijos knygą. Aš jums parodysiu, kaip aš sukūriau šį projektą, ir pateiksiu jums atvirus klausimus, kad galėtumėte pridėti savo idėjų ir dar labiau išplėsti šį projektą. Aš labai raginu jus pasidalyti savo kūriniu, kai jis bus baigtas! Pradėkime.

1 žingsnis: idėja

Idėja
Idėja

Aš kelis mėnesius ketinau parašyti šią instrukciją. Tačiau mano senas draugas, kuris vadinasi „atidėliojimas“, man neleido. Atidėliojimas yra užduoties ar užduočių rinkinio atidėjimas arba atidėjimas, o ne tų užduočių atlikimas, o laikas užpildomas žiūrint vaizdo įrašus iš tamsios „YouTube“gelmės.

Vieną dieną skaitydama straipsnį apie vilkinimą aptikau kelias programas/programas, kurios padėtų man išspręsti problemą, „Trello“kaip užduočių valdymo programą ir „RescueTime“kaip laiko valdymo programą. Abu puikiai atitiko mano poreikius, bent kurį laiką. Po kurio laiko aš visiškai nustojau tikrinti programas ir ignoravau pranešimus. Būtent tada aš sugalvojau šį projektą. Programų duomenis rodysiu ant veidrodžio, pakabinto ant mano sienos. Taip nuo mano pareigų nepabėgdavau.

Pirmasis projekto piešinys buvo gana paprastas. Norėčiau naudoti „RescueTime“API, kad būtų rodomas produktyvaus/blaškančio darbo procentas. Ir naudokite „Trello“API, kad parodytumėte mano dienos darbų sąrašą. Tačiau po kurio laiko pridėjau daugiau funkcijų, kurias išsamiai išnagrinėsiu atlikdamas kitus veiksmus.

2 žingsnis: Įrankiai ir dalys

Pastaba: tai įrankių, kuriuos naudoju kurdamas, sąrašas, jie neturi būti vienodi jūsų kūrimui!

Bazei:

4 metrai 7x15 cm dydžio medienos - 6 $ - Tai priklauso nuo jūsų ekrano dydžio

30x40 cm vienpusis veidrodis - priklauso nuo jūsų ekrano dydžio

25x35 cm „Samsung“monitorius - 15 USD - Rasta sendaikčių turguje. tiks bet kuris monitorius

„Raspberry Pi 3“modelis B- 35 $ - „Raspberry pi 2“taip pat tinka, tačiau jums reikės „Wi -Fi“modulio

HDMI kabelis - 2 USD

„Led Lightning“:

200 cm smd5050 RGB LED juostelė - 4 $ - vėliau apie tai turi būti daugiau smd5050 …

  • Trys N kanalų MOSFET (pvz., IRLZ34N) - 2 USD
  • 12V -2A maitinimo adapteris - 3,15 $
  • PCB prototipų kūrimas - 1 USD

Įrankiai:

  • Medžio pjūklas
  • Medienos klijai
  • Lituoklis (skirtas LED apšvietimui)

3 žingsnis: Kodas

Kodas
Kodas

Šis žingsnis bus sudarytas iš 3 dalių, jums nereikės visų ankstesniame žingsnyje išvardytų dalių. Prototipų kūrimo etapui turėtų pakakti „Raspberry Pi“ir monitoriaus, kurį naudosite šiam projektui.

„Raspberry Pi“nustatymas

Jei dar nenustatėte „Raspberry Pi“, eikite į priekį ir padarykite tai čia. Norėdami sukurti šią versiją, turėsite įdiegti „Apache“žiniatinklio serveriui ir PHP-LED valdikliui.

Norėdami įdiegti „Apache“, vadovaukitės šiuo oficialiu vadovu.

Norėdami įdiegti PHP-LED valdiklį, vadovaukitės šiuo Christian Nikkanen vadovu

Dabar atsisiųskite failą index.php iš projekto saugyklos į savo „Raspberry Pi“ir padėkite jį šiuo keliu:

/var/www/html/

Jei nesate susipažinę su failų perkėlimu „Linux“terminale, galite perskaityti šį vadovą, kad pradėtumėte.

Tinkinkite kodą

Pastaba: jei naudojate kitą monitorių, šiai daliai reikia šiek tiek HTML/CSS žinių.

Tinkinimas bus atliktas faile index.php, kuris yra šios versijos židinys. Dabar eikite į priekį ir prijunkite monitorių prie „Raspberry Pi“, jei to dar nepadarėte.

Dabar, jei bandysite atidaryti failą index.php, jis neveiks, nes pirmiausia turite užpildyti kode esančius API raktus. Norėdami tai padaryti, eikite į „RescueTime“svetainę ir atidarykite paskyrą. Tada eikite į kūrėjų skyrių ir sukurkite API raktą paspausdami Aktyvinti šį raktą. Kur nors parašykite savo API raktą.

Atlikite tą patį su „Trello“API raktu, atidarykite paskyrą ir eikite į kūrėjų portalą, kad sukurtumėte API raktą.

Tada atidarykite failą index.php, kurį įdėjote į/var/www/html/savo mėgstamiausiame teksto redaktoriuje, ir pakeiskite [API_KEY] savo API raktu, kurį atitinkamai gavote iš „RescueTime“ir „Trello“. [Sąrašo_numeris] yra sąrašo numeris, kurį naudojate savo „Trello“darbų sąraše. Norėdami gauti šį numerį, pirmiausia sukurkite naują „Trello“sąrašą ir pavadinkite jį „To-Do“, tai bus sąrašas, kurį naudosite savo darbų sąraše ir jis bus rodomas veidrodyje.

Tada adreso juostoje paimkite URL, kuris atrodo taip:

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

ir pridėkite prie jo.json taip:

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

ir paspauskite „Enter“, tada ekrane pamatysite kodo netvarką. Pabandykite surasti savo sąrašo pavadinimą „Užduotis“. Jis turėtų atrodyti maždaug taip: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, Šis ID yra jūsų sąrašo ID. tą numerį į [list_number] faile index.php.

Dabar atidarykite naršyklę ir adreso juostoje įveskite localhost ir paspauskite „Enter“. Turėtumėte matyti savo duomenis grafikuose.

Pastaba: Diagramų išdėstymas gali skirtis dėl naudojamo monitoriaus skiriamosios gebos. Galite redaguoti elementų plotį, aukštį ir vietą kodo CSS dalyje.

Dabar belieka suprojektuoti dėžutę aplink monitorių ir prijungti šviesos diodus.

Pastaba: jei nesate susidomėję API, galite pereiti prie kito veiksmo. API dalyje išsamiai aprašysiu, kaip veikia visa programa ir gauna duomenis iš API.

API (išsamiai)

Šio projekto židinys yra dvi API;

  • „Trello“API
  • „RescueTime“API

Nors dokumentuose yra išsamios informacijos, aš paaiškinsiu, kokie duomenys iš API naudojami šiame projekte.

Laiko valdymo dalyje „RescueTime“API skambutis, gaunantis dabartinės dienos laiko informaciją, yra

"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"

kur, data („Y-m-d“) yra dabartinė data

perspektyva = rangas yra duomenų rūšiavimo tipas, šiuo atveju „rangas“, kuris reiškia didžiąją laiko dalį

Šis skambutis suteiks JSON formato failą, kuris atrodo taip: (šio veiksmo pabaigoje pažiūrėkite į data.json)

Duomenys, kuriuos naudojame iš šio failo, yra „Laikas, praleistas (sekundėmis)“ir „Produktyvumas“, kurio vertės yra nuo -2 iki 2, -2 yra blaškantys ir 2 yra produktyvūs. Turėdami šiuos duomenis, galime sukurti didesnę nei 100 produktyvumo balo vertę.

Kitas API iškvietimas į „RescueTime“, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Pateikiama savaitės duomenų santrauka, kuri atrodo taip: (šio veiksmo pabaigoje pažiūrėkite į summary.json.) Naudojau šiuos duomenis, kad sugeneruočiau savaitės suvestinės diagramą, kurioje pateikiama savaitės apžvalga.

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

Tai suteiks jums „Trello“sąraše esančias korteles:

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

vėl galite ištraukti tų kortelių tekstą ir įdėti jį kitur.

data.json

Suformatuoti JSON duomenys
{
"užrašai": "duomenys yra masyvų (eilučių) masyvas, eilutės stulpelių pavadinimai eilutės antraštėse",
"row_headers": [
„Reitingas“,
„Praleistas laikas (sekundėmis)“,
"Žmonių skaičius",
„Veikla“,
"Kategorija",
„Produktyvumas“
],
"eilutės": [
[
1,
1536,
1,
"en.0wikipedia.org",
„Nekategorizuota“,
0
],
[
2,
1505,
1,
"youtube.com",
"Vaizdo įrašas",
-2
],
[
3,
1178,
1,
„OpenOffice“,
"Rašymas",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
„Bendra nuoroda & mokymasis“,
2
],
[
5,
602,
1,
"google.com.tr",
"Paieška",
2
],
[
6,
439,
1,
"reddit.com",
„Bendrosios naujienos ir nuomonė“,
-2
],
[
7,
437,
1,
„tr.sharelatex.com“,
"Rašymas",
2
],
[
8,
361,
1,
"yemeksepeti.com",
„Bendras apsipirkimas“,
-2
],
[
9,
356,
1,
„Gmail“,
"El. Paštas",
0
],
[
10,
328,
1,
„Google Chrome“,
"Naršyklės",
0
],
[
11,
207,
1,
"stars.bilkent.edu.tr",
„Bendra nuoroda & mokymasis“,
2
],
[
12,
179,
1,
"Whatsapp",
"Greitoji žinutė",
-1
],

peržiūrėkite „rawdata.json“, kurį su „❤“priglobia „GitHub“

santrauka.json

[
{
„ID“: 1515657600,
"data": "2018-01-11",
"produktyvumo_pulsas": 54,
"labai_produktyvus_procentas": 34,2,
"produktyvus_procentas": 10,6,
"neutralus_procentas": 25,6,
"blaškantis_procentas": 0,0,
"very_distracting_percentage": 29,6,
"all_productive_percentage": 44,8,
"all_distracting_percentage": 29,6,
"uncategorized_percentage": 16.1,
"verslo_procentas": 6,0,
"communication_and_scheduling_percentage": 4.3,
"social_networking_percentage": 0,0,
"design_and_composition_percentage": 0,0,
"pramogų_procentas": 15,2,
"naujienos_procentas": 3.3,
"software_development_percentage": 5.4,
"reference_and_learning_percentage": 22.8,
"apsipirkimo_procentas": 12,9,
"komunalinių paslaugų_procentas": 14.1,
„viso_valandos“: 2.51,
„labai_produktyvios valandos“: 0,86,
„produktyvios valandos“: 0,27,
"neutralios valandos": 0,64,
„blaškančios valandos“: 0,0,
"very_distracting_hours": 0,74,
"all_productive_hours": 1.12,
„visi_distrakciniai_valandai“: 0,74,
"uncategorized_hours": 0,4,
„verslo_valandos“: 0,15,
"bendravimo_ir_planavimo_valandos": 0,11,
"social_networking_hours": 0,0,
"dizainas_ir_kompozicijos_valandos": 0,0,
"pramogų valandos": 0,38,
"news_hours": 0,08,
"programinės įrangos kūrimo valandos": 0,13,
"reference_and_learning_hours": 0,57,
„apsipirkimo valandos“: 0,32,
„komunalinių paslaugų valandos“: 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": "nėra laiko",
"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": "nėra laiko",
"design_and_composition_duration_formatted": "nėra laiko",
"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",
"produktyvumo_pulsas": 33,
"labai_produktyvus_procentas": 21,9,
"produktyvus_procentas": 2.3,
"neutralus_procentas": 14,4,
"blaškantis_procentas": 11,0,
"very_distracting_percentage": 50,3,
"all_productive_percentage": 24,2,
"all_distracting_percentage": 61,4,
"nekategorizuotas_procentas": 0,3,
"verslo_procentas": 0,0,
"komunikacijos_ir planavimo_procentas": 13,5,
"social_networking_percentage": 0,0,
"design_and_composition_percentage": 6.3,
"pramogų_procentas": 44,7,
"naujienų_procentas": 4.2,
"software_development_percentage": 0,0,
"reference_and_learning_percentage": 15,5,
"apsipirkimo_procentas": 0,0,
"komunalinių paslaugų procentas": 15,4,
„total_hours“: 2.24,
„labai_produktyvios valandos“: 0,49,
„produktyvios valandos“: 0,05,
"neutralios valandos": 0,32,
„blaškančios valandos“: 0,25,
"very_distracting_hours": 1.13,
„visos_produktyvios valandos“: 0,54,
"all_distracting_hours": 1,37,
"uncategorized_hours": 0,01,
"verslo_valandos": 0,0,
"Ryšio_ir planavimo_valandos": 0,3,
"social_networking_hours": 0,0,
„dizainas_ir_kompozicijos_valandos“: 0,14,
"pramogų_valandos": 1.0,
"news_hours": 0,09,
"programinės įrangos kūrimo valandos": 0,0,
„nuoroda_ir_mokymosi_valandos“: 0,35,
„apsipirkimo valandos“: 0,0,
"komunalinių paslaugų valandos": 0,34,
"total_duration_formatted": "2h 14m",
"very_productive_duration_formatted": "29m 22s",
"productive_duration_formatted": "3 m 8 s",
"neutral_duration_formatted": "19m 18s",
"distracting_duration_formatted": "14 min 48 s",
"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": "nėra laiko",
"design_and_composition_duration_formatted": "8m 30s",
"entertainment_duration_formatted": "59m 54s",
"news_duration_formatted": "5m 39s",
"software_development_duration_formatted": "nėra laiko",
"reference_and_learning_duration_formatted": "20m 51s",
"shopping_duration_formatted": "nėra laiko",
"utilities_duration_formatted": "20m 39s"
},
{
„ID“: 1515484800,
"data": "2018-01-09",
"produktyvumo_pulsas": 68,
"labai_produktyvus_procentas": 60,4,
"produktyvus_procentas": 0,5,
"neutralus_procentas": 11,0,
„blaškantis_procentas“: 7.1,
"very_distracting_percentage": 21,0,
„visi_produktyvūs_procentai“: 60,9,
"all_distracting_percentage": 28,1,
"uncategorized_percentage": 9.1,
"verslo_procentas": 21,9,
"communication_and_scheduling_percentage": 7.2,
"social_networking_percentage": 5.1,
"design_and_composition_percentage": 1.2,
"pramogų_procentas": 1,6,
"naujienų_procentas": 12,5,
"software_development_percentage": 9.1,
"reference_and_learning_percentage": 28.2,
"apsipirkimo_procentas": 2,9,
"komunalinių paslaugų_procentas": 1.2,
„total_hours“: 2.78,
"labai_produktyvios valandos": 1,68,
„produktyvios valandos“: 0,01,
"neutralios valandos": 0,31,
„blaškančios valandos“: 0,2,
"very_distracting_hours": 0,58,
„visos_produktyvios valandos“: 1,69,
„visi_distrakciniai_valandai“: 0,78,
"uncategorized_hours": 0,25,
„verslo_valandos“: 0,61,
"bendravimo_ir planavimo_valandos": 0,2,
„social_networking_hours“: 0,14,
"dizainas_ir_kompozicijos_valandos": 0,03,
"pramogų valandos": 0,04,
"news_hours": 0,35,
"programinės įrangos kūrimo valandos": 0,25,
„nuoroda_ir_mokymosi_valandos“: 0,78,
„apsipirkimo valandos“: 0,08,
"komunalinių paslaugų_valandos": 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": "11 m 49 s",
"very_distracting_duration_formatted": "34m 57s",
"all_productive_duration_formatted": "1 val. 41 min.",
"all_distracting_duration_formatted": "46m 46s",
"uncategorized_duration_formatted": "15 m 7 s",
"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"
}
]

peržiūrėkite „rawsummary.json“, kurį su „❤“priglobia „GitHub“

4 žingsnis: prototipų kūrimas

Pagrindinis prizas „Raspberry Pi“konkurse 2017 m