Table des matières:
Vidéo: Tracker de productivité - Alimenté par Raspberry Pi : 9 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Productivity Tracker est un miroir magique, mais au lieu d'afficher l'heure, la météo et une citation motivante, il affiche 4 choses;
Le pourcentage du temps que vous avez passé sur du matériel productif sur votre ordinateur et votre téléphone ce jour-là. (RescueTime)
Votre liste de tâches Trello
Un graphique radar montrant combien de temps vous avez passé ainsi que les catégories des programmes-applications que vous avez utilisés par rapport à l'utilisation d'hier. (RescueTime)
Un aperçu hebdomadaire. (RescueTime)
Et si le pourcentage du temps que vous avez passé sur du matériel productif est supérieur à 50 %, les LED afficheront une couleur vert vif. S'il est inférieur à 50 %, il affichera une couleur rouge, vous signalant d'être plus productif ! Vous pouvez également vous fixer un objectif.
Contour
Dans la première étape, j'expliquerai l'idée derrière le tracker de productivité. Ensuite, je vais vous donner deux listes d'outils et de pièces différentes, afin que vous puissiez créer le projet complet ou une version de base (n'inclut pas les LED) qui ne nécessite pas de compétences en soudure. Plus tard, je vous montrerai comment j'ai prototypé ma version du projet, afin que vous ayez une idée sur la façon de modéliser votre propre prototype. De plus, j'entrerai dans les détails dans la section code afin que vous puissiez personnaliser le code selon vos propres besoins. À la fin, je vous donnerai un guide de dépannage basé sur les problèmes que j'ai rencontrés lors de cette construction. Et élargissez la liste avec vos questions.
Le but de cette instructable n'est pas seulement de vous donner un livre de cuisine. Je vais vous montrer comment j'ai construit ce projet et vous fournir des questions ouvertes, afin que vous puissiez ajouter vos propres idées et pousser ce projet encore plus loin. Je vous encourage fortement à partager votre build une fois terminé ! Commençons.
Étape 1: L'idée
J'avais l'intention d'écrire ce Instructable depuis des mois. Mais un vieil ami à moi qui s'appelle "Procrastination" ne m'a pas laissé faire. La procrastination est l'acte de retarder ou de reporter une tâche ou un ensemble de tâches, et au lieu de faire ces tâches, remplir le temps en regardant des vidéos des profondeurs sombres de YouTube.
Un jour, en lisant un article sur la procrastination, je suis tombé sur plusieurs applications/programmes qui m'aideraient à résoudre mon problème, Trello en tant qu'application de gestion des tâches et RescueTime en tant qu'application de gestion du temps. Les deux ont parfaitement fonctionné pour mes besoins, au moins pendant un certain temps. Au bout d'un moment, j'ai complètement arrêté de vérifier les applications et j'ai ignoré les notifications. C'est à ce moment-là que j'ai eu ce projet. J'afficherais les données des applications sur un miroir accroché au mur. De cette façon, il n'y avait pas d'échappatoire à mes responsabilités.
Le premier brouillon que j'ai dessiné pour mon projet était assez simple. J'utiliserais l'API RescueTime pour afficher mon pourcentage de travail productif/distractif. Et utilisez l'API Trello pour afficher ma liste de choses à faire pour la journée. Mais après un certain temps, j'ai ajouté plus de fonctionnalités que j'obtiendrai en détail dans les prochaines étapes.
Étape 2: Outils et pièces
Remarque: Il s'agit d'une liste d'outils que j'ai utilisés lors de ma construction, ils ne doivent pas nécessairement être les mêmes pour votre construction !
Pour le socle:
4 mètres de playwood 7x15cm - 6$ - Cela dépend de la taille de votre écran
Miroir unilatéral 30x40cm - dépend de la taille de votre écran
Moniteur Samsung 25x35cm - 15$ - Trouvé dans une brocante. n'importe quel moniteur ferait l'affaire
Raspberry Pi 3 Model B- 35$ - Raspberry pi 2 est aussi bien mais vous aurez besoin d'un module wifi
Câble HDMI - 2$
Pour la Led Lightning:
Bande Led 200cm smd5050 RVB - 4$ - Il faut que ce soit smd5050 plus à ce sujet plus tard…
- Trois MOSFET à canal N (par exemple IRLZ34N) - 2$
- Adaptateur secteur 12V-2A - 3.15$
- Prototypage PCB - 1$
Outils:
- Scie à bois
- Colle à bois
- Fer à souder (pour l'éclairage LED)
Étape 3: Le code
Cette étape sera en 3 parties, vous n'avez pas besoin de toutes les pièces listées à l'étape précédente. Un Raspberry Pi et le moniteur que vous utiliserez pour ce projet devraient suffire pour l'étape de prototypage.
Configurer votre Raspberry Pi
Si vous n'avez pas encore configuré votre Raspberry Pi, allez-y et faites-le ici. Pour cette version, vous devrez installer Apache pour le serveur Web et le contrôleur PHP-LED.
Pour installer Apache, suivez ce guide officiel.
Pour installer le contrôleur PHP-LED, suivez ce guide de Christian Nikkanen
Téléchargez maintenant le fichier index.php du référentiel du projet sur votre Raspberry Pi et placez-le sur ce chemin:
/var/www/html/
Si vous n'êtes pas familier avec le déplacement de fichiers dans Linux Terminal, vous pouvez consulter ce guide pour vous aider à démarrer.
Personnaliser le code
Remarque: cette partie nécessite quelques connaissances en HTML/CSS si vous utilisez un autre moniteur.
La personnalisation se fera sur le fichier index.php qui est le cœur de ce build. Maintenant, allez-y et connectez votre moniteur à votre Raspberry Pi si vous ne l'avez pas déjà fait.
Maintenant, si vous essayez d'ouvrir le fichier index.php, cela ne fonctionnera pas car vous devez d'abord remplir les clés API dans le code, pour cela rendez-vous sur le site Web de RescueTime et ouvrez un compte. Ensuite, allez dans la section développeur et créez une clé API en appuyant sur Activer cette clé. Écrivez votre clé API quelque part.
Faites de même pour votre clé API Trello, ouvrez un compte et accédez au portail des développeurs pour générer une clé API.
Ensuite, ouvrez le fichier index.php que vous avez placé dans /var/www/html/ dans votre éditeur de texte préféré et remplacez [API_KEY] par votre propre clé API que vous avez obtenue de RescueTime et Trello en conséquence. Le [numéro_liste] est le numéro de liste que vous utilisez pour votre liste de tâches Trello. Pour obtenir ce numéro, créez d'abord une nouvelle liste sur Trello et appelez-la "À faire", ce sera la liste que vous utiliserez pour votre liste de choses à faire et elle apparaîtra sur le miroir.
Ensuite, prenez l'URL sur votre barre d'adresse qui ressemble à:
trello.com/b/3hS6yyLo/board-name
et ajoutez-y.json comme ceci:
trello.com/b/3hS6yyLo/board-name.json
et appuyez sur Entrée, vous verrez ensuite un désordre de code à l'écran. Essayez de trouver le nom de votre liste « À faire » dans ce désordre. Cela devrait ressembler à ceci: {"name":"To Do", "id":"5981c123cd1b23f13907cd18"}, cet identifiant est votre identifiant de liste. ce numéro à [list_number] dans le fichier index.php.
Ouvrez maintenant votre navigateur et tapez localhost dans la barre d'adresse et appuyez sur Entrée. Vous devriez voir vos données affichées sur les graphiques.
Remarque: les emplacements des graphiques peuvent être différents en raison de la résolution du moniteur que vous utilisez. Vous pouvez modifier la largeur, la hauteur et l'emplacement des éléments dans la partie CSS du code.
Il ne reste plus qu'à concevoir un boîtier autour du moniteur et à connecter les LED.
Remarque: Si vous n'êtes pas intéressé par les API en détail, vous pouvez passer à l'étape suivante. Dans la partie API, j'expliquerai en détail comment l'ensemble du programme fonctionne et obtient les données des API.
Les API (en détail)
Le cœur de ce projet est les deux API;
- API Trello
- API RescueTime
Bien que la documentation contienne des informations détaillées, je vais expliquer quelles données de l'API ce projet utilise.
Sur la partie gestion du temps, l'appel de l'API RescueTime qui obtient les informations de temps pour la journée en cours est, "https://www.rescuetime.com/anapi/data?key=[API_KEY]&perspective=rank&interval=hour&restrict_begin=".date('Aim-d')."&restrict_end=".date('Aim-d')."&format=json"
où, date('A-m-d') est la date actuelle
perspective=rank est le type de tri des données dans ce cas "rank" qui représente la plupart du temps passé
Cet appel donnera un fichier au format JSON qui ressemble à ceci: (regardez data.json à la fin de cette étape)
Les données que nous utilisons à partir de ce fichier sont le "Temps passé (secondes)" et la "Productivité" qui ont des valeurs comprises entre -2 et 2, -2 étant distractif et 2 étant productif. Avec ces données, nous pouvons générer une valeur supérieure à 100 pour le score de productivité.
Un autre appel API à RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"
Ce qui vous donne un résumé hebdomadaire de vos données, qui ressemble à ceci: (regardez summary.json à la fin de cette étape.) J'ai utilisé ces données pour générer le graphique récapitulatif hebdomadaire qui vous donne un aperçu de la semaine.
L'appel de l'API Trello, "https://api.trello.com/1/lists/[list_number]/cards?fields=name&key=[API_KEY]&token=[Token]"
Cela vous donnera les cartes de votre liste Trello comme ceci:
[{"id":"5a4160103bfcd14994852f59", "name":"ceylan cinemagraph"}, {"id":"59e8241f6aa8662a51eb7de6", "name":"Learn GitHuB"}, {"id":"5981c19577c732f826ad8025", "name ":"Publier Instructible"}, {"id":"5a341dba7f17d235d7c5bbd1", "name":"PROGRAMME ESPACE"}]
encore une fois, vous pouvez tirer le texte sur ces cartes et le mettre ailleurs.
data.json
Données JSON formatées |
{ |
"notes":"data est un tableau de tableaux (lignes), noms de colonnes pour les lignes dans row_headers", |
"row_headers":[ |
"Rang", |
"Temps passé (secondes)", |
"Nombre de personnes", |
"Activité", |
"Catégorie", |
"Productivité" |
], |
"Lignes":[ |
[ |
1, |
1536, |
1, |
"fr.0wikipedia.org", |
"Non classé", |
0 |
], |
[ |
2, |
1505, |
1, |
"youtube.com", |
"Vidéo", |
-2 |
], |
[ |
3, |
1178, |
1, |
"Bureau ouvert", |
"L'écriture", |
2 |
], |
[ |
4, |
709, |
1, |
"moodle.bilkent.edu.tr", |
"Référence générale \u0026 Apprentissage", |
2 |
], |
[ |
5, |
602, |
1, |
"google.com.tr", |
"Chercher", |
2 |
], |
[ |
6, |
439, |
1, |
"reddit.com", |
"Nouvelles générales \u0026 Opinion", |
-2 |
], |
[ |
7, |
437, |
1, |
"tr.sharelatex.com", |
"L'écriture", |
2 |
], |
[ |
8, |
361, |
1, |
"yemeksepeti.com", |
"Achats généraux", |
-2 |
], |
[ |
9, |
356, |
1, |
"Gmail", |
"E-mail", |
0 |
], |
[ |
10, |
328, |
1, |
"Google Chrome", |
"Navigateurs", |
0 |
], |
[ |
11, |
207, |
1, |
"stars.bilkent.edu.tr", |
"Référence générale \u0026 Apprentissage", |
2 |
], |
[ |
12, |
179, |
1, |
"whatsapp", |
"Message instantané", |
-1 |
], |
voir rawdata.json hébergé avec ❤ par GitHub
résumé.json
[ |
{ |
"identifiant":1515657600, |
"date":"2018-01-11", |
"productivity_pulse":54, |
"very_productive_percentage":34.2, |
"pourcentage_productif":10.6, |
"pourcentage_neutre":25.6, |
"distracting_percentage":0.0, |
"very_distracting_percentage":29.6, |
"all_productive_percentage":44.8, |
"all_distracting_percentage":29.6, |
"pourcentage_non classé":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, |
"utilities_percentage":14.1, |
"total_heures":2.51, |
"very_productive_hours":0.86, |
"heures_productives":0.27, |
"neutral_hours":0.64, |
"heures_distractives":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, |
"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, |
"utilities_hours":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":"pas le temps", |
"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":"pas le temps", |
"design_and_composition_duration_formatted":"pas de temps", |
"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" |
}, |
{ |
"identifiant":1515571200, |
"date":"2018-01-10", |
"productivity_pulse":33, |
"very_productive_percentage":21.9, |
"productive_percentage":2.3, |
"pourcentage_neutre":14.4, |
"pourcentage_distractif":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, |
"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, |
"utilities_percentage":15.4, |
"total_heures":2.24, |
"very_productive_hours":0.49, |
"heures_productives":0.05, |
"neutral_hours":0.32, |
"heures_distractives":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, |
"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, |
"utilities_hours":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":"pas de temps", |
"design_and_composition_duration_formatted":"8m 30s", |
"entertainment_duration_formatted":"59m 54s", |
"news_duration_formatted":"5m 39s", |
"software_development_duration_formatted":"pas de temps", |
"reference_and_learning_duration_formatted": "20m 51s", |
"shopping_duration_formatted":"pas le temps", |
"utilities_duration_formatted": "20m 39s" |
}, |
{ |
"identifiant":1515484800, |
"date":"2018-01-09", |
"productivity_pulse":68, |
"very_productive_percentage":60.4, |
"productive_percentage":0.5, |
"pourcentage_neutre":11.0, |
"distracting_percentage":7.1, |
"very_distracting_percentage":21.0, |
"all_productive_percentage":60.9, |
"all_distracting_percentage":28.1, |
"uncategorized_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, |
"utilities_percentage":1.2, |
"total_heures":2.78, |
"heures_très_productives":1.68, |
"heures_productives":0.01, |
"neutral_hours":0.31, |
"heures_distractives":0.2, |
"very_distracting_hours":0.58, |
"all_productive_hours":1.69, |
"all_distracting_hours":0.78, |
"uncategorized_hours":0.25, |
"heures_affaires":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, |
"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" |
} |
] |
voir rawsummary.json hébergé avec ❤ par GitHub
Étape 4: Prototypage
Grand prix du concours Raspberry Pi 2017
Conseillé:
Programmer l'horloge : votre assistant de productivité virtuelle : 6 étapes (avec photos)
Horaire de l'horloge : votre assistant de productivité virtuelle. : Je suis un procrastinateur professionnel ! Ce verrouillage m'a mis dans une boucle temporelle, où chaque jour vole sans aucun travail productif. Pour vaincre ma procrastination, j'ai fabriqué cette horloge simple et rapide, qui programme mon travail. Maintenant, je peux simplement m'en tenir à
Machine à brouillard glacé ultime - Contrôlée par Bluetooth, alimentée par batterie et imprimée en 3D. : 22 étapes (avec photos)
Machine à brouillard à glace sèche ultime - Contrôlée par Bluetooth, alimentée par batterie et imprimée en 3D. : J'avais récemment besoin d'une machine à glace sèche pour des effets théâtraux pour un spectacle local. Notre budget ne s'étendrait pas à l'embauche d'un professionnel, c'est donc ce que j'ai construit à la place. Il est principalement imprimé en 3D, contrôlé à distance via Bluetooth, alimentation par batterie
Personnalisation du visualiseur PulseSensor pour déclencher un événement (moniteur anti-productivité) : 8 étapes
Personnalisation du visualiseur PulseSensor pour déclencher un événement (moniteur anti-productivité) : dans cette instruction, vous apprendrez à modifier le programme du visualiseur PulseSensor pour déclencher un événement dans un navigateur Web. J'appelle ce projet l'Anti Productivity Monitor parce que même si nous avons de nombreux outils qui nous aident à surveiller nos signes vitaux
Fauteuil roulant contrôlé par vision par ordinateur avec mannequin : 6 étapes (avec photos)
Fauteuil roulant contrôlé par vision par ordinateur avec mannequin : projet de AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC.Instructable par AJ Sapala, Fanyun Peng, Ray LC.Nous avons créé un fauteuil roulant avec des roues contrôlées par une carte Arduino, qui est à son tour contrôlée par un raspberry pi exécutant openCV via Processing
Augmentez la productivité avec les signets de mots clés : 4 étapes
Augmentez la productivité avec les signets de mots-clés : ici, je vais vous montrer comment utiliser une fonctionnalité souvent négligée dans Firefox, les signets de mots-clés