3 Punkte von GN⁺ 2025-03-30 | 1 Kommentare | Auf WhatsApp teilen

Konzentrationstimer-Projekt auf ESP32-Basis

Ein Konzentrationstimer-Projekt mit ESP32, ePaper-Display und Drehregler. Der Code in diesem Repository ist nicht sofort einsatzbereit, da einige Assets und Schriftarten entfernt wurden, kann aber bei Bedarf angepasst werden.

Komponentenliste

  • ESP32 (verwendet wird ein AZDelivery ESP32 NodeMCU)
  • WaveShare 4,26-Zoll-e-Paper-Display-HAT, 800x480
  • KY-040-Drehencoder mit Taster
  • WS2812-LED (kann durch eine einfache RGB-LED ersetzt werden)
  • USB-C-Anschluss
  • 3D-gedrucktes Gehäuse
  • Widerstände und 0,1-uF-Kondensator

Ursprung des Projekts

Ich probiere gerne Techniken zur Produktivitätssteigerung aus und investiere jedes Jahr Zeit in Projekte, die anderen helfen können. Mit meiner Erfahrung als Elektronikingenieur wollte ich ein physisches Gerät bauen und habe diesen Konzentrationstimer entwickelt, um die Zeitmanagement-Probleme eines Freundes zu lösen.

Gründe für die Bauteilauswahl

ePaper-Display
  • Gewünscht war ein Display ohne Hintergrundbeleuchtung; für das 4,26-Zoll-Display fiel die Wahl aus folgenden Gründen:
    • hervorragende Auflösung
    • passende Größe
    • Unterstützung für teilweises Aktualisieren
Drehencoder
  • Als intuitive Eingabemethode wurde ein Drehregler gewählt; zur Glättung des Signals wurde ein 0,1-uF-Kondensator hinzugefügt.
LED
  • Anfangs war keine LED geplant, aber um die Zurückhaltung des Displays zu ergänzen, wird eine WS2812-LED verwendet, um verschiedene Zustände anzuzeigen.

Gehäusefertigung

  • Das Gehäuse besteht aus zwei Teilen; beim Drucken gibt es ein Problem, bei dem sich die obere Kante leicht verzieht. Um das zu lösen, wurden Gummifüße und zusätzliches Gewicht hinzugefügt.

Software

  • Geschrieben in C++ unter Verwendung des Arduino-Frameworks. Das Display wird mit der Bibliothek GxEPD2 angesteuert, und ein Teil des Projektcodes wurde mit Hilfe von KI erzeugt.

Verwendung des Geräts

  • Beim Start des Geräts kann in den Modus zum Ändern der Einstellungen oder zur Auswahl von Presets gewechselt werden. Sobald der Timer startet, blinkt die LED und auf dem Bildschirm wird eine Nachricht angezeigt. Man kann weiterarbeiten oder eine Pause beginnen; nach einigen Wiederholungen wird eine längere Pause gewährt.

Entwicklung

Pin-Mapping
Drehencoder (KY-040)
  • CLK: 32
  • DT: 21
  • SW: 14
ePaper-Display (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 Kommentare

 
GN⁺ 2025-03-30
Hacker-News-Kommentare
  • Ich mag dieses Projekt wirklich sehr. Das UI ist äußerst ansprechend und gut gestaltet. Scheint eine passende Wochenendaktivität zu sein.

    • Falls du nach einem Hackathon-Projekt suchst: Das E-ink-Ökosystem ist inzwischen weit genug entwickelt, um gut darauf zu programmieren. Claude/KI kann die APIs leicht nutzen.
    • Menschen stellen E-ink-Displays im Allgemeinen lieber ins Wohnzimmer, weil sie weniger ablenken als Displays mit Hintergrundbeleuchtung.
    • E-ink und Pomodoros sind jeweils für sich Interessen von mir.
  • Projekte vom Typ „Gerät“ sind immer interessant. Selbst wenn das Ziel einfach ist, sind sie oft am herausforderndsten.

    • Mir gefällt die Wahl des Displays, und es ist gut, dass Zweck und Benutzbarkeit berücksichtigt wurden.
    • Ein paar Anmerkungen zum Objektdesign:
      • Wenn der Knopf oben auf dem Gerät breit und flach wäre, könnte das Display mittig platziert und das Gerät kleiner gemacht werden.
      • Ecken und Fillets lassen Dinge elegant wirken. Ein kleines Detail, das aber einen großen Unterschied macht.
      • Wenn es im Menü immer drei Optionen gibt, würde ich vorschlagen, statt eines Knopfs drei Tasten oben anzubringen.
      • Mit halbtransparentem Filament könnte man schöne „Lichtleiter“-Teile herstellen.
    • Ich frage mich, ob für das Knopfdesign OpenSCAD verwendet wurde. Das Muster des Knopfs wirkt so, als sei es programmatisch gut erzeugt worden.
  • Dass sich auf drei verschiedene Anwendungsfälle konzentriert wird und Statistiken angeboten werden, ist ein tolles Extra.

    • Es wäre gut zu erwähnen, dass Pomodoro seinen Namen von einem physischen Timer mit Drehencoder hat.
  • Jemand, den ich kenne, wollte ein Unternehmen rund um einen physischen Pomodoro-Timer gründen.

    • Eine nützliche Zusatzfunktion für Leute, die ihn im Büro verwenden, wäre eine LED oben am Gerät, damit man den Status sehen kann, ohne auf das Display zu schauen.
  • Tolles Projekt. Ich würde empfehlen, sich die Bibliothek LVGL anzusehen. Sie ist als Embedded-Grafikbibliothek nützlich, um UIs zu bauen.

  • Die gesamte Idee von Pomodoro stammt von einem Küchentimer. Das beste UX findet man bei physischen Küchentimern.

  • Ich überlege gerade, wie man einen physischen Pomodoro-Timer bauen könnte. Es wäre gut, wenn die verbleibende Zeit nicht sichtbar wäre. Ich nutze die App Visual Timer.

  • Ich liebe dieses Projekt sehr. Es bringt mich auf die Idee, meine eigenen Produktivitätstools auf ein echtes Gerät zu portieren.

  • Jedes Mal, wenn ich etwas im Zusammenhang mit einem Pomodoro-Timer sehe, muss ich an ein Interview mit einem YC-Gründer denken. Das Unternehmen ging innerhalb eines Jahres pleite, und seitdem konnte ich diese Technik nicht mehr respektieren.