Съдържание:

Проследяване на производителността - Осъществено от Raspberry Pi: 9 стъпки (със снимки)
Проследяване на производителността - Осъществено от Raspberry Pi: 9 стъпки (със снимки)

Видео: Проследяване на производителността - Осъществено от Raspberry Pi: 9 стъпки (със снимки)

Видео: Проследяване на производителността - Осъществено от Raspberry Pi: 9 стъпки (със снимки)
Видео: MEGA Chia GPU Farming and Plotting Guide for Linux - Gigahorse Start to Finish - 2023 2024, Юли
Anonim
Проследяване на производителността - Осъществено от Raspberry Pi
Проследяване на производителността - Осъществено от Raspberry Pi
Проследяване на производителността - Осъществено от Raspberry Pi
Проследяване на производителността - Осъществено от Raspberry Pi
Проследяване на производителността - Осъществено от Raspberry Pi
Проследяване на производителността - Осъществено от Raspberry Pi

Productivity Tracker е вълшебно огледало, но вместо да показва времето, времето и мотивиращ цитат, той показва 4 неща;

Процентът от времето, което сте прекарали за продуктивни материали на компютъра и телефона си за този ден. (RescueTime)

Вашият списък със задачи от Trello

Радарна графика, показваща колко време сте прекарали заедно с категориите програми-приложения, които сте използвали, в сравнение с вчерашното използване. (RescueTime)

Седмичен преглед. (RescueTime)

И ако процентът от времето, което сте прекарали в продуктивен материал, е над 50%, светодиодите ще покажат ярко зелен цвят. Ако е под 50%, той ще покаже червен цвят, което ви сигнализира да бъдете по -продуктивни! Можете също така сами да си поставите цел.

Контур

В първата стъпка ще обясня идеята зад проследяването на производителността. След това ще ви дам два различни инструмента и списък с части, за да можете да изградите пълния проект или основна версия (Не включва светодиодите), която не изисква умения за запояване. По -късно ще ви покажа как прототипирах моята версия на проекта, за да имате представа как да моделирате свой собствен прототип. Също така ще вляза в подробности в раздела за код, за да можете да персонализирате кода за вашите собствени нужди. Накрая ще ви дам ръководство за отстраняване на проблеми въз основа на проблемите, които срещнах по време на тази компилация. И разширете списъка с вашите въпроси.

Целта на тази инструкция не е просто да ви даде готварска книга. Ще ви покажа начина, по който изградих този проект, и ще ви дам отворени въпроси, за да можете да добавите свои собствени идеи и да вземете този проект още по-далеч. Силно ви препоръчвам да споделите вашата конструкция, когато приключи! Да започваме.

Стъпка 1: Идеята

Идеята
Идеята

Възнамерявах да напиша тази инструкция от месеци. Но един мой стар приятел, който се казва „Отлагане“, не ми позволи. Отлагането е актът на забавяне или отлагане на задача или набор от задачи и вместо да се изпълняват тези задачи, запълвайки времето с гледане на видеоклипове от тъмните дълбини на YouTube.

Един ден, докато четях статия за отлагането, попаднах на множество приложения/програми, които биха ми помогнали при моя проблем, Trello като приложение за управление на задачи и RescueTime като приложение за управление на времето. И двете работеха перфектно за моите нужди, поне за известно време. След известно време спрях да проверявам приложенията напълно и игнорирах известията. Тогава излязох с този проект. Бих показал данните от приложенията на огледало, окачено на стената ми. По този начин нямаше бягство от отговорностите ми.

Първият проект, който нарисувах за моя проект, беше сравнително прост. Бих използвал RescueTime API, за да покажа моя процент на продуктивна/разсейваща работа. И използвайте API на Trello, за да покажете моя списък със задачи за деня. Но след известно време добавих още функции, които ще получа подробно в следващите стъпки.

Стъпка 2: Инструменти и части

Забележка: Това е списък с инструменти, които използвах по време на моята компилация, те не трябва да са еднакви за вашата компилация!

За базата:

4 метра дръв за игра 7x15 см - 6 $ - Зависи от размера на екрана ви

30x40cm едностранно огледало - зависи от размера на екрана

Монитор Samsung 25x35 см - 15 $ - Намерен на бълха пазар. всеки монитор би го направил

Raspberry Pi 3 Модел B- 35 $ - Raspberry pi 2 също е добре, но ще ви е необходим wifi модул

HDMI кабел - 2 $

За светодиодната светкавица:

200 см smd5050 RGB LED лента - 4 $ - Трябва да бъде smd5050 повече за това по -късно …

  • Три N -канала MOSFET (например IRLZ34N) - 2 $
  • 12V -2A захранващ адаптер - 3.15 $
  • Прототипиране на печатни платки - 1 $

Инструменти:

  • Трион за дърво
  • Лепило за дърво
  • Поялник (за LED осветление)

Стъпка 3: Кодът

Кодът
Кодът

Тази стъпка ще бъде от 3 части, нямате нужда от всички части, изброени в предишната стъпка. Raspberry Pi и мониторът, който ще използвате за този проект, трябва да са достатъчни за етапа на прототипиране.

Настройване на вашия Raspberry Pi

Ако все още не сте настроили Raspberry Pi, направете го тук. За тази компилация ще трябва да инсталирате Apache за уеб сървъра и PHP-LED-контролера.

За да инсталирате Apache, следвайте това официално ръководство.

За да инсталирате PHP-LED-контролера, следвайте това ръководство от Кристиан Никанен

Сега изтеглете файла index.php от хранилището на проекта във вашия Raspberry Pi и го поставете на този път:

/var/www/html/

Ако не сте запознати с преместването на файлове наоколо в Linux Terminal, можете да погледнете това ръководство, за да започнете.

Персонализирайте кода

Забележка: Тази част изисква малко познания по HTML/CSS, ако използвате друг монитор.

Персонализирането ще се извърши във файла index.php, който е огнището на тази компилация. Сега продължете и свържете монитора си с Raspberry Pi, ако все още не сте го направили.

Сега, ако се опитате да отворите файла index.php, той няма да работи, защото първо трябва да попълните API ключовете в кода, за това отидете на уебсайта RescueTime и отворете акаунт. След това отидете в секцията за програмисти и създайте API ключ, като натиснете Активиране на този ключ. Запишете своя API ключ някъде.

Направете същото за вашия ключ за API на Trello, Отворете акаунт и отидете на портала за програмисти, за да генерирате ключ за API.

След това отворете файла index.php, който сте поставили в/var/www/html/в любимия си текстов редактор, и заменете [API_KEY] със свой собствен API ключ, който сте получили съответно от RescueTime и Trello. [List_number] е номерът на списъка, който използвате за вашия списък със задачи Trello. За да получите този номер, първо създайте нов списък в Trello и го наречете „Задачи“, това ще бъде списъкът, който ще използвате за вашия списък със задачи и ще се появи на огледалото.

След това вземете URL адреса в адресната лента, който изглежда така:

trello.com/b/3hS6yyLo/boardboardname

и добавете.json към него така:

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

и натиснете enter, след това ще видите кодова бъркотия на екрана. Опитайте се да намерите името на списъка си „To-Do“в тази бъркотия. То трябва да изглежда така: {"name": "To Do", "id": "5981c123cd1b23f13907cd18"}, Този идентификатор е вашият идентификатор на списъка. този номер на [списък_номер] във файла index.php.

Сега отворете браузъра си и въведете localhost в адресната лента и натиснете enter. Трябва да видите данните си, показани на графиките.

Забележка: Разположенията на графиките могат да бъдат различни поради разделителната способност на монитора, който използвате. Можете да редактирате ширината, височината и местоположението на елементите в CSS частта на кода.

Сега остава само да проектирате кутия около монитора и да свържете светодиодите.

Забележка: Ако не се интересувате подробно от API, можете да преминете към следващата стъпка. В частта на API ще разбера подробно как работи цялата програма и получава данни от API.

API (подробно)

Огнището на този проект са Двата API;

  • API на Trello
  • RescueTime API

Въпреки че документацията разполага с подробна информация, ще обясня кои данни от API използва този проект.

В частта за управление на времето извикването на RescueTime API, което получава информация за часа за текущия ден, е, "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"

където, date ('Y-m-d') е текущата дата

перспектива = ранг е видът на сортиране на данни в този случай "ранг", който означава най -много прекарано време

Това обаждане ще даде файл във формат JSON, който изглежда така: (погледнете data.json в края на тази стъпка)

Данните, които използваме от този файл, са „Времето, прекарано (секунди)“и „Производителността“, които имат стойности между -2 и 2, -2 са разсейващи и 2 са продуктивни. С тези данни можем да генерираме стойност над 100 за оценката на производителността.

Друго извикване на API към RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Което ви дава седмично обобщение на вашите данни, което изглежда така: (погледнете summary.json в края на тази стъпка.) Използвах тези данни, за да генерирам седмичната обобщена графика, която ви дава преглед на седмицата.

Обаждането на API на Trello, „https://api.trello.com/1/lists/[list_number]/cards?fields=name&key=[API_KEY]&token=[Token]“

Това ще ви даде картите в списъка ви с Trello по следния начин:

[{"id": "5a4160103bfcd14994852f59", "name": "ceylan cinemagraph"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "Научете GitHuB"}, {"id": "5981c19577c732f8ad ":" Публикуване с инструкции "}, {" id ":" 5a341dba7f17d235d7c5bbd1 "," name ":" ПРОГРАМА ЗА ПРОСТРАНСТВО "}]

отново можете да изтеглите текста на тези карти и да го поставите някъде другаде.

data.json

Форматирани JSON данни
{
"notes": "data е масив от масиви (редове), имена на колони за редове в row_headers",
"row_headers": [
"Ранг",
"Време, прекарано (секунди)",
"Брой хора",
"Дейност",
"Категория",
"Производителност"
],
"редове": [
[
1,
1536,
1,
"en.0wikipedia.org",
„Без категория“,
0
],
[
2,
1505,
1,
„youtube.com“,
"Видео",
-2
],
[
3,
1178,
1,
„OpenOffice“,
"Писане",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Общи указания и обучение",
2
],
[
5,
602,
1,
„google.com.tr“,
"Търсене",
2
],
[
6,
439,
1,
"reddit.com",
"Общи новини и мнение",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Писане",
2
],
[
8,
361,
1,
"yemeksepeti.com",
„Общо пазаруване“,
-2
],
[
9,
356,
1,
„Gmail“,
"Електронна поща",
0
],
[
10,
328,
1,
"Google Chrome",
„Браузъри“,
0
],
[
11,
207,
1,
"stars.bilkent.edu.tr",
"Общи указания и обучение",
2
],
[
12,
179,
1,
"whatsapp",
"Мигновени съобщения",
-1
],

вижте rawdata.json, хоствано с ❤ от GitHub

summary.json

[
{
"id": 1515657600,
"date": "2018-01-11",
"импулс на производителност": 54,
"много_продуктивен_процент": 34.2,
"продуктивен_процент": 10.6,
"неутрален_процент": 25.6,
"разсейващ_процент": 0.0,
"много_разсейващ_процент": 29.6,
"all_productive_procentage": 44.8,
"all_distracting_percentage": 29.6,
"некатегоризиран_процент": 16.1,
"бизнес_процент": 6.0,
"процент на комуникация и планиране": 4.3,
"процент на социални мрежи": 0.0,
"процент на дизайн и състав": 0.0,
"процент на забавление": 15.2,
"news_percentage": 3.3,
"процент на софтуерна разработка": 5.4,
"референтен_и_учебен_процент": 22.8,
"пазарен_процент": 12.9,
"комунални услуги_процент": 14.1,
"общо_часове": 2,51,
"много_продуктивни_часове": 0,86,
"productive_hours": 0.27,
"неутрални_часове": 0,64,
"distracting_hours": 0.0,
"много_разсейващи_часове": 0,74,
"all_productive_hours": 1.12,
"all_distracting_hours": 0.74,
"некатегоризирани_часове": 0.4,
"бизнес_часове": 0,15,
"communication_and_scheduling_hours": 0,11,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0.0,
"развлекателни часове": 0,38,
"news_hours": 0.08,
"software_development_hours": 0.13,
"reference_and_learning_hours": 0.57,
"пазарни часове": 0,32,
"комунални услуги_час": 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": "няма време",
"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": "няма време",
"design_and_composition_duration_formatted": "няма време",
"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,
"date": "2018-01-10",
"импулс на производителност": 33,
"много_продуктивен_процент": 21.9,
"продуктивен_процент": 2.3,
"неутрален_процент": 14.4,
"разсейващ_процент": 11.0,
"много_разсейващ_процент": 50.3,
"all_productive_percentage": 24.2,
"all_distracting_percentage": 61.4,
"некатегоризиран_процент": 0,3,
"бизнес_процент": 0.0,
"процент на комуникация и планиране": 13,5,
"процент на социални мрежи": 0.0,
"процент на дизайн и състав": 6.3,
"забавление_процент": 44,7,
"news_percentage": 4.2,
"software_development_percentage": 0.0,
"референтен_и_учебен_процент": 15,5,
"пазарен_процент": 0.0,
"комунални услуги_процент": 15.4,
"общо_часове": 2.24,
"много_продуктивни_часове": 0.49,
"продуктивни_часове": 0,05,
"неутрални_часове": 0,32,
"distracting_hours": 0.25,
"много_разсейващи_часове": 1.13,
"all_productive_hours": 0.54,
"all_distracting_hours": 1.37,
"некатегоризирани_часове": 0.01,
"business_hours": 0.0,
"Communication_and_scheduling_hours": 0.3,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0.14,
"развлекателни часове": 1.0,
"news_hours": 0.09,
"software_development_hours": 0.0,
"reference_and_learning_hours": 0.35,
"пазарни часове": 0.0,
"комунални услуги_часове": 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",
"communication_and_scheduling_duration_formatted": "18m 5s",
"social_networking_duration_formatted": "няма време",
"design_and_composition_duration_formatted": "8m 30s",
"entertainment_duration_formatted": "59m 54s",
"news_duration_formatted": "5m 39s",
"software_development_duration_formatted": "няма време",
"reference_and_learning_duration_formatted": "20m 51s",
"shopping_duration_formatted": "няма време",
"utilities_duration_formatted": "20m 39s"
},
{
"id": 1515484800,
"date": "2018-01-09",
"импулс на производителност": 68,
"много_продуктивен_процент": 60.4,
"продуктивен_процент": 0,5,
"неутрален_процент": 11.0,
"разсейващ_процент": 7.1,
"много_разсейващ_процент": 21.0,
"all_productive_percentage": 60.9,
"all_distracting_percentage": 28.1,
"некатегоризиран_процент": 9.1,
"бизнес_процент": 21.9,
"процент на комуникация и планиране": 7.2,
"процент на социални мрежи": 5.1,
"процент на дизайн и състав": 1.2,
"забавление_процент": 1.6,
"news_percentage": 12.5,
"процент на софтуерна разработка": 9.1,
"референтен_и_учебен_процент": 28.2,
"пазарен_процент": 2.9,
"комунални услуги_процент": 1.2,
"общо_часове": 2.78,
„много_продуктивни_часове“: 1.68,
"продуктивни_часове": 0,01,
"неутрални_часове": 0,31,
"distracting_hours": 0.2,
"много_разсейващи_часове": 0.58,
"all_productive_hours": 1.69,
"all_distracting_hours": 0.78,
"некатегоризирани_часове": 0.25,
"бизнес_часове": 0,61,
"Communication_and_scheduling_hours": 0.2,
"social_networking_hours": 0.14,
"design_and_composition_hours": 0.03,
"часа на забавление": 0,04,
"news_hours": 0.35,
"software_development_hours": 0.25,
"reference_and_learning_hours": 0.78,
"пазарни часове": 0,08,
"utilities_hours": 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",
"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"
}
]

вижте rawsummary.json, хоствано с ❤ от GitHub

Стъпка 4: Прототипиране

Голямата награда в конкурса Raspberry Pi 2017

Препоръчано: