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.