3 puntos por GN⁺ 2025-03-30 | 1 comentarios | Compartir por WhatsApp

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

 
GN⁺ 2025-03-30
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

    • Si estás buscando un proyecto para un hackatón, el ecosistema de E-ink ya está lo suficientemente maduro como para programarlo. Claude/AI puede usar la API fácilmente
    • En general, la gente prefiere poner pantallas E-ink en la sala porque distraen menos que las pantallas con retroiluminación
    • E-ink y los pomodoros son, cada uno, intereses míos
  • Los proyectos de tipo "dispositivo" siempre son interesantes. Aunque la meta sea simple, muchas veces son los más desafiantes

    • Me gusta la selección de la pantalla y que se haya considerado el propósito y la usabilidad
    • Algunas notas sobre el diseño del objeto
      • Si la perilla fuera ancha y plana sobre la parte superior del dispositivo, se podría centrar la pantalla y hacer el dispositivo más pequeño
      • Las esquinas y los filetes hacen que las cosas se vean refinadas. Es un detalle pequeño, pero hace una gran diferencia
      • Si el menú siempre tiene tres opciones, sugeriría poner tres botones arriba en lugar de una perilla
      • Con filamento translúcido se pueden hacer piezas geniales de "conducción de luz"
    • Me pregunto si se usó OpenSCAD para el diseño de la perilla. El patrón de la perilla parece estar muy bien generado de forma programática
  • Enfocarse en tres casos de uso distintos y ofrecer estadísticas es un gran extra

    • Creo que estaría bien mencionar que pomodoro toma su nombre de un temporizador físico con codificador rotatorio
  • Conozco a alguien que intentó empezar un negocio con un temporizador pomodoro físico

    • Una función adicional útil para quienes lo usan en la oficina sería poner LEDs en la parte superior del dispositivo para poder saber el estado sin mirar la pantalla
  • 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