HN em destaque: temporizador Pomodoro físico com ESP32 e tela e-paper
(github.com/Rukenshia)Projeto de temporizador de foco baseado em ESP32
Um projeto de temporizador de foco usando ESP32, display ePaper e um dial giratório. O código deste repositório teve alguns recursos e fontes removidos, então é difícil usá-lo imediatamente, mas pode ser adaptado conforme necessário.
Lista de componentes
- ESP32 (usado o AZDelivery ESP32 NodeMCU)
- Display e-Paper HAT WaveShare de 4,26 polegadas, 800x480
- Encoder rotativo KY-040 com botão
- LED WS2812 (pode ser substituído por um LED RGB simples)
- Conector USB-C
- Gabinete impresso em 3D
- Resistores e capacitor de 0.1uF
Origem do projeto
Gosta de experimentar técnicas para melhorar a produtividade e, todos os anos, dedica tempo a projetos que possam ajudar outras pessoas. Com base na sua experiência como engenheiro de eletrônica, quis criar um dispositivo físico e acabou desenvolvendo um temporizador de foco para resolver os problemas de gestão de tempo de um amigo.
Motivos para a escolha dos componentes
Display ePaper
- Queria um display sem backlight, e escolheu o display de 4,26 polegadas pelos seguintes motivos:
- excelente resolução
- tamanho adequado
- suporte a atualização parcial
Encoder rotativo
- Escolheu um dial giratório como dispositivo de entrada intuitivo e adicionou um capacitor de 0.1uF para suavizar o sinal.
LED
- Inicialmente não havia plano para usar LED, mas, para complementar a sutileza do display, foi usado um LED WS2812 para indicar vários estados.
Fabricação do gabinete
- O gabinete é composto por duas partes, e há um problema em que a borda superior entorta ligeiramente durante a impressão. Para resolver isso, foram adicionados pés de borracha e peso.
Software
- Foi escrito em C++ e usa o framework Arduino. O display é controlado com a biblioteca GxEPD2, e parte do código do projeto foi gerada com IA.
Como usar o dispositivo
- Ao iniciar o dispositivo, é possível entrar no modo de alteração de configurações ou de seleção de presets. Quando o timer começa, o LED pisca e uma mensagem é exibida na tela. É possível continuar trabalhando ou iniciar um descanso e, após algumas repetições, é dado um período de descanso mais longo.
Desenvolvimento
Mapeamento de pinos
Encoder rotativo (KY-040)
- CLK: 32
- DT: 21
- SW: 14
Display ePaper (GxEPD2_426_GDEQ0426T82, WaveShare 4.26" b/w)
- BUSY: 4
- RST: 16
- DC: 17
- CS: 5
- CLK: 18
- DIN: 23
LED (WS2812)
- DIN: 25
1 comentários
Comentários do Hacker News
Gostei muito deste projeto. A UI é muito atraente e bem projetada. Parece perfeito como atividade de fim de semana
Projetos do tipo "dispositivo" são sempre interessantes. Mesmo quando o objetivo é simples, muitas vezes são os mais desafiadores
É um ótimo toque extra focar em três casos de uso diferentes e fornecer estatísticas
Conheço alguém que tentou abrir um negócio com um timer pomodoro físico
Projeto bacana. Recomendo dar uma olhada na biblioteca LVGL. Ela é útil para criar UI como biblioteca gráfica embarcada
Toda a ideia do pomodoro vem de um timer de cozinha. A melhor UX pode ser encontrada em timers de cozinha físicos
Estou pensando em como fazer um timer pomodoro físico. Gosto da ideia de não mostrar o tempo restante. Estou usando o app Visual Timer
Adorei muito este projeto. Isso me fez pensar em portar minhas próprias ferramentas de produtividade para um dispositivo real
Sempre que vejo algo relacionado a timer pomodoro, lembro da entrevista com um fundador da YC. A empresa faliu em um ano e, depois disso, nunca mais consegui respeitar essa técnica