Mundarija:

Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi: 9 qadam (rasmlar bilan)
Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi: 9 qadam (rasmlar bilan)

Video: Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi: 9 qadam (rasmlar bilan)

Video: Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi: 9 qadam (rasmlar bilan)
Video: Hosildorlikni qanday oshirishga oʻylanyabsizmi ? Endi bu juda oson "Томато Фикс" yordam beradi. 2024, Iyul
Anonim
Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi
Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi
Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi
Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi
Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi
Hosildorlikni kuzatuvchi - Raspberry Pi tomonidan quvvatlanadi

Hosildorlikni kuzatuvchi - bu sehrli ko'zgu, lekin vaqt, ob -havo va rag'batlantiruvchi taklifni aks ettirish o'rniga 4 narsani ko'rsatadi;

O'sha kun uchun kompyuter va telefoningizda samarali materiallarga sarflagan vaqtingiz foizi. (RescueTime)

Trello tomonidan bajariladigan ishlar ro'yxati

Kechagi kunlarga nisbatan ishlatilgan dastur-ilovalar toifalari bilan qancha vaqt sarflaganingizni ko'rsatadigan radar grafigi. (RescueTime)

Haftalik sharh. (RescueTime)

Va agar siz ishlab chiqarish materialiga sarflagan vaqtingiz 50% dan oshsa, LEDlar yorqin yashil rangni ko'rsatadi. Agar u 50% dan past bo'lsa, u qizil rangni aks ettiradi, bu sizni yanada samaraliroq ishora qiladi! Siz ham o'z oldingizga maqsad qo'yishingiz mumkin.

Anahat

Birinchi qadamda men mahsuldorlikni kuzatuvchi g'oyasini tushuntiraman. Keyin men sizga ikkita turli xil asboblar va ehtiyot qismlar ro'yxatini beraman, shunda siz lehimlash mahoratini talab qilmaydigan to'liq loyihani yoki (LEDni o'z ichiga olmaydi) asosiy versiyasini tuzishingiz mumkin. Keyinchalik men sizga loyiha versiyasini qanday prototip qilganimni ko'rsataman, shuning uchun siz o'zingizning prototipingizni qanday modellashtirish haqida fikringiz bor. Bundan tashqari, men kod bo'limida batafsil ma'lumotga ega bo'laman, shunda siz kodni o'z ehtiyojlaringiz uchun sozlashingiz mumkin. Oxir-oqibat, men sizga qurilish paytida duch kelgan muammolarga asoslangan muammolarni hal qilish bo'yicha qo'llanma beraman. Va savollaringiz bilan ro'yxatni kengaytiring.

Bu ko'rsatmaning maqsadi sizga oshpazlik kitobini berish emas. Men sizga bu loyihani qanday qurganimni ko'rsataman va sizga ochiq savollar beraman, shunda siz o'z g'oyalaringizni qo'sha olasiz va bu loyihani yanada rivojlantirasiz. Qurilish tugagandan so'ng, siz bilan bo'lishishni qat'iy tavsiya qilaman! Qani boshladik.

1 -qadam: Fikr

Fikr
Fikr

Men bir necha oylardan buyon ushbu ko'rsatmalarni yozishni niyat qilganman. Ammo "Kechiktirish" nomi bilan yuradigan eski do'stim ruxsat bermadi. Kechiktirish - bu vazifani yoki vazifalar majmuasini kechiktirish yoki kechiktirish va bu ishni bajarish o'rniga, YouTube -ning qorong'u tubidan videolarni tomosha qilish bilan to'ldirish.

Bir kuni kechiktirish haqidagi maqolani o'qiyotganda men muammomda yordam beradigan bir nechta dasturlar/dasturlarni uchratdim, vazifalarni boshqarish uchun Trello va vaqtni boshqarish uchun RescueTime. Ikkalasi ham hech bo'lmaganda mening ehtiyojlarim uchun juda yaxshi ishladi. Biroz vaqt o'tgach, men ilovalarni tekshirishni butunlay to'xtatdim va bildirishnomalarga e'tibor bermadim. O'shanda men bu loyihani o'ylab topganman. Men ilova ma'lumotlarini devorga osilgan oynada ko'rsatardim. Shunday qilib, mening mas'uliyatimdan qochib qutulib bo'lmaydi.

Mening loyiham uchun chizgan birinchi qoralama juda oddiy edi. Men RescueTime API -dan ishlab chiqarish/tarqatish ish foizini ko'rsatish uchun foydalanardim. Va kun uchun bajariladigan ishlar ro'yxatini ko'rsatish uchun Trello API-dan foydalaning. Ammo bir muncha vaqt o'tgach, men keyingi bosqichlarda batafsilroq bilib oladigan qo'shimcha funktsiyalarni qo'shdim.

2 -qadam: Asboblar va ehtiyot qismlar

Eslatma: Bu men yaratganimda ishlatilgan asboblar ro'yxati, ular sizning konstruktsiyangiz uchun bir xil bo'lishi shart emas!

Baza uchun:

7x15 sm o'lchamdagi 4 metrli o'yinchoq - 6 $ - Bu sizning ekran o'lchamingizga bog'liq

30x40 sm o'lchamdagi bir tomonlama oyna - ekran o'lchamiga bog'liq

25x35 sm o'lchamdagi Samsung monitor - 15 dollar - bozorda topilgan. har qanday monitor bajaradi

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 ham yaxshi, lekin sizga wifi moduli kerak bo'ladi

HDMI kabeli - 2 dollar

Led Lightning uchun:

200 sm smd5050 RGB Led tasmasi - 4 $ - Keyinchalik smd5050 bo'lishi kerak …

  • Uchta N -kanalli MOSFET (masalan, IRLZ34N) - 2 $
  • 12V -2A quvvat adapteri - 3,15 dollar
  • PCB prototipini yaratish - 1 dollar

Asboblar:

  • Yog'och arra
  • Yog'och elim
  • Lehimlash temir (LED yoritish uchun)

3 -qadam: Kod

Kodeks
Kodeks

Bu qadam 3 qismdan iborat bo'ladi, sizga avvalgi bosqichda sanab o'tilgan barcha qismlar kerak emas. Raspberry Pi va siz ushbu loyihada ishlatadigan monitor prototiplash bosqichiga etarli bo'lishi kerak.

Raspberry Pi -ni sozlash

Agar siz Raspberry Pi -ni o'rnatmagan bo'lsangiz, davom eting va shu erda qiling. Ushbu tuzilish uchun siz veb-server uchun Apache va PHP-LED-tekshirgichini o'rnatishingiz kerak bo'ladi.

Apache -ni o'rnatish uchun ushbu rasmiy qo'llanmani bajaring.

PHP-LED-tekshirgichni o'rnatish uchun Kristian Nikkanenning ushbu qo'llanmasiga amal qiling

Endi index.php faylini loyiha omboridan Raspberry Pi -ga yuklab oling va uni shu yo'lga qo'ying:

/var/www/html/

Agar siz Linux terminalida fayllarni ko'chirishni bilmasangiz, boshlash uchun ushbu qo'llanmani ko'rib chiqishingiz mumkin.

Kodni sozlang

Eslatma: Agar siz boshqa monitordan foydalanayotgan bo'lsangiz, bu qism biroz HTML/CSS ma'lumotlarini talab qiladi.

Moslashtirish ushbu tuzilmaning o'chog'i bo'lgan index.php faylida amalga oshiriladi. Keling, monitorni Raspberry Pi -ga ulang.

Agar siz index.php faylini ochmoqchi bo'lsangiz, u ishlamaydi, chunki siz avval API kalitlarini kodga to'ldirishingiz kerak, buning uchun RescueTime veb -saytiga o'ting va hisob oching. Keyin, ishlab chiquvchi bo'limiga o'ting va ushbu kalitni faollashtirish tugmachasini bosib API kalitini yarating. API kalitingizni biror joyga yozing.

Trello API kalitingiz uchun ham xuddi shunday qiling, hisob oching va API kalitini yaratish uchun ishlab chiquvchi portaliga o'ting.

Keyin, siz tanlagan matn tahrirlovchisida/var/www/html/ga qo'ygan index.php faylini oching va [API_KEY] ni RescueTime va Trellodan o'z API kalitingiz bilan almashtiring. [List_number]-bu siz bajaradigan ishlar ro'yxati Trello uchun ishlatadigan ro'yxat raqami. Bu raqamni olish uchun avval Trello-da yangi ro'yxat tuzing va uni "Bajariladigan ishlar" deb nomlang, bu sizning ro'yxatingiz uchun kerak bo'lgan ro'yxat bo'ladi va u oynada ko'rinadi.

Keyin manzil satridagi URL manzilini oling:

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

va shunga o'xshash.json qo'shing:

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

va Enter tugmasini bosing, shunda siz ekranda kod tartibsizligini ko'rasiz. Bu tartibsizlikdan ro'yxat nomini '' Bajarish "ni topishga harakat qiling. U shunday bo'lishi kerak: {" name ":" To Do "," id ":" 5981c123cd1b23f13907cd18 "}, Bu Id sizning ro'yxatingiz identifikatori. Qo'yish. bu raqam index.php faylida [list_number] ga yoziladi.

Endi brauzerni oching va manzil satriga localhost kiriting va Enter tugmasini bosing. Siz o'zingizning ma'lumotlaringizni grafikda ko'rishingiz kerak.

Eslatma: Siz foydalanadigan monitorning o'lchamlari tufayli grafiklarning joylashuvi boshqacha bo'lishi mumkin. Siz kodning CSS qismidagi elementlarning kengligi, balandligi va joylashishini o'zgartirishingiz mumkin.

Endi faqat monitor atrofidagi qutini loyihalash va LEDlarni ulash kerak.

Eslatma: Agar siz API -ni batafsil qiziqtirmasangiz, keyingi bosqichga o'tishingiz mumkin. API qismida men butun dastur qanday ishlashini va API -dan ma'lumotlarni olishini batafsil bilib olaman.

API (batafsil)

Ushbu loyihaning o'chog'i - ikkita API;

  • Trello API
  • RescueTime API

Hujjatlarda batafsil ma'lumot mavjud bo'lsa -da, men ushbu loyihadan qaysi API -dan foydalanayotganini tushuntirmoqchiman.

Vaqtni boshqarish qismida, joriy kun uchun vaqt ma'lumotlarini oladigan RescueTime API qo'ng'irog'i:

"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"

qayerda, sana ('Y-m-d')-joriy sana

perspektiv = daraja - bu ma'lumotlarni saralash turi, bu holda "daraja" ko'p vaqt sarflanadi

Bu qo'ng'iroq JSON formatidagi faylni beradi: (bu qadam oxirida data.json ga qarang)

Biz bu fayldan foydalanadigan ma'lumotlar -"sarflangan vaqt (soniya)" va "mahsuldorlik", bu qiymatlar -2 dan 2 gacha, -2 chalg'ituvchi va 2 samarali. Ushbu ma'lumotlar yordamida biz mahsuldorlik ballari uchun 100 dan yuqori qiymatni yaratishimiz mumkin.

RescueTime -ga boshqa API chaqiruvi, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Bu sizga ma'lumotlarning har haftalik xulosasini beradi, bu quyidagicha ko'rinadi: (bu qadamning oxirida

Trello API qo'ng'irog'i, "https://api.trello.com/1/lists/ [list_number]/cards?fields=name&key=[API_KEY]&token=[Token]"

Bu sizga Trello ro'yxatidagi kartalarni beradi:

[{"id": "5a4160103bfcd14994852f59", "name": "ceylan kinoteatri"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "GitHuBni o'rganing"}, {"id": "5981c32877ad ":" Nashr etilishi mumkin "}, {" id ":" 5a341dba7f17d235d7c5bbd1 "," name ":" FAZO PROGRAMI "}]

yana siz kartalardagi matnni tortib, boshqa joyga qo'yishingiz mumkin.

data.json

JSON ma'lumotlari formatlangan
{
"eslatmalar": "ma'lumotlar qatorlar (satrlar) majmuasi, row_headers satrlari uchun ustun nomlari",
"row_headers": [
"Reyting",
"O'tkazilgan vaqt (soniyalar)",
"Odamlar soni",
"Faoliyat",
"Turkum",
"Hosildorlik"
],
"qatorlar": [
[
1,
1536,
1,
"en.0wikipedia.org",
"Kategoriyalarsiz",
0
],
[
2,
1505,
1,
"youtube.com",
"Video",
-2
],
[
3,
1178,
1,
"OpenOffice",
"Yozish",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Umumiy ma'lumotnoma \u0026 o'rganish",
2
],
[
5,
602,
1,
"google.com.tr",
"Qidirmoq",
2
],
[
6,
439,
1,
"reddit.com",
"Umumiy yangiliklar \u0026 fikri",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Yozish",
2
],
[
8,
361,
1,
"yemeksepeti.com",
"Umumiy xaridlar",
-2
],
[
9,
356,
1,
"Gmail",
"Elektron pochta",
0
],
[
10,
328,
1,
"Gugl xrom",
"Brauzerlar",
0
],
[
11,
207,
1,
"yulduzlar.bilkent.edu.tr",
"Umumiy ma'lumotnoma \u0026 o'rganish",
2
],
[
12,
179,
1,
"whatsapp",
"Tezkor xabar",
-1
],

GitHub tomonidan ❤ bilan uyushtirilgan rawdata.json faylini ko'rish

xulosa.json

[
{
"id": 1515657600,
"sana": "2018-01-11",
"hosildorlik_pulsi": 54,
"juda_mahsuldor_ foiz": 34.2,
"mahsuldor_ foiz": 10,6,
"neytral_ foiz": 25,6,
"chalg'ituvchi_ foiz": 0,0,
"juda_distaktiv_foiz": 29.6,
"all_productive_centcent": 44.8,
"all_distracting_centcent": 29.6,
"toifasiz_ foiz": 16.1,
"biznes_foiz": 6.0,
"aloqa_va rejalashtirish_foizi": 4.3,
"social_networking_centcent": 0.0,
"design_and_composition_centcent": 0.0,
"o'yin -kulgi_foizi": 15.2,
"yangiliklar_foizi": 3.3,
"dasturiy ta'minotni ishlab chiqish_foizi": 5.4,
"mos yozuvlar_ va o'qitish_foizi": 22.8,
"xarid_foiz": 12.9,
"kommunal_foiz": 14.1,
"jami_soatlar": 2.51,
"juda_productive_hours": 0.86,
"samarali_soatlar": 0,27,
"neytral_soatlar": 0,64,
"chalg'ituvchi_soatlar": 0,0,
"juda_distracting_hours": 0.74,
"all_productive_hours": 1.12,
"all_distracting_hours": 0.74,
"toifasiz_soatlar": 0,4,
"business_hours": 0.15,
"aloqa_va_tasvirlar_soati": 0.11,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0.0,
"o'yin -kulgi soatlari": 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": "2h 30m",
"very_productive_duration_formatted": "51m 26s",
"samarali_davlat_formatlangan": "15m 56s",
"neytral_davlat_formatlangan": "38m 34s",
"distracting_duration_formatted": "vaqt yo'q",
"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",
"aloqa_va_tasvirlar_dosati_formatlangan": "6m 26s",
"social_networking_duration_formatted": "vaqt yo'q",
"design_and_composition_duration_formatted": "vaqt yo'q",
"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",
"utility_duration_formatted": "21m 17s"
},
{
"id": 1515571200,
"sana": "2018-01-10",
"mahsuldorlik_pulsi": 33,
"juda_mahsuldor_ foiz": 21.9,
"samarali_ foiz": 2.3,
"neytral_ foiz": 14.4,
"chalg'ituvchi_ foiz": 11.0,
"juda_distaktiv_foiz": 50.3,
"all_productive_centcent": 24.2,
"all_distacting_centcent": 61.4,
"toifasiz_ foiz": 0,3,
"business_centcent": 0.0,
"aloqa_va rejalashtirish_foizi": 13.5,
"social_networking_centcent": 0.0,
"design_and_composition_centcent": 6.3,
"o'yin -kulgi foizi": 44.7,
"yangiliklar_foizi": 4.2,
"dasturiy ta'minotni ishlab chiqish_foizi": 0,0,
"mos yozuvlar_ va o'qitish_foizi": 15.5,
"shopping_centcent": 0.0,
"kommunal_foiz": 15.4,
"jami_soatlar": 2.24,
"juda_produktiv_soatlar": 0,49,
"samarali_soatlar": 0,05,
"neytral_soatlar": 0.32,
"chalg'ituvchi_soatlar": 0,25,
"juda_distracting_hours": 1.13,
"all_productive_hours": 0.54,
"all_distracting_hours": 1.37,
"toifasiz_soatlar": 0.01,
"business_hours": 0.0,
"aloqa_va_tasvirlar_soati": 0,3,
"social_networking_hours": 0.0,
"design_and_composition_hours": 0.14,
"o'yin -kulgi soatlari": 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": "29m 22s",
"samarali_davlat_formatlangan": "3m 8s",
"neytral_davlat_formatlangan": "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",
"aloqa_va_tasvirlar_dosati_formatlangan": "18m 5s",
"social_networking_duration_formatted": "vaqt yo'q",
"design_and_composition_duration_formatted": "8m 30s",
"entertainment_duration_formatted": "59m 54s",
"news_duration_formatted": "5m 39s",
"software_development_duration_formatted": "vaqt yo'q",
"reference_and_learning_duration_formatted": "20m 51s",
"shopping_duration_formatted": "vaqt yo'q",
"utility_duration_formatted": "20m 39s"
},
{
"id": 1515484800,
"sana": "2018-01-09",
"hosildorlik_pulsi": 68,
"juda_produktiv_ foiz": 60.4,
"samarali_ foiz": 0,5,
"neytral_ foiz": 11.0,
"chalg'ituvchi_ foiz": 7.1,
"juda_distaktiv_foiz": 21.0,
"all_productive_centcent": 60.9,
"all_distacting_centcent": 28.1,
"toifasiz_ foiz": 9.1,
"biznes_foiz": 21,9,
"aloqa_va rejalashtirish_foizi": 7.2,
"social_networking_centcent": 5.1,
"design_and_composition_centcent": 1.2,
"o'yin -kulgi_foizi": 1.6,
"news_centcent": 12.5,
"dasturiy ta'minotni ishlab chiqish_foizi": 9.1,
"mos yozuvlar_ va o'qitish_foizi": 28.2,
"xaridlar_foizi": 2,9,
"kommunal_foiz": 1.2,
"jami_soatlar": 2.78,
"juda_productive_hours": 1.68,
"samarali_soatlar": 0,01,
"neytral_soatlar": 0.31,
"chalg'ituvchi_hours": 0,2,
"juda_distracting_hours": 0.58,
"all_productive_hours": 1.69,
"all_distracting_hours": 0.78,
"toifasiz_soatlar": 0,25,
"business_hours": 0.61,
"aloqa_va_tasvirlar_soati": 0,2,
"social_networking_hours": 0.14,
"design_and_composition_hours": 0.03,
"o'yin -kulgi soatlari": 0,04,
"news_hours": 0.35,
"software_development_hours": 0.25,
"mos yozuvlar_ va_ ta'lim_soati": 0,78,
"shopping_hours": 0.08,
"utility_hours": 0.03,
"total_duration_formatted": "2h 46m",
"very_productive_duration_formatted": "1h 40m",
"samarali_davlat_formatlangan": "47 -yillar",
"neytral_turation_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",
"aloqa_va_tasvirlar_dosati_formatlangan": "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",
"utility_duration_formatted": "2m 3s"
}
]

rawsummary.jsonni GitHub ❤ tomonidan joylashtirilganini ko'ring

4 -qadam: prototip yaratish

2017 yilgi Raspberry Pi tanlovining bosh mukofoti

Tavsiya: