Timer lock phone box
Smartphone addiction is a serious problem, specially in younger generations.
Ever been in a family gathering on a weekend all the Zoomers (Gen-z) in the family are on their phone? TimeOut Box is for you.
Do you doomscroll your social feeds first thing in the morning? TimeOut Box well snap you out of that bad habit.
Keep checking notifications during work and drifting away?
TimeOut Box Pomodoro feature will pace your consumption.
TimeOut Box aims to solve all this by offering a physical solution to this problem. Just put your phone(S) in the box and set a timer until you can take it out. Challenge yourself to complete the daily challenges. and watch out not to lose or you'll have to do the challenge.
Hand Drawn sketches
Started by measuring and adding up the dimensions of the components.
Sketched the panels on paper.
using Fusion360, I started to sketch the panels and defining it using constrains and measurements.
Extruded the sketches into parts and then assembled those parts to make sure everything will fit.
using GrabCad I downloaded all the electronic components to help with screw holes and other openings.
Exported Multiple DXF files from F360.
Using Laserworks I tried to make the parts fit on the least amount of plywood sheets possible.
1st iteration of side panel
3rd and final iteration of side panels
All Sketches
Turned all the bodies to components.
using join feature started assembling the parts.
Box Fully Assembled
Sliding Door Mechanism
Box consists of two compartments
Components Compartment
LCD & Encoder Assembly
Limit Switch Assembly + jumper sockets for accurate measurements
Part of the Fusion 360 Timeline - Download and check the file Below.
After exporting DXF from fusion, I used Laserworks to arrange the parts on the 30*50 Morn MT3050D CO2 Laser Cutter work area.
I tried to use as little material as possible, but in the same time I gave more space between parts because I couldn't fit everything on one sheet even with extreme nesting, so I opted to leave big gaps to get less burn effects on the parts.
I used masking tape to cover the whole surface of the 3mm plywood sheet. which helped get a cleaner cut and almost no burn marks at all.
I used speed of 15 mms and power of 80 to cut. (BLACK).
speed of 300 mms and power of 15 to engrave (BLUE).
Masking Tape applied on the sheet
Using 220 grit sand paper to remove the rest of the burn marks.
1st sheet in laserworks
2nd sheet in laserworks
1st sheet after cutting
1st trial of assembly.
a 360 look of the fully assembled box.
👈 Old Typography piece I did, I thought it was fitting for the concept of the project.
The device is pretty simple. it consists of:
Arduino UNO Board. (Brain).
Micro Limit Switch. (Input).
Rotary encoder KY-040. (Input).
4*20 LCD with I2C module. (Output).
5v Piezo Buzzer. (Output).
Used Wokwi to simulate the wiring and test the circuit. for my needs and the components I was using it was an amazing app. It helped me test my code virtually and iterate very fast on the project.
The device uses 5V adapter to operate.
🌐Check the project code and circuit on WOKWI
1st trials of connecting the components
components assembled into chassis and wired
Following the datasheet of the 20*4 LCD, KY-040 rotary encoder, and 5v buzzer. all of the used components are being powered by Arduino Pins.
The Device is powered using 9v adapter. it's enough to power all the components. it's pretty straight forward as Arduino will manage the power output to all the connected components.
Device Power ON
programing the functions of the project was a long and difficult road.
I started with the hardest feature (Pomodoro Timer / Complete features set). which was very difficult to get it to work the way I want. after spending multiple days on it and not being satisfied with the results, I started working on the (Timer / Minimum Features Set).
The timer was a bit easier, I was introduced to the concept of millis() instead of using Delay in Arduino code. which made it easier to calculate the timer duration.
I followed this guide to get the rotary encoder to function correctly using attachInterrupt() .
I also found this timer on YouTube so I studied it's functions and wrote my own. using arduino's IDE.
I found this guide very helpful to understand how to work with limit switches.
12th time the Charm!
used LiquidCrystal_12c Library.
tried to add as much comments as I can so I won't get lost in the code (it happened multiple times :D ).
Quick thought process breakdown:
the code starts by checking if the cover is closed or not.
if closed, it processed to the timer set-up screen.
users can set Hours, Minutes , and seconds using the rotary encoder.
the code calculates the Millis and starts the count down.
if at any moment the cover is open the timer is stopped and a message appears asking the user to close it again.
Check the Code :
Since I was testing my circuit and code on Wokwi, it was pretty straight forward connecting to the same pins using color coded wires.
Modules integration
Demo Video
What Can I say :) ..
I would like to thank our supervisor Ahmed Abdelnaser and also Nada for their help and great feedback through out the whole diploma and especially during the final project.
I would like to extend the thanks to M. Askar, he helped me a lot with the code for the pomodoro timer and the streak counter. which I'm still working on.
Also a big thanks my colleagues and friends in Group A3 & A4 for everything ✌.
Big thanks to the amazing Mohamed Tarek from group A1 on his time and help on the limit switch operation.
Also a thank you to Omar from the fablab team .
overall a big thank you to San3a and fablab Egypt Team on an amazing educational experience .
Thanks everyone how answered my questions on slack 🔥
I tried to help and answer as much questions as I can on slack as well, Very excited to check my colleagues project.
Some tips I learned along this Journey: in no particular order
use masking tape over the plywood sheets before using the laser cutter to reduce burn marks.
use millis() instead of delay() so you won't block Arduino from executing other functions at the same time.
Add components from GrabCad while sketching to make sure all parts will fit .
upload code to GitHub as a new gist to embed it in google site.
Check "Last Minute engineer" and "Arduino get started ", great sites to understand different components and sensors with codes to check and test.
Ask early :D, Don't wait to the last minute when you're stuck to get help.
I would've continued to code the Pomodoro Mode.
and also work on the rest of the nice to have features.