Мазмуну:

Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелген: 9 кадам (сүрөттөр менен)
Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелген: 9 кадам (сүрөттөр менен)

Video: Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелген: 9 кадам (сүрөттөр менен)

Video: Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелген: 9 кадам (сүрөттөр менен)
Video: Өндүрүш Өндүрүмдүүлүк 2024, Июль
Anonim
Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелип чыккан
Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелип чыккан
Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелип чыккан
Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелип чыккан
Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелип чыккан
Өндүрүмдүүлүк трекери - Raspberry Pi тарабынан иштелип чыккан

Өндүрүмдүүлүктү көзөмөлдөөчү - бул сыйкырдуу күзгү, бирок убакытты, аба ырайын жана мотивациялуу цитатаны көрсөтүүнүн ордуна 4 нерсени көрсөтөт;

Ошол күнү компьютериңизде жана телефонуңузда өндүрүмдүү материалга канча убакыт короттуңуз. (RescueTime)

Треллодон кыла турган иштериңиздин тизмеси

Кечээки колдонууга салыштырмалуу сиз колдонгон программалар-колдонмолордун категориялары менен канча убакыт өткөргөнүңүздү көрсөткөн радардык график. (RescueTime)

Жумалык сереп. (RescueTime)

Ал эми өндүрүмдүү материалга сарпталган убактыңыздын пайызы 50% дан ашса, Светодиоддор ачык жашыл түстү көрсөтөт. Эгерде ал 50% дан төмөн болсо, анда ал кызыл түстү көрсөтөт, бул сизди жемиштүү болууну билдирет! Сиз ошондой эле өзүңүзгө максат коюңуз.

Контур

Биринчи кадамда мен өндүрүмдүүлүк-трекердин артындагы идеяны түшүндүрөм. Андан кийин, мен сизге эки башка шайманды жана тетиктердин тизмесин берем, андыктан сиз толук проектти же ширетүү чеберчилигин талап кылбаган негизги версиясын (Светодиоддорду камтыбайт) түзө аласыз. Кийинчерээк мен сизге долбоордун версиясын кантип прототиптегенимди көрсөтөм, андыктан сизде өзүңүздүн прототипти кантип моделдөө керек деген ой бар. Ошондой эле, мен коддун бөлүмүндө майда -чүйдөсүнө чейин айтып берем, ошондо сиз кодду өз керектөөлөрүңүзгө ылайыкташтыра аласыз. Акырында, мен сизге бул курулуш учурунда туш болгон көйгөйлөргө негизделген Кыйынчылыктарды жоюу боюнча көрсөтмө берем. Жана суроолоруңуз менен тизмени кеңейтиңиз.

Бул нускаманын максаты сизге ашпозчу китепти берүү эмес. Мен сизге бул долбоорду кантип курганымды көрсөтөм жана сизге ачык суроолорду берем, ошондо сиз өзүңүздүн оюңузду кошуп, бул долбоорду андан ары алдыга жылдыра аласыз. Курулуш бүткөндөн кийин аны бөлүшүүңүздү сунуштайм! Кел, баштайлы.

1 -кадам: Идея

Ой
Ой

Мен бул Нускаманы жазууга бир нече айдан бери ниеттенип келем. Бирок "Кешиктирүү" деген ат менен жүргөн эски досум уруксат берген жок. Кийинкиге калтыруу - бул кандайдыр бир тапшырманы же тапшырмаларды кечиктирүү же кийинкиге калтыруу, жана бул тапшырмаларды аткаруунун ордуна, YouTube'дун караңгылыктарындагы видеолорду көрүү менен толтуруу.

Бир күнү создуктуруу боюнча макаланы окуп жатып, көйгөйүмдү чечүүгө жардам бере турган бир нече тиркемелерди/программаларды көрдүм, Trello тапшырмаларды башкаруу колдонмосу жана RescueTime убакытты башкаруу колдонмосу. Экөө тең менин муктаждыктарым үчүн, эң аз дегенде, эң сонун иштеген. Бир аздан кийин, мен таптакыр колдонмолорду текшерүүнү токтотуп, эскертмелерди этибарга албай койдум. Мына ошондо мен бул долбоорду ойлоп тапкам. Мен дубалга илинген күзгүдө колдонмолордун маалыматын көрсөтмөкмүн. Бул жол менен менин жоопкерчилигимден эч кандай качуу болгон жок.

Менин долбоорум үчүн тарткан биринчи долбоорум абдан жөнөкөй болчу. Мен RescueTime API колдонуп, Продуктивдүү/Алаксытуучу жумушумдун пайызын көрсөтөм. Жана Trello API колдонуп, менин күнүмдүк иштеримдин тизмесин көрсөтөм. Бирок бир аздан кийин, мен кийинки кадамдарда деталдуу ала турган дагы көптөгөн функцияларды коштум.

2 -кадам: Куралдар жана тетиктер

Эскертүү: Бул мен куруу учурунда колдонгон инструменттердин тизмеси, алар сиздин түзүлүшүңүз үчүн бирдей болушу шарт эмес!

База үчүн:

7x15 см ойноочу 4 метр - 6 $ - Бул экраныңыздын өлчөмүнө жараша болот

30x40cm бир тараптуу күзгү - экраныңыздын өлчөмүнө жараша болот

25x35см Samsung монитор - 15 $ - Барахолкадан табылган. каалаган монитор жасайт

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 да жакшы, бирок сизге wifi модулу керек болот

HDMI кабели - 2 доллар

Led Lightning үчүн:

200см smd5050 RGB Led тилкеси - 4 $ - Кийинчерээк бул дагы smd5050 болушу керек …

  • Үч N -канал MOSFETs (мис. IRLZ34N) - 2 $
  • 12V -2A кубат адаптери - 3.15 $
  • PCB прототиптештирүү - 1 $

Куралдар:

  • Вуд араа
  • Жыгач клей
  • Лампочка (LED жарык үчүн)

3 -кадам: Кодекс

Кодекс
Кодекс

Бул кадам 3 бөлүктөн турат, сизге мурунку кадамда көрсөтүлгөн бардык бөлүктөрдүн кереги жок. Raspberry Pi жана бул проект үчүн колдоно турган монитор прототипдөө баскычына жетиштүү болушу керек.

Raspberry Pi орнотуу

Эгерде сиз Raspberry Pi түзө элек болсоңуз, анда бул жерде жасаңыз. Бул куруу үчүн сизге веб-сервер үчүн Apache жана PHP-LED контроллери орнотулушу керек.

Apache орнотуу үчүн бул расмий көрсөтмөнү аткарыңыз.

PHP-LED контроллерин орнотуу үчүн Кристиан Никканендин бул көрсөтмөсүн аткарыңыз

Эми index.php файлын долбоордун репозиторийинен Raspberry Piге жүктөп алып, ушул жолго коюңуз:

/var/www/html/

Эгерде сиз Linux Терминалында файлдарды жылдыруу менен тааныш эмес болсоңуз, анда бул колдонмону карап баштаңыз.

Кодду ыңгайлаштырыңыз

Эскертүү: Бул бөлүк бир аз HTML/CSS билимин талап кылат, эгер сиз башка мониторду колдонуп жатсаңыз.

Ыңгайлаштыруу бул курулуштун очогу болгон index.php файлында жүргүзүлөт. Эми улантыңыз жана мониторуңузду Raspberry Pi менен туташтыра элек болсоңуз.

Эми сиз index.php файлын ачууга аракет кылсаңыз, ал иштебейт, анткени алгач API ачкычтарын кодго толтурушуңуз керек, ал үчүн RescueTime вебсайтына кирип, эсеп ачыңыз. Андан кийин, иштеп чыгуучу бөлүмүнө өтүп, бул ачкычты иштетүү баскычын басуу менен API ачкычын түзүңүз. API ачкычыңызды бир жерге жазыңыз.

Trello API ачкычыңыз үчүн да ушундай кылыңыз, эсеп ачыңыз жана API ачкычын түзүү үчүн иштеп чыгуучу порталына өтүңүз.

Андан кийин,/var/www/html/салып койгон index.php файлын сүйүктүү текст редакторунда ачып, [API_KEY] дегенди RescueTime жана Trello'дон алган API ачкычыңызга алмаштырыңыз. [List_number]-бул Trello кылчу тизмеңиз үчүн колдонгон тизме номери. Бул номерди алуу үчүн адегенде Trelloдо жаңы тизме түзүңүз жана аны "Эмне кылуу" деп атаңыз, бул сиздин тизмеңиз үчүн колдонула турган тизме болот жана ал күзгүдөн көрүнөт.

Андан кийин, дарек тилкесиндеги URLди алыңыз:

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

жана.json ага мындайча кошуңуз:

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

жана Enter баскычын басыңыз, экранда коддун башаламандыгын көрөсүз. Тизмедеги '' Жасала турган иштердин "атын ушул башаламандыктан табууга аракет кылыңыз. Ал төмөнкүдөй көрүнүшү керек: {" name ":" To Do "," id ":" 5981c123cd1b23f13907cd18 "}, Бул ID сиздин тизмеңиздин Id. Put бул сан index.php файлындагы [list_number].

Эми браузериңизди ачыңыз жана localhostту дарек тилкесине териңиз жана enter басыңыз. Сиз диаграммада көрсөтүлгөн маалыматыңызды көрүшүңүз керек.

Эскертүү: Монитордун чечилишинен улам графиктердин жайгашуусу башкача болушу мүмкүн. Сиз коддун CSS бөлүгүндөгү элементтердин туурасын, бийиктигин жана жайгашуусун түзөтө аласыз.

Эми монитордун тегерегиндеги кутучаны иштеп чыгуу жана светодиоддорду туташтыруу гана калды.

Эскертүү: Эгерде сизди API кызыктырбаса, анда кийинки кадамга өтсөңүз болот. API бөлүгүндө мен бүтүндөй программанын кантип иштээрин жана API'лерден маалыматтарды алууну деталдуу түрдө билип алам.

API (майда -чүйдөсүнө чейин)

Бул долбоордун очогу - бул эки API;

  • Trello API
  • 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 '). "& формат = json"

кайда, дата ('Y-m-d')-учурдагы дата

перспектива = ранг - бул маалыматты сорттоо түрү, бул учурда "ранг" көп убакытты камтыйт

Бул чалуу JSON форматындагы файлды берет: (бул кадамдын аягында data.json караңыз)

Бул файлдан биз колдонгон маалыматтар -"Өткөрүлгөн убакыт (секунддар)" жана "Өндүрүмдүүлүк", анын мааниси -2ден 2ге чейин, -2 алаксытуучу жана 2 өндүрүмдүү. Бул маалыматтар менен биз өндүрүмдүүлүк упайы үчүн 100дөн ашык маанини түзө алабыз.

RescueTime үчүн дагы бир API чалуусу, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Бул сиздин маалыматыңыздын жумалык корутундусун берет, бул мындай:

Trello API чалуу, "https://api.trello.com/1/lists/ [list_number]/cards?fields=name&key=[API_KEY]&token=[Токен]"

Бул сизге Trello тизмеңиздеги карталарды берет:

[{"id": "5a4160103bfcd14994852f59", "name": "ceylan cinemagraph"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "Learn GitHuB"}, {"id": "5987c32877ad" ":" Instructible Publish "}, {" id ":" 5a341dba7f17d235d7c5bbd1 "," name ":" КОСМОС ПРОГРАММАСЫ "}]

кайра ошол карталардагы текстти тартып, башка жерге койсоңуз болот.

data.json

JSON маалыматтары форматталган
{
"note": "маалыматтар - бул массивдердин (катарлардын) массиви, row_headersдеги саптардын мамыча аттары",
"row_headers": [
"Рейтинг",
"Өткөрүлгөн убакыт (секунд)",
"Адамдардын саны",
"Активдүүлүк",
"Категория",
"Өндүрүмдүүлүк"
],
"катарлар": [
[
1,
1536,
1,
"en.0wikipedia.org",
"Категориясыз",
0
],
[
2,
1505,
1,
"youtube.com",
"Видео",
-2
],
[
3,
1178,
1,
"Ачык кеңсе",
"Жазуу",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Жалпы маалымдама \u0026 үйрөнүү",
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",
"Жалпы маалымдама \u0026 үйрөнүү",
2
],
[
12,
179,
1,
"whatsapp",
"Ыкчам кабар",
-1
],

GitHub тарабынан ❤ менен өткөрүлгөн rawdata.json көрүү

кыскача.json

[
{
"id": 1515657600,
"дата": "2018-01-11",
"өндүрүмдүүлүк_пульс": 54,
"very_productive_percentage": 34.2,
"өндүрүмдүү_пайыз": 10,6,
"нейтралдуу_процент": 25.6,
"distracting_percentage": 0.0,
"very_distracting_percentage": 29.6,
"all_productive_percentage": 44.8,
"all_distracting_percentage": 29.6,
"категориясыз_пайыз": 16.1,
"business_percentage": 6.0,
"байланыштын_жана_жазуунун_проценти": 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,
"reference_and_learning_percentage": 22.8,
"shopping_percentage": 12.9,
"utility_percentage": 14.1,
"total_hours": 2.51,
"very_productive_hours": 0.86,
"жемиштүү_сааттар": 0.27,
"neytral_hours": 0.64,
"distracting_hours": 0.0,
"very_distracting_hours": 0.74,
"all_productive_hours": 1.12,
"all_distracting_hours": 0.74,
"uncategorized_hours": 0.4,
"business_hours": 0.15,
"баарлашуу_жана_чартуу_сааттары": 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,
"utility_hours": 0.35,
"total_duration_formatted": "2ч 30м",
"very_productive_duration_formatted": "51м 26с",
"жемиштүү_турма_форматталган": "15м 56с",
"zero_duration_formatted": "38м 34с",
"distracting_duration_formatted": "убакыт жок",
"very_distracting_duration_formatted": "44м 30с",
"all_productive_duration_formatted": "1с 7м",
"all_distracting_duration_formatted": "44м 30с",
"uncategorized_duration_formatted": "24м 11с",
"business_duration_formatted": "9м 6с",
"Communication_and_scheduling_ Duration_formatted": "6м 26с",
"social_networking_duration_formatted": "убакыт жок",
"design_and_composition_duration_formatted": "убакыт жок",
"entertainment_duration_formatted": "22м 49с",
"news_duration_formatted": "4м 55с",
"software_development_duration_formatted": "8м 3с",
"reference_and_learning_duration_formatted": "34м 17с",
"shopping_duration_formatted": "19м 22с",
"utilities_duration_formatted": "21м 17с"
},
{
"id": 1515571200,
"дата": "2018-01-10",
"өндүрүмдүүлүк_пульс": 33,
"very_productive_percentage": 21.9,
"өндүрүмдүү_пайыз": 2.3,
"нейтралдуу_пайыз": 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,
"business_percentage": 0.0,
"байланыштын_жана_жазуунун_проценти": 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,
"reference_and_learning_percentage": 15.5,
"shopping_percentage": 0.0,
"utility_percentage": 15.4,
"total_hours": 2.24,
"very_productive_hours": 0.49,
"жемиштүү_сааттар": 0.05,
"neytral_hours": 0.32,
"distracting_hours": 0.25,
"very_distracting_hours": 1.13,
"all_productive_hours": 0.54,
"all_distracting_hours": 1.37,
"uncategorized_hours": 0.01,
"business_hours": 0.0,
"баарлашуу_жана_чартуу_сааттары": 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,
"utility_hours": 0.34,
"total_duration_formatted": "2h 14m",
"very_productive_duration_formatted": "29м 22с",
"жемиштүү_турум_форматталган": "3м 8с",
"zero_duration_formatted": "19м 18с",
"distracting_duration_formatted": "14м 48с",
"very_distracting_duration_formatted": "1с 7м",
"all_productive_duration_formatted": "32м 30с",
"all_distracting_duration_formatted": "1с 22м",
"uncategorized_duration_formatted": "27лер",
"business_duration_formatted": "1s",
"Communication_and_scheduling_ Duration_formatted": "18м 5с",
"social_networking_duration_formatted": "убакыт жок",
"design_and_composition_duration_formatted": "8м 30с",
"entertainment_duration_formatted": "59м 54с",
"news_duration_formatted": "5м 39с",
"software_development_duration_formatted": "убакыт жок",
"reference_and_learning_duration_formatted": "20м 51с",
"shopping_duration_formatted": "убакыт жок",
"utilities_duration_formatted": "20м 39с"
},
{
"id": 1515484800,
"дата": "2018-01-09",
"өндүрүмдүүлүк_пульс": 68,
"very_productive_percentage": 60.4,
"өндүрүмдүү_пайыз": 0,5,
"нейтралдуу_пайыз": 11.0,
"distracting_percentage": 7.1,
"very_distracting_percentage": 21.0,
"all_productive_percentage": 60.9,
"all_distracting_percentage": 28.1,
"категориясыз_процент": 9.1,
"business_percentage": 21.9,
"байланыштын_жана_жазуунун_проценти": 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,
"reference_and_learning_percentage": 28.2,
"shopping_percentage": 2.9,
"utility_percentage": 1.2,
"total_hours": 2.78,
"very_productive_hours": 1.68,
"жемиштүү_сааттар": 0.01,
"neytral_hours": 0.31,
"distracting_hours": 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,
"баарлашуу_жана_чартуу_сааттары": 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,
"utility_hours": 0.03,
"total_duration_formatted": "2ч 46м",
"very_productive_duration_formatted": "1с 40м",
"жемиштүү_турма_форматталган": "47 -жылдар",
"zero_duration_formatted": "18м 23с",
"distracting_duration_formatted": "11м 49с",
"very_distracting_duration_formatted": "34м 57с",
"all_productive_duration_formatted": "1с 41м",
"all_distracting_duration_formatted": "46м 46с",
"uncategorized_duration_formatted": "15м 7с",
"business_duration_formatted": "36м 26с",
"Communication_and_scheduling_ Duration_formatted": "11м 59с",
"social_networking_duration_formatted": "8м 28с",
"design_and_composition_duration_formatted": "2м 4с",
"entertainment_duration_formatted": "2м 39с",
"news_duration_formatted": "20м 49с",
"software_development_duration_formatted": "15м 5с",
"reference_and_learning_duration_formatted": "46м 59с",
"shopping_duration_formatted": "4м 51с",
"utilities_duration_formatted": "2м 3с"
}
]

GitHub тарабынан ❤ уюштурулган rawsummary.json көрүү

4 -кадам: Прототиптөө

Raspberry Pi сынагынын 2017 -жылдагы башкы сыйлыгы

Сунушталууда: