HN destacado: temporizador Pomodoro físico con ESP32 y pantalla e-paper
(github.com/Rukenshia)Proyecto de temporizador de enfoque basado en ESP32
Es un proyecto de temporizador de enfoque que usa ESP32, una pantalla ePaper y un dial giratorio. El código de este repositorio tiene algunos recursos y fuentes eliminados, por lo que no es fácil usarlo tal cual, pero puede modificarse según sea necesario.
Lista de componentes
- ESP32 (se usa un AZDelivery ESP32 NodeMCU)
- Pantalla e-Paper HAT WaveShare de 4.26 pulgadas, 800x480
- Encoder rotatorio KY-040 y botón
- LED WS2812 (puede sustituirse por un LED RGB simple)
- Conector USB-C
- Carcasa impresa en 3D
- Resistencias y capacitor de 0.1uF
Origen del proyecto
Le gusta probar técnicas para mejorar la productividad y cada año dedica tiempo a proyectos que puedan ayudar a otras personas. Aprovechando su experiencia como ingeniero electrónico, quiso crear un dispositivo físico y terminó haciendo un temporizador de enfoque para resolver los problemas de gestión del tiempo de un amigo.
Motivos de la elección de componentes
Pantalla ePaper
- Quería una pantalla sin retroiluminación, y eligió la pantalla de 4.26 pulgadas por las siguientes razones:
- Excelente resolución
- Tamaño adecuado
- Soporte para actualización parcial
Encoder rotatorio
- Eligió un dial giratorio como dispositivo de entrada intuitivo y añadió un capacitor de 0.1uF para suavizar la señal.
LED
- Al principio no planeaba usar LED, pero para complementar la sutileza de la pantalla utilizó un LED WS2812 para mostrar distintos estados.
Fabricación de la carcasa
- La carcasa está compuesta por dos partes, y al imprimirla hay un problema en el que el borde superior se deforma ligeramente. Para solucionarlo, se añadieron patas de goma y peso.
Software
- Está escrito en C++ y usa el framework Arduino. Controla la pantalla con la librería GxEPD2, y parte del código del proyecto fue generado con IA.
Cómo usar el dispositivo
- Al iniciar el dispositivo, es posible entrar al modo de cambio de configuración o al modo de selección de presets. Cuando el temporizador comienza, el LED parpadea y aparece un mensaje en la pantalla. Se puede continuar trabajando o iniciar un descanso, y después de varias repeticiones se concede un descanso más largo.
Desarrollo
Mapeo de pines
Encoder rotatorio (KY-040)
- CLK: 32
- DT: 21
- SW: 14
Pantalla 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 comentarios
Comentarios de Hacker News
Me gusta mucho este proyecto. La UI es muy atractiva y está bien diseñada. Parece una actividad ideal para el fin de semana
Los proyectos de tipo "dispositivo" siempre son interesantes. Aunque la meta sea simple, muchas veces son los más desafiantes
Enfocarse en tres casos de uso distintos y ofrecer estadísticas es un gran extra
Conozco a alguien que intentó empezar un negocio con un temporizador pomodoro físico
Gran proyecto. Recomiendo revisar la biblioteca LVGL. Es útil para crear UI como biblioteca gráfica embebida
Toda la idea de pomodoro viene de un temporizador de cocina. La mejor UX se puede encontrar en un temporizador de cocina físico
He estado pensando en cómo hacer un temporizador pomodoro físico. Me gusta que no se vea el tiempo restante. Estoy usando la app Visual Timer
Me encanta este proyecto. Me hace pensar en portar mis propias herramientas de productividad a un dispositivo real
Cada vez que veo algo relacionado con un temporizador pomodoro, me acuerdo de una entrevista con un fundador de YC. La empresa quebró en un año y desde entonces no he podido respetar esta técnica