Implementation of the Pomodoro technique on the ESP-32 microcontroller.
Each transition between work and rest cycle is indicated by one or multiple physical stimulus (melody and/or color).
A display indicates the progression of the timer and double as an NTP clock.
Pomodoro is a time management technique that use a timer to break down task and rest period.
| Type | Designation | Quantity |
|---|---|---|
| System on a chip | ESP-WROOM-32 | 1 |
| 4 digit 7 segment display | HS420561K-32 | 1 |
| 8-bit shift register | SN74HC595N | 1 |
| Transistor | PN2222 | 4 |
| Diode | 3 | |
| Passive buzzer | 1 | |
| Momentary Switch | 1 | |
| Resistor | 220 Ω | 11 |
| Resistor | 4.7 kΩ | 4 |
You might have notice that it's not the prettiest way to use a 4-digits seven-segments display.
Initially I wanted to use one shift-register per digit, but as I found only one SN74HC595N on my parts bins, I ultimately decided to make do. The result is a bit messier but works.
This software make use of the two core of the ESP-32, and it's FreeRTOS implementation to have two tasks:
Ignoring the common library use in almost every project (like stdint.h, Arduino.h, esp32-hal-ledc.h or HardwareSerial.h), the code make use of:
To ease the transition between physical segment and binary/hexadecimal code, I created a small HTML tool tool/SevenSegmentDisplayValue.html.
