HN vorgestellt: Physischer Pomodoro-Timer mit ESP32 und E-Paper-Display
(github.com/Rukenshia)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
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.
Projekte vom Typ „Gerät“ sind immer interessant. Selbst wenn das Ziel einfach ist, sind sie oft am herausforderndsten.
Dass sich auf drei verschiedene Anwendungsfälle konzentriert wird und Statistiken angeboten werden, ist ein tolles Extra.
Jemand, den ich kenne, wollte ein Unternehmen rund um einen physischen Pomodoro-Timer gründen.
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.