
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:56



Məhsuldarlıq İzləyicisi sehrli bir güzgüdür, ancaq vaxtı, havanı və həvəsləndirici bir sitatı göstərmək əvəzinə 4 şeyi göstərir;
O gün üçün kompüterinizdə və telefonunuzda məhsuldar materiala sərf etdiyiniz vaxtın faizi. (RescueTime)
Trellodan edəcəyiniz işlər siyahısı
Dünənki istifadə ilə müqayisədə istifadə etdiyiniz proqram-tətbiqlərin kateqoriyalarına nə qədər vaxt sərf etdiyinizi göstərən bir radar qrafiki. (RescueTime)
Həftəlik baxış. (RescueTime)
Məhsuldar materiala sərf etdiyiniz vaxtın faizi 50% -dən çox olarsa, LEDlər parlaq yaşıl rəng göstərəcək. 50% -dən aşağıdırsa, daha məhsuldar olmağınız üçün qırmızı bir rəng göstərəcək! Özünüz də bir məqsəd qoya bilərsiniz.
Kontur
İlk addımda məhsuldarlıq izləyicisinin arxasındakı fikri izah edəcəyəm. Sonra, sizə iki fərqli alət və hissə siyahısı verəcəyəm, beləliklə, lehimləmə bacarığı tələb etməyən tam bir layihə və ya əsas versiyanı (LEDlər daxil deyil) qura bilərsiniz. Daha sonra sizə layihə versiyamı necə prototip etdiyimi göstərəcəyəm, buna görə də öz prototipinizi necə modelləşdirəcəyiniz barədə bir fikriniz var. Ayrıca, kod hissəsində ətraflı məlumat verəcəyəm ki, kodu öz ehtiyaclarınıza uyğunlaşdıra biləsiniz. Sonda bu quruluş zamanı qarşılaşdığım problemlərə əsaslanaraq sizə bir problemi həll edən bələdçi verəcəyəm. Və suallarınızla siyahını genişləndirin.
Bu təlimatın məqsədi yalnız bir yemək kitabı vermək deyil. Mən sizə bu layihəni necə qurduğumu göstərəcəyəm və sizə açıq suallar verəcəyəm, belə ki, öz fikirlərinizi əlavə edə və bu layihəni daha da irəli apara bilərsiniz. Quruluşunuz bitdikdə onu paylaşmağınızı şiddətlə tövsiyə edirəm! Gəlin başlayaq.
Addım 1: Fikir

Aylardır bu Təlimatı yazmaq fikrindəyəm. Amma "Gecikmə" adı ilə gedən köhnə bir dostum icazə vermədi. Təxirə salmaq, bir işi və ya bir sıra vəzifələri gecikdirmək və ya təxirə salmaq və bu işləri yerinə yetirmək əvəzinə YouTube -un qaranlıq dərinliklərindən video izləməklə doldurmaqdır.
Bir gün təxirə salınma ilə bağlı bir məqalə oxuyarkən problemimi həll etməyə kömək edəcək bir çox proqram/proqramla rastlaşdım, vəzifə idarəetmə proqramı olaraq Trello və vaxt idarəetmə proqramı olaraq RescueTime. Hər ikisi də ən azından bir müddət ehtiyaclarım üçün mükəmməl işləyirdi. Bir müddət sonra tətbiqləri yoxlamağı tamamilə dayandırdım və bildirişlərə məhəl qoymadım. Məhz o vaxt bu layihə ilə tanış oldum. Tətbiqlərdən alınan məlumatları divarımda asılmış bir güzgüdə göstərərdim. Bu yolla məsuliyyətimdən qaça bilmədim.
Layihəm üçün çəkdiyim ilk qaralama olduqca sadə idi. Məhsuldar/Dağıtıcı iş faizimi göstərmək üçün RescueTime API -dən istifadə edərdim. Gün ərzində edəcəyim işlər siyahısını göstərmək üçün Trello API-dən istifadə edin. Ancaq bir müddət sonra, sonrakı addımlarda ətraflı əldə edəcəyim daha çox xüsusiyyət əlavə etdim.
Addım 2: Alətlər və Parçalar
Qeyd: Bu, qurarkən istifadə etdiyim vasitələrin siyahısıdır, quruluşunuz üçün eyni olmaq məcburiyyətində deyil!
Baza üçün:
7x15 sm ölçülü 4 metrlik ağac - 6 dollar - Ekranınızın ölçüsündən asılıdır
30x40 sm bir tərəfli güzgü - ekranın ölçüsündən asılıdır
25x35 sm Samsung monitor - 15 $ - Bir bazarda tapıldı. hər hansı bir monitor edər
Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 də yaxşıdır, ancaq wifi moduluna ehtiyacınız olacaq
HDMI kabeli - 2 dollar
Led Yıldırım üçün:
200cm smd5050 RGB Led şeridi - 4 $ - Daha sonra smd5050 daha çox olmalıdır …
- Üç N kanallı MOSFET (məsələn, IRLZ34N) - 2 dollar
- 12V -2A güc adapteri - 3.15 dollar
- PCB prototipləri - 1 dollar
Alətlər:
- Taxta mişar
- Taxta yapışqan
- Lehimləmə Dəmiri (LED işıqlandırma üçün)
Addım 3: Kod

Bu addım 3 hissədən ibarət olacaq, əvvəlki addımda sadalanan bütün hissələrə ehtiyacınız yoxdur. Raspberry Pi və bu layihə üçün istifadə edəcəyiniz monitor prototip hazırlama mərhələsi üçün kifayət etməlidir.
Raspberry Pi qurmaq
Raspberry Pi qurmadınızsa, hələ də davam edin və burada edin. Bu quruluş üçün veb server və PHP-LED nəzarətçi üçün Apache yükləməlisiniz.
Apache qurmaq üçün bu rəsmi təlimatı izləyin.
PHP-LED nəzarətçisini quraşdırmaq üçün Christian Nikkanen tərəfindən verilən bu təlimatı izləyin
İndi index.php faylını layihə anbarından Raspberry Pi -yə yükləyin və bu yola qoyun:
/var/www/html/
Linux Terminalında faylları köçürməklə tanış deyilsinizsə, işə başlamaq üçün bu təlimata baxa bilərsiniz.
Kodu fərdiləşdirin
Qeyd: Fərqli bir monitor istifadə edirsinizsə, bu hissə bir az HTML/CSS biliyi tələb edir.
Fərdiləşdirmə bu quruluşun ocağı olan index.php faylında ediləcək. Hələ davam etməsəniz, monitorunuzu Raspberry Pi -yə qoşun.
İndi index.php faylını açmağa çalışsanız işləməyəcək, çünki əvvəlcə koddakı API düymələrini doldurmalısınız, bunun üçün RescueTime veb saytına gedin və hesab açın. Sonra, geliştirici bölməsinə gedin və Bu Açarı Aktivləşdir düyməsini basaraq bir API açarı yaradın. API açarınızı bir yerə yazın.
Trello API açarınız üçün də eyni şeyi edin, bir hesab açın və bir API açarı yaratmaq üçün geliştirici portalına gedin.
Sonra/var/www/html/-ə daxil etdiyiniz index.php faylını ən çox sevdiyiniz mətn redaktorunda açın və [API_KEY] -ni müvafiq olaraq RescueTime və Trello -dan aldığınız öz API açarınızla əvəz edin. [List_number], Trello işlər siyahınız üçün istifadə etdiyiniz siyahı nömrəsidir. Bu nömrəni əldə etmək üçün əvvəlcə Trello-da yeni bir siyahı yaradın və "Yapılacaklar" adlandırın, bu işlər siyahınız üçün istifadə edəcəyiniz siyahı olacaq və aynada görünəcək.
Sonra, ünvan çubuğunda görünən URL -ni götürün:
trello.com/b/3hS6yyLo/board-name
və buna belə.json əlavə edin:
trello.com/b/3hS6yyLo/board-name.json
və enter düyməsini basın, bundan sonra ekranda bir kod qarışığı görəcəksiniz. Bu qarışıqlıqda siyahı adınızı '' Yapılacaklar '' ı tapmağa çalışın. Bu, belə bir şeyə bənzəməlidir: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, Bu Id sizin siyahınızdır. Put. index.php faylında bu rəqəmi [list_number] olaraq göstərin.
İndi brauzerinizi açın və ünvan çubuğuna localhost yazın və enter düyməsini basın. Verilənlərin qrafiklərdə göstərildiyini görməlisiniz.
Qeyd: İstifadə etdiyiniz monitorun qətnaməsinə görə qrafiklərin yerləşdirilməsi fərqli ola bilər. Kodun CSS hissəsindəki elementlərin genişliyini, hündürlüyünü və yerini düzəldə bilərsiniz.
İndi yalnız monitorun ətrafında bir qutu hazırlamaq və LEDləri bağlamaq qalır.
Qeyd: API ilə ətraflı maraqlanmırsınızsa, növbəti addıma keçə bilərsiniz. API hissəsində bütün proqramın necə işlədiyini və API -lərdən məlumat alacağını ətraflı öyrənəcəyəm.
API (ətraflı)
Bu layihənin ocağı İki API -dir;
- Trello API
- RescueTime API
Sənədlərdə ətraflı məlumat olsa da, bu layihənin hansı API -dən istifadə etdiyini izah edəcəyəm.
Vaxt idarəetmə hissəsində, cari gün üçün vaxt məlumatlarını alan RescueTime API çağırışı, "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"
harada, tarix ('Y-m-d') cari tarixdir
perspektiv = rütbə, bu vəziyyətdə sərf olunan vaxtın çoxunu təşkil edən "sıralama" tipli məlumatların çeşidlənməsi növüdür
Bu zəng, JSON formatında bir fayl verəcəkdir: (bu addımın sonunda data.json -a baxın)
Bu fayldan istifadə etdiyimiz məlumatlar, "sərf olunan vaxt (saniyə)" və "məhsuldarlıq" dır --2 ilə 2 arasında, -2 yayındırıcı və 2 məhsuldar. Bu məlumatlarla məhsuldarlıq balı üçün 100 -dən yuxarı bir dəyər yarada bilərik.
RescueTime üçün başqa bir API çağırışı, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"
Hansı məlumatlarınızın həftəlik xülasəsini verir, belə görünür: (bu addımın sonunda Summary.json -a baxın.) Bu məlumatları həftənin ümumi görünüşünü verən həftəlik xülasə qrafikini yaratmaq üçün istifadə etdim.
Trello API çağırışı, "https://api.trello.com/1/lists/ [list_number]/cards?fields=name&key=[API_KEY]&token=[Token]"
Bu, Trello siyahınızdakı kartları sizə belə verəcək:
[{"id": "5a4160103bfcd14994852f59", "name": "ceylan Cinemagraph"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "GitHuB öyrən"}, {"id": "5981c32877ad ":" Təlimat Yayımla "}, {" id ":" 5a341dba7f17d235d7c5bbd1 "," name ":" SPACE PROGRAM "}]
yenə həmin kartların üzərindəki mətni çəkib başqa yerə qoya bilərsiniz.
data.json
Formatlanmış JSON məlumatları |
{ |
"qeydlər": "məlumatlar bir sıra dizilərdir (satır), satır_başlıqlarında satırlar üçün sütun adları", |
"row_headers": [ |
"Rütbə", |
"Keçmiş Zaman (saniyə)", |
"Əhali sayı", |
"Fəaliyyət", |
"Kateqoriya", |
"Məhsuldarlıq" |
], |
"sıralar": [ |
[ |
1, |
1536, |
1, |
"en.0wikipedia.org", |
"Kateqoriyasız", |
0 |
], |
[ |
2, |
1505, |
1, |
"youtube.com", |
"Video", |
-2 |
], |
[ |
3, |
1178, |
1, |
"OpenOffice", |
"Yazı", |
2 |
], |
[ |
4, |
709, |
1, |
"moodle.bilkent.edu.tr", |
"Ümumi İstinad & Öyrənmə", |
2 |
], |
[ |
5, |
602, |
1, |
"google.com.tr", |
"Axtar", |
2 |
], |
[ |
6, |
439, |
1, |
"reddit.com", |
"Ümumi Xəbərlər & Fikir", |
-2 |
], |
[ |
7, |
437, |
1, |
"tr.sharelatex.com", |
"Yazı", |
2 |
], |
[ |
8, |
361, |
1, |
"yemeksepeti.com", |
"Ümumi alış -veriş", |
-2 |
], |
[ |
9, |
356, |
1, |
"Gmail", |
"E -poçt", |
0 |
], |
[ |
10, |
328, |
1, |
"Google Chrome", |
"Tarayıcılar", |
0 |
], |
[ |
11, |
207, |
1, |
"ulduzlar.bilkent.edu.tr", |
"Ümumi İstinad & Öyrənmə", |
2 |
], |
[ |
12, |
179, |
1, |
"whatsapp", |
"Ani Mesaj", |
-1 |
], |
GitHub tərəfindən ❤ ilə evlənən rawdata.json -a baxın
xülasə.json
[ |
{ |
"id": 1515657600, |
"tarix": "2018-01-11", |
"məhsuldarlıq_pulse": 54, |
"çox_ məhsuldar_ faiz": 34.2, |
"məhsuldar_ yüzdə": 10.6, |
"neytral_ faiz": 25.6, |
"distracting_percentage": 0.0, |
"çox_dəyişdirmə_ yüzdəsi": 29.6, |
"all_productive_percentage": 44.8, |
"hamısı_düzələndirən_ faiz": 29.6, |
"kateqoriyalara aid olmayan yüzdə": 16.1, |
"business_centcent": 6.0, |
"ünsiyyət_və_tədqiq_sayəti": 4.3, |
"social_networking_percentage": 0.0, |
"design_and_composition_percentage": 0.0, |
"əyləncə_ yüzdəsi": 15.2, |
"xəbər_sayəti": 3.3, |
"software_development_percentage": 5.4, |
"istinad_və_öyrənmə_ yüzdəsi": 22.8, |
"alış -veriş faizi": 12.9, |
"utility_percentage": 14.1, |
"total_hours": 2.51, |
"çox_ məhsuldar_hours": 0.86, |
"məhsuldar_hours": 0.27, |
"neytral_hours": 0.64, |
"distracting_hours": 0.0, |
"çox_distraktinq_hours": 0.74, |
"all_productive_hours": 1.12, |
"all_distracting_hours": 0.74, |
"uncategorized_hours": 0.4, |
"business_hours": 0.15, |
"rabitə_və_tədqiqat_ saatı": 0.11, |
"social_networking_hours": 0.0, |
"design_and_composition_hours": 0.0, |
"əyləncə_hours": 0.38, |
"news_hours": 0.08, |
"software_development_hours": 0.13, |
"reference_and_learning_hours": 0.57, |
"shopping_hours": 0.32, |
"utility_hours": 0.35, |
"total_duration_formatted": "2saat 30m", |
"very_productive_duration_formatted": "51m 26s", |
"məhsuldar_müddət_formatlı": "15m 56s", |
"zero_duration_formatted": "38m 34s", |
"distracting_duration_formatted": "vaxt yoxdur", |
"very_distracting_duration_formatted": "44m 30s", |
"all_productive_duration_formatted": "1saat 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": "vaxt yoxdur", |
"design_and_composition_duration_formatted": "vaxt yoxdur", |
"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, |
"tarix": "2018-01-10", |
"məhsuldarlıq_pulse": 33, |
"çox_ məhsuldar_ faiz": 21.9, |
"məhsuldar_ yüzdə": 2.3, |
"neytral_ faiz": 14.4, |
"distracting_percentage": 11.0, |
"çox_düzgü_ayarı": 50.3, |
"all_productive_percentage": 24.2, |
"hamısı_düzələndirən_ faiz": 61.4, |
"uncategorized_percentage": 0.3, |
"iş_sayısı": 0.0, |
"ünsiyyət_və_tədqiqat_faydası": 13.5, |
"social_networking_percentage": 0.0, |
"design_and_composition_percentage": 6.3, |
"əyləncə_ yüzdəsi": 44.7, |
"xəbər_sayəti": 4.2, |
"software_development_percentage": 0.0, |
"istinad_və_öyrənmə_ yüzdəsi": 15.5, |
"shopping_centcent": 0.0, |
"utility_percentage": 15.4, |
"total_hours": 2.24, |
"çox_ məhsuldar_hours": 0.49, |
"məhsuldar_hours": 0.05, |
"neytral_hours": 0.32, |
"distracting_hours": 0.25, |
"çox_dəyişən_hours": 1.13, |
"all_productive_hours": 0.54, |
"all_distracting_hours": 1.37, |
"uncategorized_hours": 0.01, |
"business_hours": 0.0, |
"ünsiyyət_və_tədqiqat_ saatı": 0.3, |
"social_networking_hours": 0.0, |
"design_and_composition_hours": 0.14, |
"əyləncə_hours": 1.0, |
"news_hours": 0.09, |
"software_development_hours": 0.0, |
"reference_and_learning_hours": 0.35, |
"shopping_hours": 0.0, |
"utility_hours": 0.34, |
"total_duration_formatted": "2saat 14m", |
"very_productive_duration_formatted": "29m 22s", |
"məhsuldar_müddət_formatlı": "3m 8s", |
"zero_duration_formatted": "19m 18s", |
"distracting_duration_formatted": "14m 48s", |
"very_distracting_duration_formatted": "1saat 7m", |
"all_productive_duration_formatted": "32m 30s", |
"all_distracting_duration_formatted": "1saat 22m", |
"uncategorized_duration_formatted": "27s", |
"business_duration_formatted": "1s", |
"Communication_and_scheduling_duration_formatted": "18m 5s", |
"social_networking_duration_formatted": "vaxt yoxdur", |
"design_and_composition_duration_formatted": "8m 30s", |
"entertainment_duration_formatted": "59m 54s", |
"news_duration_formatted": "5m 39s", |
"software_development_duration_formatted": "vaxt yoxdur", |
"reference_and_learning_duration_formatted": "20m 51s", |
"shopping_duration_formatted": "vaxt yoxdur", |
"utility_duration_formatted": "20m 39s" |
}, |
{ |
"id": 1515484800, |
"tarix": "2018-01-09", |
"məhsuldarlıq_pulse": 68, |
"çox_ məhsuldar_ faiz": 60.4, |
"məhsuldar_ yüzdə": 0,5, |
"neytral_ faiz": 11.0, |
"yayındıran_ faiz": 7.1, |
"çox_dəyişdirmə_ yüzdəsi": 21.0, |
"all_productive_percentage": 60.9, |
"hamısı_düzələndirən_ faiz": 28.1, |
"kateqoriyalara aid olmayan yüzdə": 9.1, |
"iş_sayısı": 21.9, |
"ünsiyyət_və_tədqiqat_faydası": 7.2, |
"social_networking_percentage": 5.1, |
"design_and_composition_percentage": 1.2, |
"əyləncə_ yüzdəsi": 1.6, |
"news_centcent": 12.5, |
"software_development_percentage": 9.1, |
"istinad_və_öyrənmə_ yüzdəsi": 28.2, |
"alış -veriş faizi": 2.9, |
"utility_percentage": 1.2, |
"total_hours": 2.78, |
"çox_ məhsuldar_hours": 1.68, |
"məhsuldar_hours": 0.01, |
"neytral_hours": 0.31, |
"distracting_hours": 0.2, |
"çox_distraktinq_hours": 0.58, |
"all_productive_hours": 1.69, |
"all_distracting_hours": 0.78, |
"uncategorized_hours": 0.25, |
"business_hours": 0.61, |
"rabitə_və_tədqiqat_ saatı": 0.2, |
"social_networking_hours": 0.14, |
"design_and_composition_hours": 0.03, |
"əyləncə_hours": 0.04, |
"news_hours": 0.35, |
"software_development_hours": 0.25, |
"reference_and_learning_hours": 0.78, |
"shopping_hours": 0.08, |
"utility_hours": 0.03, |
"total_duration_formatted": "2saat 46m", |
"very_productive_duration_formatted": "1saat 40m", |
"məhsuldar_müddət_formatlı": "47s", |
"zero_duration_formatted": "18m 23s", |
"distracting_duration_formatted": "11m 49s", |
"very_distracting_duration_formatted": "34m 57s", |
"all_productive_duration_formatted": "1saat 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" |
} |
] |
GitHub tərəfindən ❤ ilə ev sahibliyi edilən rawsummary.json
Addım 4: Prototipləşdirmə
2017 Raspberry Pi Yarışmasında Böyük Mükafat
Tövsiyə:
Mini IMac G4 Düz Panel - NUC tərəfindən dəstəklənir: 9 addım (şəkillərlə)

Mini IMac G4 Düz Panel - Powered by NUC: GirişBu quruluşa ilham verən bir neçə layihə üzərində işləmişəm. Biri dünyanın ən kiçik işləyən iMac olduğunu iddia edir, amma əslində bir MacOS mövzusunda bir Linux distrou işlədən bir Raspberry Pi -dir və əsl M işlədə bilməz
DIY Bluetooth Su İstiliyi Arduino tərəfindən dəstəklənir: 4 addım

DIY Bluetooth Su İstiliyi Arduino tərəfindən dəstəklənir: Qeyd: Bu, yalnız 12v DC su qızdırıcısını idarə etmək üçün (remotexy.com istifadə edən UI) (əvvəlcə avtomobildə istifadə üçün - 12v daha yüngül elektrik prizində) yoxlamaq üçündür. bu layihə " ən yaxşı seçim deyil " məqsədi ilə, amma yenə
Çin Ənənəvi Rəsmi NeoPixel Divar Sənəti (Arduino tərəfindən dəstəklənir): 6 addım (şəkillərlə)

Çin Ənənəvi Rəsm NeoPixel Divar Sənəti (Arduino tərəfindən dəstəklənir): Divarınız üçün bir az cansıxıcı hiss edirsiniz? Bu gün Arduino tərəfindən dəstəklənən gözəl və asan bir divar sənəti edək! Sadəcə əlinizi çərçivənin önündə yelləyərək sehri gözləməlisiniz! Bu dərsdə öz əllərinizi necə yaratmağınızı müzakirə edəcəyik
Dayan! LED Oyunu (Arduino tərəfindən dəstəklənir): 6 addım

Dayan! LED Oyunu (Arduino tərəfindən dəstəklənir): Bu layihə, YouTube -dan alınan bu videodan və Makershed.com -dan Pendulum Challenge Kitindən (Qırılan link. Bunu sınayın.) Beş LED işıq və bir düymə açarından ibarət sadə bir oyun. LEDlər ardıcıl olaraq yanıb -sönür və oyun
Toqquşmanın qarşısının alınması- Pi tərəfindən dəstəklənir: 6 addım

Collision Prevention-Powered by Pi: Bu Təlimat sizə Collision Prevention System-in qurulması üçün addım-addım bələdçi verəcək. Başlamaq üçün aşağıdakı materialların siyahısını əldə etməlisiniz: Raspberry PI 3 (güc və Ethernet akkordları ilə), 1 GPIO Uzatma Kartı və Ribbon Cabl