Isi kandungan:

Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi: 9 Langkah (dengan Gambar)
Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi: 9 Langkah (dengan Gambar)

Video: Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi: 9 Langkah (dengan Gambar)

Video: Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi: 9 Langkah (dengan Gambar)
Video: 10 новых гаджетов, которые можно купить 2024, November
Anonim
Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi
Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi
Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi
Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi
Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi
Penjejak Produktiviti - Dikuasakan oleh Raspberry Pi

Productivity Tracker adalah cermin ajaib, tetapi bukannya memaparkan waktu, cuaca dan petikan yang memotivasi, ia memaparkan 4 perkara;

Peratusan masa yang anda habiskan untuk bahan produktif di komputer dan telefon anda untuk hari itu. (RescueTime)

Senarai tugasan anda dari Trello

Graf radar yang menunjukkan berapa banyak masa yang anda habiskan bersama dengan kategori program-aplikasi yang anda gunakan berbanding penggunaan hari ini. (RescueTime)

Gambaran keseluruhan mingguan. (RescueTime)

Dan jika peratusan masa yang anda habiskan untuk bahan produktif melebihi 50%, LED akan memaparkan warna hijau terang. Sekiranya di bawah 50% ia akan memaparkan warna merah, menandakan anda lebih produktif! Anda juga boleh menetapkan matlamat sendiri.

Garis besar

Pada langkah pertama, saya akan menerangkan idea di sebalik produktiviti-tracker. Seterusnya, saya akan memberi anda dua alat & senarai bahagian yang berbeza, jadi anda boleh membina projek penuh atau versi asas (Tidak termasuk LED) yang tidak memerlukan kemahiran pematerian. Kemudian saya akan menunjukkan kepada anda bagaimana saya membuat prototaip versi projek saya, jadi anda mempunyai idea mengenai cara memodelkan prototaip anda sendiri. Juga, saya akan memperincikan bahagian kod supaya anda dapat menyesuaikan kod untuk keperluan anda sendiri. Pada akhirnya, saya akan memberi anda panduan Mengatasi masalah berdasarkan masalah yang saya hadapi semasa membina ini. Dan kembangkan senarai dengan soalan anda.

Tujuan pengajaran ini bukan hanya untuk memberi anda buku masakan. Saya akan menunjukkan kepada anda cara saya membina projek ini dan memberi anda soalan terbuka, supaya anda dapat menambahkan idea anda sendiri, dan meneruskan projek ini lebih jauh. Saya sangat menggalakkan anda untuk berkongsi binaan anda setelah selesai! Mari kita mulakan.

Langkah 1: Idea

Idea
Idea

Saya telah berhasrat untuk menulis Instructable ini selama berbulan-bulan. Tetapi seorang kawan lama saya yang bernama "Penundaan" tidak membenarkan saya. Penundaan adalah tindakan menunda atau menangguhkan tugas atau sekumpulan tugas, dan bukannya melakukan tugas tersebut mengisi waktu dengan menonton video dari kedalaman gelap YouTube.

Suatu hari ketika membaca artikel mengenai penundaan, saya menemui banyak aplikasi / program yang dapat membantu saya mengatasi masalah saya, Trello sebagai aplikasi pengurusan tugas dan RescueTime sebagai aplikasi pengurusan masa. Kedua-duanya bekerja dengan sempurna untuk keperluan saya, sekurang-kurangnya untuk satu masa. Selepas beberapa ketika, saya berhenti memeriksa aplikasi sama sekali dan mengabaikan pemberitahuan. Ketika itulah saya membuat projek ini. Saya akan memaparkan data dari aplikasi di cermin yang digantung di dinding saya. Dengan cara ini tidak ada jalan keluar dari tanggungjawab saya.

Draf pertama yang saya lukis untuk projek saya agak mudah. Saya akan menggunakan API RescueTime untuk memaparkan peratusan kerja Produktif / Mengganggu saya. Dan gunakan Trello API untuk memaparkan senarai tugasan saya untuk hari itu. Tetapi selepas beberapa ketika, saya menambahkan lebih banyak ciri yang akan saya perincikan secara terperinci pada langkah seterusnya.

Langkah 2: Alat & Bahagian

Catatan: Ini adalah senarai alat yang saya gunakan semasa membuat saya, mereka tidak semestinya sama untuk membina anda!

Untuk Pangkalan:

4 Meter kayu main 7x15cm - 6 $ - Ini bergantung pada saiz skrin anda

Cermin satu sisi 30x40cm - bergantung pada saiz skrin anda

Monitor Samsung 25x35cm - $ 15 - Dijumpai di pasar lambak. mana-mana monitor akan dilakukan

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 juga bagus tetapi anda memerlukan modul wifi

Kabel HDMI - 2 $

Untuk Kilat Led:

200cm smd5050 RGB Led strip- 4 $ - Semestinya smd5050 lagi untuk ini kemudian…

  • Tiga MOSFET saluran-N (mis. IRLZ34N) - 2 $
  • Penyesuai kuasa 12V-2A - $ 3,15
  • Prototaip PCB - 1 $

Alat:

  • Gergaji kayu
  • Gam kayu
  • Soldering Iron (Untuk lampu LED)

Langkah 3: Kodnya

Kod tersebut
Kod tersebut

Langkah ini akan dibuat dalam 3 bahagian, anda tidak memerlukan semua bahagian yang disenaraikan pada langkah sebelumnya. Raspberry Pi dan monitor yang akan anda gunakan untuk projek ini semestinya cukup untuk tahap prototaip.

Menyiapkan Raspberry Pi anda

Sekiranya anda belum menetapkan Pi Raspberry anda, teruskan dan lakukan di sini. Untuk membina ini, anda perlu memasang Apache untuk pelayan web dan pengawal PHP-LED.

Untuk memasang Apache ikuti panduan rasmi ini.

Untuk memasang pengawal PHP-LED ikuti panduan ini oleh Christian Nikkanen

Sekarang muat turun file index.php dari repositori projek ke Raspberry Pi anda dan letakkan di jalan ini:

/ var / www / html /

Sekiranya anda tidak biasa dengan memindahkan fail di Terminal Linux, anda boleh melihat panduan ini untuk memulakan anda.

Sesuaikan Kod

Catatan: Bahagian ini memerlukan sedikit pengetahuan HTML / CSS jika anda menggunakan monitor yang berbeza.

Penyesuaian akan dilakukan pada file index.php yang merupakan perapian binaan ini. Sekarang teruskan dan sambungkan monitor anda ke Raspberry Pi anda jika anda belum melakukannya.

Sekarang jika anda cuba membuka file index.php, ia tidak akan berfungsi kerana anda harus terlebih dahulu mengisi kunci API dalam kod, untuk itu pergi ke laman web RescueTime dan buka akaun. Seterusnya, pergi ke bahagian pembangun dan buat kunci API dengan menekan Aktifkan Kunci Ini. Tulis kunci API anda ke suatu tempat.

Lakukan perkara yang sama untuk kunci API Trello anda, Buka akaun dan pergi ke portal pembangun untuk menghasilkan kunci API.

Seterusnya, buka fail index.php yang anda masukkan ke dalam / var / www / html / di editor teks kegemaran anda, dan ganti [API_KEY] dengan kunci API anda sendiri yang anda perolehi dari RescueTime dan Trello. [List_number] adalah nombor senarai yang anda gunakan untuk senarai tugas anda Trello. Untuk mendapatkan nombor itu terlebih dahulu buat senarai baru di Trello dan panggil "To-Do", ini akan menjadi senarai yang akan anda gunakan untuk senarai tugasan anda dan ia akan muncul di cermin.

Seterusnya, Ambil URL di bar alamat anda yang kelihatan seperti:

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

dan tambahkan.json padanya seperti ini:

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

dan tekan enter, seterusnya anda akan melihat kekacauan kod di skrin. Cuba cari nama senarai anda "To-Do" di kekacauan itu. Nampaknya seperti ini: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, Id itu adalah Id senarai anda. nombor itu ke [list_number] pada fail index.php.

Sekarang buka penyemak imbas anda dan ketik localhost ke bar alamat dan tekan enter. Anda mesti melihat data anda dipaparkan pada grafik.

Catatan: Penempatan grafik boleh berbeza kerana resolusi monitor yang anda gunakan. Anda boleh mengedit lebar, tinggi dan lokasi elemen di bahagian CSS kod.

Sekarang yang tinggal hanyalah merancang kotak di sekitar monitor dan menyambungkan LED.

Catatan: Sekiranya anda tidak berminat dengan API secara terperinci, anda boleh melangkah ke langkah seterusnya. Di bahagian API saya akan menerangkan secara terperinci bagaimana keseluruhan program berfungsi dan mendapat data dari API.

API (secara terperinci)

Perapian projek ini adalah Dua API;

  • API Trello
  • API Penyelamat

Walaupun dokumentasi mempunyai maklumat terperinci yang ada, saya akan menerangkan data mana dari API yang digunakan oleh projek ini.

Pada bahagian pengurusan masa, panggilan API Penyelamat yang mendapat maklumat waktu untuk hari ini adalah, "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"

di mana, tarikh ('Y-m-d') adalah tarikh semasa

perspektif = peringkat adalah jenis penyortiran data dalam kes ini "pangkat" yang bermaksud kebanyakan masa yang dihabiskan

Panggilan ini akan memberikan fail dalam format JSON yang kelihatan seperti ini: (lihat data.json pada akhir langkah ini)

Data yang kami gunakan dari file ini adalah "Time Spent (seconds)" dan "Productivity" yang mempunyai nilai antara -2 dan 2, -2 menjadi tidak aktif dan 2 menjadi produktif. Dengan data ini, kita dapat menghasilkan nilai lebih dari 100 untuk skor produktiviti.

Panggilan API lain ke RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Yang memberi anda ringkasan mingguan data anda, yang kelihatan seperti ini: (lihat ringkasan.json pada akhir langkah ini.) Saya menggunakan data ini untuk menghasilkan grafik ringkasan mingguan yang memberi anda gambaran keseluruhan minggu ini.

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

Ini akan memberi anda kad dalam senarai Trello anda seperti ini:

[{"id": "5a4160103bfcd14994852f59", "name": "ceylan cinemagraph"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "Learn GitHuB"}, {"id": "5981c19577c732f82680 ":" Publish Instructible "}, {" id ":" 5a341dba7f17d235d7c5bbd1 "," name ":" PRACRAM RUANG "}]

sekali lagi anda boleh menarik teks pada kad tersebut dan meletakkannya di tempat lain.

data.json

Data JSON yang diformat
{
"note": "data adalah susunan tatasusunan (baris), nama lajur untuk baris dalam baris_kepala",
"baris_kepala": [
"Peringkat",
"Masa yang Dibelanjakan (saat)",
"Bilangan Orang",
"Aktiviti",
"Kategori",
"Produktiviti"
],
"baris": [
[
1,
1536,
1,
"en.0wikipedia.org",
"Tidak dikategorikan",
0
],
[
2,
1505,
1,
"youtube.com",
"Video",
-2
],
[
3,
1178,
1,
"Pejabat terbuka",
"Menulis",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Rujukan Umum \u0026 Pembelajaran",
2
],
[
5,
602,
1,
"google.com.tr",
"Cari",
2
],
[
6,
439,
1,
"reddit.com",
"Berita Umum \u0026 Pendapat",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Menulis",
2
],
[
8,
361,
1,
"yemeksepeti.com",
"Membeli-belah Umum",
-2
],
[
9,
356,
1,
"Gmail",
"E-mel",
0
],
[
10,
328,
1,
"Google Chrome",
"Penyemak Imbas",
0
],
[
11,
207,
1,
"bintang.bilkent.edu.tr",
"Rujukan Umum \u0026 Pembelajaran",
2
],
[
12,
179,
1,
"whatsapp",
"Mesej segera",
-1
],

lihat rawdata.json dihoskan dengan ❤ oleh GitHub

ringkasan.json

[
{
"id": 1515657600,
"tarikh": "2018-01-11",
"produktiviti_pulse": 54,
"sangat_produktif_peratus": 34.2,
"peratusan_produktif": 10.6,
"neutral_percentage": 25.6,
"distracting_percentage": 0.0,
"sangat_beralih_peratus": 29.6,
"all_productive_percentage": 44.8,
"all_distracting_percentage": 29.6,
"uncategorized_percentage": 16.1,
"peratusan_ perniagaan": 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,
"rujukan_dan_pelajar_peratus": 22.8,
"shopping_percentage": 12.9,
"utiliti_peratusan": 14.1,
"total_jam": 2.51,
"sangat_produktif_jam": 0.86,
"jam_produktif": 0,27,
"neutral_hours": 0.64,
"mengganggu_jam": 0.0,
"very_distracting_hours": 0.74,
"semua_produk_jam": 1.12,
"all_distracting_hours": 0.74,
"unc_kategorized_hours": 0.4,
"business_hours": 0.15,
"Communication_and_scheduling_hours": 0.11,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0.0,
"entertainment_hours": 0.38,
"news_hours": 0.08,
"software_development_hours": 0.13,
"Reference_and_learning_hours": 0.57,
"shopping_hours": 0.32,
"utiliti_jam": 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": "tiada masa",
"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",
"communications_and_scheduling_duration_formatted": "6m 26s",
"social_networking_duration_formatted": "tiada masa",
"design_and_composition_duration_formatted": "tidak ada masa",
"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",
"utiliti_duration_formatted": "21m 17s"
},
{
"id": 1515571200,
"tarikh": "2018-01-10",
"produktiviti_pulse": 33,
"sangat_produktif_peratus": 21.9,
"peratusan_produktif": 2.3,
"neutral_percentage": 14.4,
"distracting_percentage": 11.0,
"very_distracting_percentage": 50.3,
"all_productive_percentage": 24.2,
"all_distracting_percentage": 61.4,
"uncategorized_percentage": 0.3,
"peratusan_ perniagaan": 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,
"rujukan_dan_pelajar_peratus": 15.5,
"shopping_percentage": 0.0,
"utiliti_peratusan": 15.4,
"total_jam": 2.24,
"sangat_produktif_jam": 0.49,
"jam_produktif": 0,05,
"neutral_hours": 0.32,
"mengganggu_jam": 0.25,
"very_distracting_hours": 1.13,
"semua_produk_jam": 0,54,
"all_distracting_hours": 1.37,
"unc_kategorized_hours": 0.01,
"business_hours": 0.0,
"Communication_and_scheduling_hours": 0.3,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0.14,
"entertainment_hours": 1.0,
"news_hours": 0.09,
"software_development_hours": 0.0,
"Reference_and_learning_hours": 0.35,
"shopping_hours": 0.0,
"utiliti_jam": 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",
"communications_and_scheduling_duration_formatted": "18m 5s",
"social_networking_duration_formatted": "tiada masa",
"design_and_composition_duration_formatted": "8m 30s",
"entertainment_duration_formatted": "59m 54s",
"news_duration_formatted": "5m 39s",
"software_development_duration_formatted": "tidak ada masa",
"Reference_and_learning_duration_formatted": "20m 51s",
"shopping_duration_formatted": "tidak ada masa",
"utiliti_duration_formatted": "20m 39s"
},
{
"id": 1515484800,
"tarikh": "2018-01-09",
"produktiviti_pulse": 68,
"sangat_produktif_peratus": 60.4,
"peratusan_produktif": 0,5,
"neutral_percentage": 11.0,
"distracting_percentage": 7.1,
"very_distracting_percentage": 21.0,
"all_productive_percentage": 60.9,
"all_distracting_percentage": 28.1,
"uncategorized_percentage": 9.1,
"peratusan perniagaan": 21.9,
"Communication_and_scheduling_percentage": 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,
"rujukan_dan_pelajar_peratus": 28.2,
"shopping_percentage": 2.9,
"Utilities_percentage": 1.2,
"total_jam": 2.78,
"sangat_produktif_jam": 1.68,
"jam_produktif": 0,01,
"neutral_hours": 0.31,
"mengganggu_jam": 0.2,
"very_distracting_hours": 0.58,
"semua_produk_jam": 1.69,
"all_distracting_hours": 0.78,
"unc_kategorized_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,
"news_hours": 0.35,
"software_development_hours": 0.25,
"Reference_and_learning_hours": 0.78,
"shopping_hours": 0.08,
"utiliti_jam": 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",
"communications_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",
"utiliti_duration_formatted": "2m 3s"
}
]

lihat rawsummary.json dihoskan dengan ❤ oleh GitHub

Langkah 4: Prototaip

Hadiah Utama dalam Peraduan Raspberry Pi 2017

Disyorkan: