The Idea is an Alarm with the Pomodoro Timer Integrated with it.
Alarm
You can view real time and set alarm.
Pomodoro Timer
The Concept of Pomodoro is to split your work load into intervals of 25 minutes separated with small breaks of 5 minutes and every 4 rounds of this interval-break cycle you will have a long break of 15 or 20 minutes.
CAD Process
Measure the Dimensions of the used Components.
Import the CAD files of the used components.
Imaging the design assembly.
Start the design with a rough estimation of the dimensions and modify according to the assembly until the final design is reached.
Tools
Design: Fusion 360.
Measurement: Manual Caliper.
CAD Library: GrabCAD.
Fabrication Process
Export the Design as DXF from Fusion 360.
Import the DXF files into LaserCAD.
Apply Cutting Parameters.
Download to the Laser Cut Machine.
Start Cutting
Tools and Software
Design and Nesting: Fusion 360.
Laser Cutting Preparation: LaserCAD.
Material: Plywood.
Joints: Bolts and Nuts.
Machine: Malky ML64 CO2 Laser Cutter.
Screw Driver
Electrical Circuit
Arduino Uno: Controller.
LCD I2C: Output for Data Display.
RTC Module DS3231: Input for Time Tracking. "Represented by the top LCD".
Keypad 4x3: Input for Data Entry
Buzzer: Output.
Jumper Wires.
Small Breadboard.
9v Power Adapter (Tried 5v Adapter but the LCD Backlight wasn't that good).
Tools Used
Arduino IDE for Arduino Programming.
TinkerCAD for Circuit Simulation.
Electronic Circuit in TinkerCAD
Physical Wiring
The Power Source was a 9v Power Adapter. which I found suitable with my circuit as the LCD only shows Data when I plugged the 9v adapter.
Code Description by the Order of Images:
Import Libraries of (Keypad, RTC Module, and LCD) and Defining them to Arduino and Creating Variables that will be used.
Continue Definition of Variables and Initializing the LCD.
Initializing RTC to get Current Time, and Print the Menu on LCD to Select the Mode (Alarm or Pomodoro).
Define the Pomodoro Feature in Main loop.
Define the Alarm Feature in the Main loop and get the alarm reading from keypad.
Continue getting the alarm reading.
set the alarm beeping condition.
Display Alarm on LCD.
Display Current Time on LCD using RTC Module.
Continue Displaying the Time.
Continue Displaying the Time.
Creating the Work Mode and Short Break Mode for Pomodoro.
Creating Long Break Mode and the Display of Number of Pomodoros.
Creating the Melody for the Alarm.
Project Integration:
Test LCD Separately with Serial Monitor.
Test RTC Module Separately with Serial Monitor.
Test the Keypad with LCD to Read Input and Display Time from RTC Reading.
Test LCD to Display with Pomodoro Feature Separately.
Assemble the Whole Circuit and Test the Code.
Assemble the Components with Enclosure.
To make the code work without pausing so I have to use millis() function in Arduino so I have to learn it.
to get the time reading form keypad and display it after each press, so i created a separate code with the keypad and LCD to test this feature.
Keypad Test with LCD
Make the Alarm more smart by setting multiple alarms.
Making a stop watch.
Make Pomodoro feature more flexible by entering the period of the different modes.