İçindekiler:

Verimlilik Takipçisi - Raspberry Pi Tarafından Desteklenir: 9 Adım (Resimlerle)
Verimlilik Takipçisi - Raspberry Pi Tarafından Desteklenir: 9 Adım (Resimlerle)

Video: Verimlilik Takipçisi - Raspberry Pi Tarafından Desteklenir: 9 Adım (Resimlerle)

Video: Verimlilik Takipçisi - Raspberry Pi Tarafından Desteklenir: 9 Adım (Resimlerle)
Video: Haftalık Gündem Değerlendirmesi 2015/07 2024, Kasım
Anonim
Verimlilik Takipçisi - Raspberry Pi tarafından desteklenmektedir
Verimlilik Takipçisi - Raspberry Pi tarafından desteklenmektedir
Verimlilik Takipçisi - Raspberry Pi tarafından desteklenmektedir
Verimlilik Takipçisi - Raspberry Pi tarafından desteklenmektedir
Verimlilik Takipçisi - Raspberry Pi tarafından desteklenmektedir
Verimlilik Takipçisi - Raspberry Pi tarafından desteklenmektedir

Productivity Tracker sihirli bir aynadır, ancak zamanı, hava durumunu ve motive edici bir alıntıyı göstermek yerine 4 şeyi gösterir;

O gün için bilgisayarınızda ve telefonunuzda üretken materyallere harcadığınız zamanın yüzdesi.(RescueTime)

Trello'dan yapılacaklar listeniz

Kullandığınız program-uygulamaların kategorileri ile birlikte ne kadar zaman harcadığınızı dünkü kullanıma göre gösteren bir radar grafiği.(RescueTime)

Haftalık genel bakış.(RescueTime)

Üretken malzemeye harcadığınız zamanın yüzdesi %50'nin üzerindeyse, LED'ler parlak yeşil bir renk gösterecektir. %50'nin altındaysa, daha üretken olmanız gerektiğini gösteren kırmızı bir renk gösterecektir! Kendiniz de bir hedef belirleyebilirsiniz.

anahat

İlk adımda, verimlilik izleyicinin arkasındaki fikri açıklayacağım. Daha sonra, size iki farklı araç ve parça listesi vereceğim, böylece tam projeyi veya lehimleme becerileri gerektirmeyen temel bir sürümü (LED'leri içermez) oluşturabilirsiniz. Daha sonra, kendi prototipinizi nasıl modelleyeceğinize dair bir fikriniz olması için projemin versiyonunu nasıl prototiplediğimi size göstereceğim. Ayrıca, kodu kendi ihtiyaçlarınıza göre özelleştirebilmeniz için kod bölümünde ayrıntılara gireceğim. Sonunda, bu derleme sırasında karşılaştığım sorunlardan yola çıkarak size bir Sorun Giderme kılavuzu vereceğim. Ve listeyi sorularınızla genişletin.

Bu talimatın amacı sadece size bir yemek kitabı vermek değildir. Size bu projeyi nasıl kurduğumu göstereceğim ve size açık uçlu sorular vereceğim, böylece kendi fikirlerinizi ekleyebilir ve bu projeyi daha da ileriye taşıyabilirsiniz. İşiniz bittiğinde yapınızı paylaşmanızı şiddetle tavsiye ediyorum! Başlayalım.

Adım 1: Fikir

Fikir
Fikir

Aylardır bu Eğitilebilir Yazıyı yazmak niyetindeyim. Ama "Erteleme" lakaplı eski bir arkadaşım izin vermedi. Erteleme, bir görevi veya bir dizi görevi ertelemek veya ertelemek ve bu görevleri YouTube'un karanlık derinliklerinden video izleyerek zamanı doldurmak yerine yapmaktır.

Bir gün ertelemeyle ilgili bir makale okurken, sorunumda bana yardımcı olacak birden çok uygulama/programla karşılaştım, bir görev yönetimi uygulaması olarak Trello ve bir zaman yönetimi uygulaması olarak RescueTime. Her ikisi de en azından bir süre için ihtiyaçlarım için mükemmel çalıştı. Bir süre sonra uygulamaları kontrol etmeyi tamamen bıraktım ve bildirimleri görmezden geldim. İşte o zaman bu proje aklıma geldi. Uygulamalardan gelen verileri duvarıma asılı bir aynada görüntülerdim. Bu şekilde sorumluluklarımdan kaçış yoktu.

Projem için çizdiğim ilk taslak oldukça basitti. Üretken/Dikkati dağıtan çalışma yüzdemi görüntülemek için RescueTime API'sini kullanırdım. Ve gün için yapılacaklar listemi görüntülemek için Trello API'sini kullanın. Ancak bir süre sonra, sonraki adımlarda ayrıntılı olarak alacağım daha fazla özellik ekledim.

2. Adım: Araçlar ve Parçalar

Not: Bu, derlemem sırasında kullandığım araçların bir listesidir, derlemeniz için aynı olmaları gerekmez!

Baz için:

4 Metre 7x15cm playwood - 6$ - Ekran boyutunuza göre değişir

30x40cm tek taraflı ayna - ekran boyutunuza bağlıdır

25x35cm Samsung monitör - 15$ - Bit pazarında bulundu. herhangi bir monitör yapar

Raspberry Pi 3 Model B- 35$ - Raspberry pi 2 de gayet iyi ama bir wifi modülüne ihtiyacınız olacak

HDMI kablosu - 2$

Led Yıldırım için:

200cm smd5050 RGB Led şerit- 4$ - Daha sonra smd5050 olmalı…

  • Üç N-kanallı MOSFET (ör. IRLZ34N) - 2$
  • 12V-2A güç adaptörü - 3.15$
  • Prototipleme PCB'si - 1$

Aletler:

  • Ağaç testeresi
  • Ahşap tutkalı
  • Havya (LED aydınlatma için)

Adım 3: Kod

kod
kod

Bu adım 3 parça olacak, bir önceki adımda listelenen tüm parçalara ihtiyacınız yok. Prototipleme aşaması için bir Raspberry Pi ve bu proje için kullanacağınız monitör yeterli olacaktır.

Raspberry Pi'nizi ayarlama

Ahududu Pi'nizi henüz ayarlamadıysanız, devam edin ve burada yapın. Bu yapı için, web sunucusu ve PHP-LED denetleyicisi için Apache'yi yüklemeniz gerekir.

Apache'yi kurmak için bu resmi kılavuzu izleyin.

PHP-LED denetleyicisini kurmak için Christian Nikkanen'in bu kılavuzu izleyin

Şimdi proje deposundan index.php dosyasını Raspberry Pi'nize indirin ve şu yola koyun:

/var/www/html/

Linux Terminalinde dosya taşıma konusunda bilginiz yoksa, başlamak için bu kılavuza bakabilirsiniz.

Kodu Özelleştirin

Not: Farklı bir monitör kullanıyorsanız, bu bölüm biraz HTML/CSS bilgisi gerektirir.

Özelleştirme, bu derlemenin kalbi olan index.php dosyasında yapılacaktır. Şimdi devam edin ve henüz yapmadıysanız monitörünüzü Raspberry Pi'nize bağlayın.

Şimdi index.php dosyasını açmaya çalışırsanız, işe yaramaz çünkü önce koddaki API anahtarlarını doldurmanız gerekir, bunun için RescueTime web sitesine gidin ve bir hesap açın. Ardından geliştirici bölümüne gidin ve Bu Anahtarı Etkinleştir'e basarak bir API anahtarı oluşturun. API anahtarınızı bir yere yazın.

Aynısını Trello API anahtarınız için yapın, Bir hesap açın ve bir API anahtarı oluşturmak için geliştirici portalına gidin.

Ardından, /var/www/html/ içine koyduğunuz index.php dosyasını favori metin düzenleyicinizde açın ve [API_KEY] yerine RescueTime ve Trello'dan aldığınız kendi API anahtarınızla değiştirin. [list_numarası], yapılacaklar listeniz Trello için kullandığınız liste numarasıdır. Bu numarayı almak için önce Trello'da yeni bir liste oluşturun ve "Yapılacaklar" olarak adlandırın, bu yapılacaklar listeniz için kullanacağınız liste olacak ve aynada görünecektir.

Ardından, adres çubuğunuzdaki şuna benzeyen URL'yi alın:

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

ve buna şu şekilde.json ekleyin:

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

ve enter tuşuna basın, ardından ekranda bir kod karmaşası göreceksiniz. Bu karışıklık üzerinde liste adınızı ''Yapılacaklar'' bulmaya çalışın. Şuna benzemelidir: {"name":"Yapılacaklar", "id":"5981c123cd1b23f13907cd18"}, Bu kimlik sizin liste kimliğinizdir. bu numarayı index.php dosyasında [list_number] olarak ayarlayın.

Şimdi tarayıcınızı açın ve adres çubuğuna localhost yazın ve enter tuşuna basın. Verilerinizin grafiklerde görüntülendiğini görmelisiniz.

Not: Kullandığınız monitörün çözünürlüğü nedeniyle grafiklerin yerleşimleri farklı olabilir. Kodun CSS bölümündeki öğelerin genişliğini, yüksekliğini ve konumunu düzenleyebilirsiniz.

Şimdi yapılması gereken tek şey monitörün etrafına bir kutu tasarlamak ve LED'leri bağlamak.

Not: Eğer API'lerin detaylarıyla ilgilenmiyorsanız bir sonraki adıma geçebilirsiniz. API bölümünde, tüm programın nasıl çalıştığını ve API'lerden veri aldığını ayrıntılı olarak anlatacağım.

API'ler (ayrıntılı olarak)

Bu projenin kalbi İki API'dir;

  • Trello API'si
  • RescueTime API'si

Belgelerde ayrıntılı bilgiler mevcut olsa da, bu projenin API'den hangi verileri kullandığını açıklayacağım.

Zaman yönetimi kısmında, o gün için zaman bilgisini alan RescueTime API çağrısı, "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"

nerede, date('Y-m-d') geçerli tarihtir

perspektif=rank, bu durumda harcanan zamanın çoğu anlamına gelen "rank" veri sıralama türüdür

Bu çağrı şuna benzeyen JSON formatında bir dosya verecektir:(bu adımın sonunda data.json'a bakın)

Bu dosyadan kullandığımız veriler "Harcanan Zaman (saniye)" ve -2 ile 2 arasında değerlere sahip "Verimlilik", -2 dikkat dağıtıcı ve 2 üretkendir. Bu verilerle verimlilik puanı için 100'ün üzerinde bir değer üretebiliriz.

RescueTime'a başka bir API çağrısı, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Bu, size verilerinizin haftalık bir özetini verir ve şuna benzer:(bu adımın sonundaki özet.json'a bakın.) Bu verileri, size haftanın bir özetini veren haftalık özet grafiğini oluşturmak için kullandım.

Trello API çağrısı, "https://api.trello.com/1/lists/[list_number]/cards?fields=name&key=[API_KEY]&token=[Jeton]"

Bu size Trello listenizdeki kartları şu şekilde verecektir:

[{"id":"5a4160103bfcd14994852f59", "name":"ceylan Cinemagraph"}, {"id":"59e8241f6aa8662a51eb7de6", "name":"GitHuB Öğren"}, {"id":"5981c19577c732f826ad8025" ":"Yayınlama Talimatı"}, {"id":"5a341dba7f17d235d7c5bbd1", "name":"UZAY PROGRAMI"}]

yine o kartlardaki metni çekip başka bir yere koyabilirsiniz.

veri.json

Biçimlendirilmiş JSON Verileri
{
"notes":"veri, bir dizi (satır) dizisidir, satır_başlıklarındaki satırlar için sütun adlarıdır",
"row_headers":[
"Rütbe",
"Harcanan Zaman (saniye)",
"İnsanların sayısı",
"Aktivite",
"Kategori",
"Verimlilik"
],
"satırlar":[
[
1,
1536,
1,
"tr.0wikipedia.org",
"Kategorize edilmemiş",
0
],
[
2,
1505,
1,
"youtube.com",
"Video",
-2
],
[
3,
1178,
1,
"Açık ofis",
"Yazı",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Genel Referans \u0026 Öğrenme",
2
],
[
5,
602,
1,
"google.com.tr",
"Arama",
2
],
[
6,
439,
1,
"reddit.com",
"Genel Haberler \u0026 Görüş",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Yazı",
2
],
[
8,
361,
1,
"yemeksepeti.com",
"Genel Alışveriş",
-2
],
[
9,
356,
1,
"Gmail",
"E-posta",
0
],
[
10,
328,
1,
"Google Chrome",
"Tarayıcılar",
0
],
[
11,
207,
1,
"stars.bilkent.edu.tr",
"Genel Referans \u0026 Öğrenme",
2
],
[
12,
179,
1,
"Naber",
"Anında mesaj",
-1
],

GitHub tarafından ❤ ile barındırılan rawdata.json'u görüntüleyin

özet.json

[
{
"kimlik":1515657600,
"tarih":"2018-01-11",
"üretkenlik_pulse":54,
"çok_üretken_yüzde":34,2,
"üretken_yüzde":10.6,
"nötr_yüzde":25,6,
"dikkat dağıtıcı_yüzde":0.0,
"very_distracting_percentage":29.6,
"all_productive_percentage":44,8,
"all_distracting_percentage":29.6,
"uncategorized_percentage":16.1,
"iş_yüzdesi":6.0,
"communication_and_scheduling_percentage":4.3,
"social_networking_percentage":0.0,
"design_and_composition_percentage":0.0,
"eğlence_yüzdesi":15.2,
"haber_yüzdesi":3.3,
"software_development_percentage":5.4,
"reference_and_learning_percentage":22,8,
"alışveriş_yüzdesi":12.9,
"yardımcı hizmetler_yüzdesi":14.1,
"toplam_saat":2.51,
"very_productive_hours":0.86,
"üretken_saat":0.27,
"nötr_saat":0.64,
"dikkat dağıtan_saatler":0.0,
"very_distracting_hours":0.74,
"all_productive_hours":1.12,
"all_distracting_hours":0.74,
"uncategorized_hours":0.4,
"iş_saatleri":0.15,
"communication_and_scheduling_hours":0.11,
"social_networking_hours":0.0,
"design_and_composition_hours":0.0,
"eğlence_saatleri":0.38,
"haber_saatleri":0.08,
"software_development_hours":0.13,
"reference_and_learning_hours":0.57,
"alışveriş_saatleri":0.32,
"utilities_hours":0.35,
"total_duration_formatted":"2sa 30dk",
"very_productive_duration_formatted":"51dk 26sn",
"productive_duration_formatted":"15m 56sn",
"neutral_duration_formatted":"38dk 34sn",
"distracting_duration_formatted":"zaman yok",
"very_distracting_duration_formatted":"44m 30s",
"all_productive_duration_formatted":"1sa 7dk",
"all_distracting_duration_formatted":"44m 30s",
"uncategorized_duration_formatted":"24dk 11s",
"business_duration_formatted":"9dk 6sn",
"communication_and_scheduling_duration_formatted":"6dk 26sn",
"social_networking_duration_formatted":"zaman yok",
"design_and_composition_duration_formatted":"zaman yok",
"entertainment_duration_formatted":"22dk 49sn",
"news_duration_formatted":"4dk 55sn",
"software_development_duration_formatted":"8m 3s",
"reference_and_learning_duration_formatted":"34m 17s",
"shopping_duration_formatted":"19dk 22sn",
"utilities_duration_formatted":"21dk 17sn"
},
{
"kimlik": 1515571200,
"tarih":"2018-01-10",
"üretkenlik_pulse":33,
"çok_üretken_yüzde":21.9,
"üretken_yüzde":2.3,
"nötr_yüzde":14.4,
"dikkat dağıtıcı_yüzde":11.0,
"çok_distracting_percentage":50,3,
"all_productive_percentage":24.2,
"all_distracting_percentage":61,4,
"kategorize edilmemiş_yüzde":0.3,
"iş_yüzdesi":0.0,
"communication_and_scheduling_percentage":13.5,
"social_networking_percentage":0.0,
"design_and_composition_percentage":6.3,
"eğlence_yüzdesi":44.7,
"haber_yüzdesi":4.2,
"software_development_percentage":0.0,
"reference_and_learning_percentage":15.5,
"alışveriş_yüzdesi":0.0,
"utilities_percentage":15.4,
"toplam_saat":2.24,
"very_productive_hours":0.49,
"üretken_saat":0.05,
"nötr_saat":0.32,
"dikkat dağıtan_saatler":0,25,
"very_distracting_hours":1.13,
"all_productive_hours":0.54,
"all_distracting_hours":1.37,
"uncategorized_hours":0.01,
"iş_saatleri":0.0,
"communication_and_scheduling_hours":0.3,
"social_networking_hours":0.0,
"design_and_composition_hours":0.14,
"eğlence_saatleri":1.0,
"haber_saatleri":0.09,
"software_development_hours":0.0,
"reference_and_learning_hours":0.35,
"alışveriş_saatleri":0.0,
"utilities_hours":0.34,
"total_duration_formatted":"2sa 14dk",
"very_productive_duration_formatted":"29m 22s",
"productive_duration_formatted":"3dk 8sn",
"neutral_duration_formatted":"19dk 18sn",
"distracting_duration_formatted":"14dk 48sn",
"very_distracting_duration_formatted":"1sa 7dk",
"all_productive_duration_formatted":"32m 30s",
"all_distracting_duration_formatted":"1sa 22dk",
"uncategorized_duration_formatted":"27s",
"business_duration_formatted":"1s",
"communication_and_scheduling_duration_formatted":"18m 5s",
"social_networking_duration_formatted":"zaman yok",
"design_and_composition_duration_formatted":"8m 30s",
"entertainment_duration_formatted":"59dk 54sn",
"news_duration_formatted":"5dk 39sn",
"software_development_duration_formatted":"zaman yok",
"reference_and_learning_duration_formatted":"20m 51s",
"shopping_duration_formatted":"zaman yok",
"utilities_duration_formatted":"20m 39sn"
},
{
"kimlik":1155484800,
"tarih":"2018-01-09",
"üretkenlik_pulse":68,
"çok_üretken_yüzde":60,4,
"üretken_yüzde":0.5,
"nötr_yüzde":11.0,
"dikkat dağıtıcı_yüzde":7.1,
"very_distracting_percentage":21.0,
"all_productive_percentage":60,9,
"all_distracting_percentage":28.1,
"kategorize edilmemiş_yüzde":9.1,
"iş_yüzdesi":21,9,
"communication_and_scheduling_percentage":7.2,
"social_networking_percentage":5.1,
"design_and_composition_percentage":1.2,
"eğlence_yüzdesi":1.6,
"haber_yüzdesi":12,5,
"software_development_percentage":9.1,
"reference_and_learning_percentage":28.2,
"alışveriş_yüzdesi":2.9,
"utilities_percentage":1.2,
"toplam_saat":2.78,
"very_productive_hours":1.68,
"üretken_saatler":0.01,
"nötr_saat":0.31,
"dikkat dağıtan_saatler":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,
"eğlence_saatleri":0.04,
"haber_saatleri":0.35,
"software_development_hours":0,25,
"reference_and_learning_hours":0.78,
"shopping_hours":0.08,
"utilities_hours":0.03,
"total_duration_formatted":"2sa 46dk",
"very_productive_duration_formatted":"1sa 40dk",
"productive_duration_formatted":"47s",
"neutral_duration_formatted":"18dk 23sn",
"distracting_duration_formatted":"11dk 49sn",
"very_distracting_duration_formatted":"34dk 57sn",
"all_productive_duration_formatted":"1sa 41dk",
"all_distracting_duration_formatted":"46dk 46sn",
"uncategorized_duration_formatted":"15dk 7sn",
"business_duration_formatted":"36dk 26sn",
"communication_and_scheduling_duration_formatted":"11m 59s",
"social_networking_duration_formatted":"8dk 28sn",
"design_and_composition_duration_formatted":"2dk 4s",
"entertainment_duration_formatted":"2dk 39sn",
"news_duration_formatted":"20dk 49sn",
"software_development_duration_formatted":"15m 5s",
"reference_and_learning_duration_formatted":"46m 59s",
"shopping_duration_formatted":"4dk 51sn",
"utilities_duration_formatted":"2dk 3sn"
}
]

GitHub tarafından ❤ ile barındırılan rawsummary.json'u görüntüleyin

Adım 4: Prototipleme

Raspberry Pi Yarışması 2017'de Büyük Ödül

Önerilen: