Mündəricat:

Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir: 9 addım (şəkillərlə)
Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir: 9 addım (şəkillərlə)

Video: Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir: 9 addım (şəkillərlə)

Video: Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir: 9 addım (şəkillərlə)
Video: Modkam - Zigbee станция для капельного полива растений 2024, Iyul
Anonim
Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir
Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir
Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir
Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir
Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir
Məhsuldarlıq İzləyicisi - Raspberry Pi tərəfindən dəstəklənir

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

Fikir
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

Kod
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 \u0026 Öyrənmə",
2
],
[
5,
602,
1,
"google.com.tr",
"Axtar",
2
],
[
6,
439,
1,
"reddit.com",
"Ümumi Xəbərlər \u0026 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 \u0026 Ö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ə: