2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
O Productivity Tracker é um espelho mágico, mas em vez de exibir a hora, o clima e uma citação motivadora, ele exibe 4 coisas;
A porcentagem de tempo que você gastou em material produtivo em seu computador e telefone naquele dia. (RescueTime)
Sua lista de tarefas do Trello
Um gráfico de radar mostrando quanto tempo você gastou junto com as categorias dos programas-aplicativos que você usou em comparação com o uso de ontem. (RescueTime)
Uma visão geral semanal. (RescueTime)
E se a porcentagem de tempo gasto em material produtivo for superior a 50%, os LEDs exibirão uma cor verde brilhante. Se estiver abaixo de 50%, ele exibirá uma cor vermelha, sinalizando para que você seja mais produtivo! Você também pode definir uma meta sozinho.
Contorno
Na primeira etapa, explicarei a ideia por trás do rastreador de produtividade. A seguir, darei a você duas ferramentas e listas de peças diferentes, para que você possa construir o projeto completo ou uma versão básica (não inclui os LEDs) que não requer habilidades de soldagem. Posteriormente, mostrarei como criei um protótipo de minha versão do projeto, para que você tenha uma ideia de como modelar seu próprio protótipo. Além disso, entrarei em detalhes na seção de código para que você possa personalizar o código de acordo com suas necessidades. No final, darei a você um guia de resolução de problemas com base nos problemas que encontrei durante esta compilação. E expanda a lista com suas perguntas.
O objetivo deste manual não é apenas fornecer um livro de receitas. Mostrarei como construí este projeto e farei perguntas abertas, para que você possa adicionar suas próprias ideias e levar este projeto ainda mais longe. Eu recomendo fortemente que você compartilhe sua construção quando estiver pronta! Vamos começar.
Etapa 1: a ideia
Tenho a intenção de escrever este Instructable há meses. Mas um velho amigo meu que atende pelo nome de "Procrastinação" não me deixou. Procrastinação é o ato de atrasar ou adiar uma tarefa ou conjunto de tarefas e, em vez de fazer essas tarefas, preenche o tempo assistindo a vídeos das profundezas sombrias do YouTube.
Um dia, enquanto lia um artigo sobre procrastinação, me deparei com vários aplicativos / programas que me ajudariam com meu problema, o Trello como um aplicativo de gerenciamento de tarefas e o RescueTime como um aplicativo de gerenciamento de tempo. Ambos funcionaram perfeitamente para minhas necessidades, pelo menos por um tempo. Depois de um tempo, parei de verificar os aplicativos completamente e ignorei as notificações. Foi então que surgiu este projeto. Eu exibia os dados dos aplicativos em um espelho pendurado na parede. Dessa forma, não havia como escapar de minhas responsabilidades.
O primeiro rascunho que desenhei para meu projeto era bastante simples. Eu usaria a API RescueTime para exibir minha porcentagem de trabalho produtivo / distrativo. E use a API do Trello para exibir minha lista de tarefas do dia. Mas depois de um tempo, adicionei mais recursos que irei detalhar nas próximas etapas.
Etapa 2: Ferramentas e peças
Nota: Esta é uma lista de ferramentas que usei durante minha construção, elas não precisam ser as mesmas para a sua construção!
Para a Base:
4 metros de playwood 7x15cm - 6 $ - Depende do tamanho da tela
Espelho unilateral de 30x40cm - depende do tamanho da tela
Monitor Samsung 25x35cm - 15 $ - Encontrado em um mercado de pulgas. qualquer monitor faria
Raspberry Pi 3 Modelo B- 35 $ - Raspberry pi 2 também é bom, mas você precisará de um módulo wi-fi
Cabo HDMI - 2 $
Para o relâmpago LED:
200cm smd5050 RGB Led strip- 4 $ - Deve ser smd5050 mais sobre isso mais tarde …
- Três MOSFETs N-channel (por exemplo, IRLZ34N) - 2 $
- Adaptador de alimentação 12V-2A - 3,15 $
- PCB de prototipagem - 1 $
Ferramentas:
- Serra de madeira
- Cola de madeira
- Ferro de soldar (para iluminação LED)
Etapa 3: O Código
Esta etapa será em 3 partes, você não precisa de todas as partes listadas na etapa anterior. Um Raspberry Pi e o monitor que você usará neste projeto devem ser suficientes para o estágio de prototipagem.
Configurando seu Raspberry Pi
Se você ainda não configurou seu Raspberry Pi, vá em frente e faça-o aqui. Para esta construção, você precisará instalar o Apache para o servidor web e o controlador PHP-LED.
Para instalar o Apache, siga este guia oficial.
Para instalar o controlador PHP-LED, siga este guia de Christian Nikkanen
Agora baixe o arquivo index.php do repositório do projeto para o Raspberry Pi e coloque-o neste caminho:
/ var / www / html /
Se você não está familiarizado com a movimentação de arquivos no Terminal Linux, pode consultar este guia para começar.
Personalize o código
Nota: Esta parte requer um pouco de conhecimento de HTML / CSS se você estiver usando um monitor diferente.
A customização será feita no arquivo index.php que é o coração desta construção. Agora vá em frente e conecte seu monitor ao Raspberry Pi, se ainda não o fez.
Agora, se você tentar abrir o arquivo index.php não vai funcionar porque primeiro você tem que preencher as chaves da API no código, para isso vá ao site do RescueTime e abra uma conta. Em seguida, vá para a seção do desenvolvedor e crie uma chave de API pressionando Ativar esta chave. Escreva sua chave de API em algum lugar.
Faça o mesmo para sua chave de API do Trello, abra uma conta e vá para o portal do desenvolvedor para gerar uma chave de API.
A seguir, abra o arquivo index.php que você colocou em / var / www / html / em seu editor de texto favorito e substitua [API_KEY] por sua própria chave de API que você obteve do RescueTime e Trello de acordo. O [list_number] é o número da lista que você usa para sua lista de tarefas Trello. Para obter esse número, primeiro crie uma nova lista no Trello e chame-a de "Tarefas", esta será a lista que você usará para sua lista de tarefas e aparecerá no espelho.
Em seguida, pegue o URL na barra de endereço que se parece com:
trello.com/b/3hS6yyLo/board-name
e adicione.json assim:
trello.com/b/3hS6yyLo/board-name.json
e pressione Enter, em seguida você verá uma bagunça de código na tela. Tente encontrar o nome da lista '' To-Do "nessa bagunça. Deve ser algo como: {" name ":" To Do "," id ":" 5981c123cd1b23f13907cd18 "}, Esse Id é o Id da sua lista. Put esse número para [list_number] no arquivo index.php.
Agora abra seu navegador e digite localhost na barra de endereços e pressione Enter. Você deve ver seus dados exibidos nos gráficos.
Nota: Os posicionamentos dos gráficos podem ser diferentes devido à resolução do monitor que você está usando. Você pode editar a largura, altura e localização dos elementos na parte CSS do código.
Agora, resta projetar uma caixa ao redor do monitor e conectar os LEDs.
Nota: Se você não estiver interessado nas APIs em detalhes, pule para a próxima etapa. Na parte da API, vou entrar em detalhes como todo o programa funciona e obtém os dados das APIs.
A API (em detalhes)
O coração deste projeto são as Duas APIs;
- API Trello
- API RescueTime
Embora a documentação tenha informações detalhadas disponíveis, vou explicar quais dados da API este projeto está usando.
Na parte de gerenciamento de tempo, a chamada da API RescueTime que obtém as informações de tempo para o dia atual é, "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"
Onde, data ('Y-m-d') é a data atual
perspectiva = classificação é o tipo de classificação de dados, neste caso "classificação" que representa a maior parte do tempo gasto
Esta chamada fornecerá um arquivo no formato JSON semelhante a este: (veja data.json no final desta etapa)
Os dados que usamos deste arquivo são o "Tempo gasto (segundos)" e a "Produtividade" que tem valores entre -2 e 2, sendo -2 distrativo e 2 produtivo. Com esses dados, podemos gerar um valor acima de 100 para a pontuação de produtividade.
Outra chamada de API para RescueTime, "https://www.rescuetime.com/anapi/daily_summary_feed?key=[API_KEY]"
Que fornece um resumo semanal de seus dados, que se parece com isto: (veja summary.json no final desta etapa.) Usei esses dados para gerar o gráfico de resumo semanal que fornece uma visão geral da semana.
A chamada da API Trello, "https://api.trello.com/1/lists/[list_number]/cards?fields=name&key=[API_KEY]&token=[Token]"
Isso lhe dará os cartões em sua lista do Trello como este:
[{"id": "5a4160103bfcd14994852f59", "name": "ceylan cinemagraph"}, {"id": "59e8241f6aa8662a51eb7de6", "name": "Aprenda GitHuB"}, {"id": "598081c19577adc726" ":" Publish Instructible "}, {" id ":" 5a341dba7f17d235d7c5bbd1 "," name ":" SPACE PROGRAM "}]
novamente, você pode puxar o texto desses cartões e colocá-lo em outro lugar.
data.json
Dados JSON formatados |
{ |
"notas": "dados são uma matriz de matrizes (linhas), nomes de colunas para linhas em row_headers", |
"row_headers": [ |
"Classificação", |
"Tempo gasto (segundos)", |
"Número de pessoas", |
"Atividade", |
"Categoria", |
"Produtividade" |
], |
"linhas": [ |
[ |
1, |
1536, |
1, |
"en.0wikipedia.org", |
"Sem categoria", |
0 |
], |
[ |
2, |
1505, |
1, |
"youtube.com", |
"Vídeo", |
-2 |
], |
[ |
3, |
1178, |
1, |
"Escritório aberto", |
"Escrita", |
2 |
], |
[ |
4, |
709, |
1, |
"moodle.bilkent.edu.tr", |
"Referência Geral & Aprendizagem", |
2 |
], |
[ |
5, |
602, |
1, |
"google.com.tr", |
"Procurar", |
2 |
], |
[ |
6, |
439, |
1, |
"reddit.com", |
"Notícias gerais & Opinião", |
-2 |
], |
[ |
7, |
437, |
1, |
"tr.sharelatex.com", |
"Escrita", |
2 |
], |
[ |
8, |
361, |
1, |
"yemeksepeti.com", |
"Compras Gerais", |
-2 |
], |
[ |
9, |
356, |
1, |
"Gmail", |
"O email", |
0 |
], |
[ |
10, |
328, |
1, |
"Google Chrome", |
"Navegadores", |
0 |
], |
[ |
11, |
207, |
1, |
"stars.bilkent.edu.tr", |
"Referência Geral & Aprendizagem", |
2 |
], |
[ |
12, |
179, |
1, |
"Whatsapp", |
"Mensagem instantânea", |
-1 |
], |
ver rawdata.json hospedado com ❤ por GitHub
summary.json
[ |
{ |
"id": 1515657600, |
"data": "2018-01-11", |
"productivity_pulse": 54, |
"very_productive_percentage": 34.2, |
"product_percentage": 10.6, |
"neutral_percentage": 25.6, |
"distracting_percentage": 0,0, |
"very_distracting_percentage": 29.6, |
"all_productive_percentage": 44,8, |
"all_distracting_percentage": 29.6, |
"uncategorized_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, |
"utilities_percentage": 14.1, |
"total_hours": 2,51, |
"very_productive_hours": 0,86, |
"product_hours": 0,27, |
"neutral_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, |
"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", |
"product_duration_formatted": "15m 56s", |
"neutral_duration_formatted": "38m 34s", |
"distracting_duration_formatted": "sem tempo", |
"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": "sem tempo", |
"design_and_composition_duration_formatted": "sem tempo", |
"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, |
"data": "2018-01-10", |
"productivity_pulse": 33, |
"very_productive_percentage": 21.9, |
"product_percentage": 2.3, |
"neutral_percentage": 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, |
"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_hours": 2,24, |
"very_productive_hours": 0,49, |
"product_hours": 0,05, |
"neutral_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, |
"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", |
"product_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": "sem tempo", |
"design_and_composition_duration_formatted": "8m 30s", |
"entertainment_duration_formatted": "59m 54s", |
"news_duration_formatted": "5m 39s", |
"software_development_duration_formatted": "sem tempo", |
"reference_and_learning_duration_formatted": "20m 51s", |
"shopping_duration_formatted": "sem tempo", |
"utilities_duration_formatted": "20m 39s" |
}, |
{ |
"id": 1515484800, |
"data": "2018-01-09", |
"productivity_pulse": 68, |
"very_productive_percentage": 60,4, |
"product_percentage": 0,5, |
"neutral_percentage": 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_hours": 2,78, |
"very_productive_hours": 1,68, |
"product_hours": 0,01, |
"neutral_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, |
"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", |
"product_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" |
} |
] |
visualizar rawsummary.json hospedado com ❤ por GitHub
Etapa 4: Prototipagem
Grande Prêmio no Raspberry Pi Contest 2017