Mục lục:

Trình theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi: 9 bước (có hình ảnh)
Trình theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi: 9 bước (có hình ảnh)

Video: Trình theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi: 9 bước (có hình ảnh)

Video: Trình theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi: 9 bước (có hình ảnh)
Video: So sánh tốc độ giữa MicroPython và C/C++ trên Raspberry Pi Pico 2024, Tháng mười một
Anonim
Công cụ theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi
Công cụ theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi
Công cụ theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi
Công cụ theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi
Công cụ theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi
Công cụ theo dõi năng suất - Được hỗ trợ bởi Raspberry Pi

Productivity Tracker là một chiếc gương ma thuật, nhưng thay vì hiển thị thời gian, thời tiết và một câu nói thúc đẩy, nó hiển thị 4 thứ;

Phần trăm thời gian bạn đã dành cho tài liệu hữu ích trên máy tính và điện thoại của mình trong ngày hôm đó. (RescueTime)

Danh sách việc cần làm của bạn từ Trello

Biểu đồ radar hiển thị lượng thời gian bạn đã sử dụng cùng với các danh mục chương trình-ứng dụng bạn đã sử dụng so với mức sử dụng các ngày trong năm. (RescueTime)

Tổng quan hàng tuần. (RescueTime)

Và nếu phần trăm thời gian bạn dành cho tài liệu sản xuất trên 50%, đèn LED sẽ hiển thị màu xanh lá cây tươi sáng. Nếu dưới 50%, nó sẽ hiển thị màu đỏ, báo hiệu bạn đang làm việc hiệu quả hơn! Bạn cũng có thể tự đặt mục tiêu.

Đề cương

Trong bước đầu tiên, tôi sẽ giải thích ý tưởng đằng sau công cụ theo dõi năng suất. Tiếp theo, tôi sẽ cung cấp cho bạn danh sách hai công cụ & bộ phận khác nhau, vì vậy bạn có thể xây dựng dự án đầy đủ hoặc phiên bản cơ bản (Không bao gồm đèn LED) mà không yêu cầu kỹ năng hàn. Sau đó, tôi sẽ chỉ cho bạn cách tôi tạo nguyên mẫu cho phiên bản dự án của mình, để bạn có ý tưởng về cách tạo mẫu nguyên mẫu của riêng mình. Ngoài ra, tôi sẽ đi vào chi tiết tại phần mã để bạn có thể tùy chỉnh mã cho nhu cầu của riêng bạn. Ở phần cuối, tôi sẽ cung cấp cho bạn Hướng dẫn xử lý sự cố dựa trên các sự cố tôi gặp phải trong quá trình xây dựng này. Và mở rộng danh sách với các câu hỏi của bạn.

Mục đích của tài liệu hướng dẫn này không chỉ để cung cấp cho bạn một cuốn sách dạy nấu ăn. Tôi sẽ chỉ cho bạn cách tôi xây dựng dự án này và cung cấp cho bạn các câu hỏi mở để bạn có thể thêm ý tưởng của riêng mình và tiến xa hơn nữa dự án này. Tôi thực sự khuyến khích bạn chia sẻ bản dựng của mình khi nó hoàn thành! Bắt đầu nào.

Bước 1: Ý tưởng

Ý tưởng
Ý tưởng

Tôi đã có ý định viết cuốn sách này trong nhiều tháng. Nhưng một người bạn cũ của tôi tên là "Sự chần chừ" đã không cho phép tôi. Trì hoãn là hành động trì hoãn hoặc trì hoãn một nhiệm vụ hoặc một nhóm nhiệm vụ và thay vì thực hiện những công việc đó để lấp đầy thời gian bằng việc xem video từ tầng sâu tối tăm của YouTube.

Một ngày nọ, khi đọc một bài báo về sự trì hoãn, tôi bắt gặp nhiều ứng dụng / chương trình có thể giúp tôi giải quyết vấn đề của mình, Trello là ứng dụng quản lý tác vụ và RescueTime là ứng dụng quản lý thời gian. Cả hai đều hoạt động hoàn hảo cho nhu cầu của tôi, ít nhất là trong một thời gian. Sau một thời gian, tôi đã ngừng kiểm tra các ứng dụng hoàn toàn và bỏ qua các thông báo. Đó là khi tôi nghĩ ra dự án này. Tôi sẽ hiển thị dữ liệu từ các ứng dụng trên một chiếc gương treo trên tường của tôi. Bằng cách này không có sự trốn tránh trách nhiệm của tôi.

Bản thảo đầu tiên tôi vẽ cho dự án của mình khá đơn giản. Tôi sẽ sử dụng API RescueTime để hiển thị phần trăm công việc Năng suất / Mất tập trung của mình. Và sử dụng API Trello để hiển thị danh sách việc cần làm của tôi trong ngày. Nhưng sau một thời gian, tôi đã thêm nhiều tính năng hơn mà tôi sẽ trình bày chi tiết trong các bước tiếp theo.

Bước 2: Công cụ & bộ phận

Lưu ý: Đây là danh sách các công cụ tôi đã sử dụng trong quá trình xây dựng của mình, chúng không nhất thiết phải giống nhau cho bản dựng của bạn!

Đối với cơ sở:

4 Mét gỗ playwood 7x15cm - 6 $ - Tùy thuộc vào kích thước màn hình của bạn

Gương một mặt 30x40cm - tùy thuộc vào kích thước màn hình của bạn

Màn hình Samsung 25x35cm - 15 $ - Tìm thấy ở chợ trời. bất kỳ màn hình nào sẽ làm

Raspberry Pi 3 Model B- 35 $ - Raspberry pi 2 cũng ổn nhưng bạn sẽ cần một mô-đun wifi

Cáp HDMI - 2 đô la

Đối với đèn LED Lightning:

Dải đèn LED RGB 200cm smd5050- 4 $ - Sau này phải thêm smd5050 nữa…

  • Ba MOSFET kênh N (ví dụ: IRLZ34N) - 2 $
  • Bộ đổi nguồn 12V-2A - 3,15 USD
  • Tạo mẫu PCB - 1 $

Công cụ:

  • Cưa gỗ
  • Keo dán gỗ
  • Sắt hàn (Đối với đèn LED)

Bước 3: Mã

Mật mã
Mật mã

Bước này sẽ gồm 3 phần, bạn không cần tất cả các bộ phận được liệt kê trong bước trước. Một Raspberry Pi và màn hình mà bạn sử dụng cho dự án này sẽ đủ cho giai đoạn tạo mẫu.

Thiết lập Raspberry Pi của bạn

Nếu bạn chưa thiết lập Raspberry Pi của mình, hãy tiếp tục và thực hiện tại đây. Đối với bản dựng này, bạn sẽ cần cài đặt Apache cho máy chủ web và bộ điều khiển PHP-LED.

Để cài đặt Apache, hãy làm theo hướng dẫn chính thức này.

Để cài đặt PHP-LED-controller, hãy làm theo hướng dẫn này của Christian Nikkanen

Bây giờ tải xuống tệp index.php từ kho lưu trữ dự án vào Raspberry Pi của bạn và đặt nó trên đường dẫn này:

/ var / www / html /

Nếu bạn không quen với việc di chuyển tệp trong Linux Terminal, bạn có thể xem hướng dẫn này để bắt đầu.

Tùy chỉnh mã

Lưu ý: Phần này yêu cầu một chút kiến thức về HTML / CSS nếu bạn đang sử dụng một màn hình khác.

Việc tùy chỉnh sẽ được thực hiện trên tệp index.php, đây là phần mềm của bản dựng này. Bây giờ hãy tiếp tục và kết nối màn hình của bạn với Raspberry Pi nếu bạn chưa kết nối.

Bây giờ nếu bạn cố gắng mở tệp index.php, nó sẽ không hoạt động vì trước tiên bạn phải điền các khóa API vào mã, hãy truy cập trang web RescueTime và mở tài khoản. Tiếp theo, chuyển đến phần nhà phát triển và tạo khóa API bằng cách nhấn Kích hoạt khóa này. Viết khóa API của bạn vào một nơi nào đó.

Làm tương tự đối với khóa API Trello của bạn, Mở tài khoản và truy cập cổng nhà phát triển để tạo khóa API.

Tiếp theo, mở tệp index.php mà bạn đặt vào / var / www / html / trong trình soạn thảo văn bản yêu thích của mình và thay thế [API_KEY] bằng khóa API của riêng bạn mà bạn nhận được từ RescueTime và Trello tương ứng. [List_number] là số danh sách mà bạn sử dụng cho Trello trong danh sách việc cần làm của mình. Để có được số đó, trước tiên hãy tạo một danh sách mới trên Trello và gọi nó là "Việc cần làm", đây sẽ là danh sách mà bạn sẽ sử dụng cho danh sách việc cần làm của mình và nó sẽ xuất hiện trên gương.

Tiếp theo, lấy URL trên thanh địa chỉ của bạn trông giống như sau:

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

và thêm.json vào nó như thế này:

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

và nhấn enter, tiếp theo, bạn sẽ thấy một mớ mã trên màn hình. Cố gắng tìm tên danh sách '' Việc cần làm "của bạn trên đống hỗn độn đó. Tên này sẽ giống như sau: {" name ":" Việc cần làm "," id ":" 5981c123cd1b23f13907cd18 "}, Id đó là Id danh sách của bạn. số đó thành [list_number] trên tệp index.php.

Bây giờ hãy mở trình duyệt của bạn và gõ localhost vào thanh địa chỉ và nhấn enter. Bạn sẽ thấy dữ liệu của mình được hiển thị trên biểu đồ.

Lưu ý: Vị trí của biểu đồ có thể khác nhau do độ phân giải của màn hình mà bạn đang sử dụng. Bạn có thể chỉnh sửa chiều rộng, chiều cao và vị trí của các phần tử trong phần CSS của mã.

Bây giờ tất cả những gì còn lại cần làm là thiết kế một hộp xung quanh màn hình và kết nối các đèn LED.

Lưu ý: Nếu bạn không quan tâm đến chi tiết của API, bạn có thể chuyển sang bước tiếp theo. Trong phần API, tôi sẽ đi chi tiết cách hoạt động của toàn bộ chương trình và lấy dữ liệu từ các API.

API (chi tiết)

Điểm nổi bật của dự án này là Hai API;

  • API Trello
  • API RescueTime

Mặc dù tài liệu có sẵn thông tin chi tiết, nhưng tôi sẽ giải thích dữ liệu nào từ API mà dự án này đang sử dụng.

Về phần quản lý thời gian, lệnh gọi API RescueTime lấy thông tin thời gian cho ngày hiện tại là, "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"

ở đâu, date ('Y-m-d') là ngày hiện tại

quan điểm = xếp hạng là kiểu sắp xếp dữ liệu trong trường hợp này "xếp hạng" là viết tắt của phần lớn thời gian dành cho

Lệnh gọi này sẽ cung cấp một tệp ở định dạng JSON trông giống như sau: (xem data.json ở cuối bước này)

Dữ liệu chúng tôi sử dụng từ tệp này là "Thời gian sử dụng (giây)" và "Năng suất" có các giá trị từ -2 đến 2, -2 là phân tâm và 2 là năng suất. Với dữ liệu này, chúng tôi có thể tạo ra giá trị trên 100 cho điểm năng suất.

Một lệnh gọi API khác tới RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"

Điều này cung cấp cho bạn bản tóm tắt hàng tuần về dữ liệu của bạn, trông giống như sau: (nhìn vào Summary.json ở cuối bước này.) Tôi đã sử dụng dữ liệu này để tạo biểu đồ tóm tắt hàng tuần cung cấp cho bạn cái nhìn tổng quan về tuần.

Lệnh gọi API Trello, "https://api.trello.com/1/lists/[list_number]/cards?fields=name&key=[API_KEY]&token=[Token]"

Điều này sẽ cung cấp cho bạn các thẻ trong danh sách Trello của bạn như sau:

[{"id": "5a4160103bfcd14994852f59", "name": "ceylan cinemagraph"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "Learn GitHuB"}, {"id": "5981c19526adc725 "f8" name ":" Xuất bản có thể giảng dạy "}, {" id ":" 5a341dba7f17d235d7c5bbd1 "," name ":" CHƯƠNG TRÌNH KHÔNG GIAN "}]

một lần nữa, bạn có thể kéo văn bản trên các thẻ đó và đặt nó vào một nơi khác.

data.json

Dữ liệu JSON được định dạng
{
"ghi chú": "dữ liệu là một mảng của mảng (hàng), tên cột cho các hàng trong row_headers",
"row_headers": [
"Thứ hạng",
"Thời gian đã sử dụng (giây)",
"Số người",
"Hoạt động",
"Loại",
"Năng suất"
],
"hàng": [
[
1,
1536,
1,
"vi.0wikipedia.org",
"Chưa được phân loại",
0
],
[
2,
1505,
1,
"youtube.com",
"Băng hình",
-2
],
[
3,
1178,
1,
"Mở văn phòng",
"Viết",
2
],
[
4,
709,
1,
"moodle.bilkent.edu.tr",
"Tham khảo Chung \u0026 Học tập",
2
],
[
5,
602,
1,
"google.com.tr",
"Tìm kiếm",
2
],
[
6,
439,
1,
"reddit.com",
"Tin tức chung \u0026 Ý kiến",
-2
],
[
7,
437,
1,
"tr.sharelatex.com",
"Viết",
2
],
[
8,
361,
1,
"yemeksepeti.com",
"Mua sắm chung",
-2
],
[
9,
356,
1,
"Gmail",
"E-mail",
0
],
[
10,
328,
1,
"Google Chrome",
"Trình duyệt",
0
],
[
11,
207,
1,
"stars.bilkent.edu.tr",
"Tham khảo Chung \u0026 Học tập",
2
],
[
12,
179,
1,
"whatsapp",
"Tin nhắn tức thời",
-1
],

xem rawdata.json được lưu trữ với ❤ bởi GitHub

Summary.json

[
{
"id": 1515657600,
"date": "2018-01-11",
"energy_pulse": 54,
"very_productive_percentage": 34,2,
"production_percentage": 10,6,
"trung_trình_trung_thưởng": 25,6,
"distraction_percentage": 0,0,
"very_distraction_percentage": 29,6,
"all_productive_percentage": 44,8,
"all_distract_percentage": 29,6,
"unsategorized_percentage": 16.1,
"business_percentage": 6.0,
"Communication_and_scheduling_percentage": 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,
"gets_percentage ": 14.1,
"total_hours": 2,51,
"very_productive_hours": 0,86,
"performance_hours": 0,27,
"neutral_hours": 0,64,
"distraction_hours": 0,0,
"very_distraction_hours": 0,74,
"all_productive_hours": 1.12,
"all_distraction_hours": 0,74,
"unsategorized_hours": 0,4,
"business_hours": 0,15,
"Communication_and_scheduling_hours": 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,
"extensions_hours": 0,35,
"total_duration_formatted": "2 giờ 30 phút",
"very_productive_duration_formatted": "51 phút 26 giây",
"production_duration_formatted": "15 phút 56 giây",
"neutral_duration_formatted": "38 phút 34 giây",
"distraction_duration_formatted": "không có thời gian",
"very_distract_duration_formatted": "44 phút 30 giây",
"all_productive_duration_formatted": "1 giờ 7 phút",
"all_distract_duration_formatted": "44 phút 30 giây",
"unsategorized_duration_formatted": "24 phút 11 giây",
"business_duration_formatted": "9 phút 6 giây",
"Communication_and_scheduling_duration_formatted": "6 phút 26 giây",
"social_networking_duration_formatted": "không có thời gian",
"design_and_composition_duration_formatted": "không có thời gian",
"Entertainment_duration_formatted": "22 phút 49 giây",
"news_duration_formatted": "4 phút 55 giây",
"software_development_duration_formatted": "8 phút 3 giây",
"reference_and_learning_duration_formatted": "34 phút 17 giây",
"shopping_duration_formatted": "19 phút 22 giây",
"gets_duration_formatted ":" 21 phút 17 giây"
},
{
"id": 1515571200,
"date": "2018-01-10",
"energy_pulse": 33,
"very_productive_percentage": 21,9,
"gain_percentage": 2.3,
"trung_trình_trung_thưởng": 14,4,
"distraction_percentage": 11.0,
"very_distraction_percentage": 50,3,
"all_productive_percentage": 24,2,
"all_distraction_percentage": 61,4,
"unsategorized_percentage": 0,3,
"business_percentage": 0.0,
"Communication_and_scheduling_percentage": 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,
"tiện ích_tính_nghĩa": 15,4,
"total_hours": 2,24,
"very_productive_hours": 0,49,
"production_hours": 0,05,
"neutral_hours": 0,32,
"mất tập trung": 0,25,
"very_distraction_hours": 1.13,
"all_productive_hours": 0,54,
"all_distraction_hours": 1,37,
"unsategorized_hours": 0,01,
"business_hours": 0.0,
"Communication_and_scheduling_hours": 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,
"extensions_hours": 0,34,
"total_duration_formatted": "2 giờ 14 phút",
"very_productive_duration_formatted": "29 phút 22 giây",
"production_duration_formatted": "3 phút 8 giây",
"neutral_duration_formatted": "19 phút 18 tuổi",
"distraction_duration_formatted": "14 phút 48 giây",
"very_distract_duration_formatted": "1 giờ 7 phút",
"all_productive_duration_formatted": "32 phút 30 giây",
"all_distract_duration_formatted": "1 giờ 22 phút",
"unsategorized_duration_formatted": "27 giây",
"business_duration_formatted": "1 giây",
"Communication_and_scheduling_duration_formatted": "18 phút 5 giây",
"social_networking_duration_formatted": "không có thời gian",
"design_and_composition_duration_formatted": "8 phút 30 giây",
"Entertainment_duration_formatted": "59 phút 54 giây",
"news_duration_formatted": "5 phút 39 giây",
"software_development_duration_formatted": "không có thời gian",
"reference_and_learning_duration_formatted": "20 phút 51 giây",
"shopping_duration_formatted": "không có thời gian",
"domains_duration_formatted": "20 phút 39 giây"
},
{
"id": 1515484800,
"date": "2018-01-09",
"energy_pulse": 68,
"very_productive_percentage": 60,4,
"production_percentage": 0,5,
"trung_trình_trung_thưởng": 11.0,
"distraction_percentage": 7.1,
"very_distraction_percentage": 21.0,
"all_productive_percentage": 60,9,
"all_distract_percentage": 28.1,
"unsategorized_percentage": 9.1,
"business_percentage": 21,9,
"Communication_and_scheduling_percentage": 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,
"gets_percentage ": 1.2,
"total_hours": 2,78,
"very_productive_hours": 1,68,
"performance_hours": 0,01,
"neutral_hours": 0,31,
"distraction_hours": 0,2,
"very_distraction_hours": 0,58,
"all_productive_hours": 1,69,
"all_distraction_hours": 0,78,
"unsategorized_hours": 0,25,
"business_hours": 0,61,
"Communication_and_scheduling_hours": 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,
"extensions_hours": 0,03,
"total_duration_formatted": "2 giờ 46 phút",
"very_productive_duration_formatted": "1 giờ 40 phút",
"production_duration_formatted": "47 giây",
"neutral_duration_formatted": "18 phút 23 giây",
"distraction_duration_formatted": "11 phút 49 giây",
"very_distract_duration_formatted": "34 phút 57 giây",
"all_productive_duration_formatted": "1 giờ 41 phút",
"all_distract_duration_formatted": "46 phút 46 giây",
"unsategorized_duration_formatted": "15 phút 7 giây",
"business_duration_formatted": "36 phút 26 giây",
"Communication_and_scheduling_duration_formatted": "11m 59 giây",
"social_networking_duration_formatted": "8 phút 28 giây",
"design_and_composition_duration_formatted": "2 phút 4 giây",
"Entertainment_duration_formatted": "2 phút 39 giây",
"news_duration_formatted": "20 phút 49 giây",
"software_development_duration_formatted": "15 phút 5 giây",
"reference_and_learning_duration_formatted": "46 phút 59 giây",
"shopping_duration_formatted": "4 phút 51 giây",
"gets_duration_formatted ":" 2 phút 3 giây"
}
]

xem rawsummary.json được lưu trữ với ❤ bởi GitHub

Bước 4: Tạo mẫu

Giải thưởng lớn trong Cuộc thi Raspberry Pi 2017

Đề xuất: