Inspiration
Our project was inspired by a simple problem we face all the time: wanting to focus, but constantly getting distracted by our phones. We wanted to create something that physically removes that temptation while also making focus measurable, not just assumed. That led us to build a phone lockbox with Arduino that can secure a phone for a set period of time and use sensors to track how “locked in” a user really is during a study session.
What it does
LockedIn is a physical lockbox that holds your phone hostage during a study session. You set a timer using two buttons, drop your phone inside, and hit start. The box locks via a servo motor and a countdown begins on the LCD screen. If a microphone inside the box detects noise above a certain threshold, meaning you're talking, watching videos, or otherwise not studying, it adds a one-minute penalty to your remaining time. When the timer finally runs out, the LCD prompts you to scan your card, where you have to scan an RFID (usually our Penncards) to unlock it, adding one final layer of accountability.
How we built it
We used an Arduino Uno R4 WiFi. The core components are a 16x2 LCD display with an I2C backpack for the timer, three buttons to set the time and start the session, a KY-038 microphone module for noise detection, an MFRC522 RFID reader and card for the unlock mechanism, a servo motor to physically block the lid latch, and two LEDs to indicate locked and unlocked states. Everything is wired through a breadboard. The software is written in Arduino C++.
Challenges we ran into
Our biggest hardware challenge came pretty late: the linear actuator we had planned to use as the locking mechanism didn't arrive in time, so we had to pivot to a servo motor and redesign the physical locking mechanism from scratch. On the software side, we ran into a subtle bug where the LCD timer display kept overwriting our "Time's up — scan your card" message because updateTimer() was writing to the screen on the same loop iteration it set timerDone = true. We fixed it by adding an early return to stop the LCD write the moment the timer expires. We also had to carefully tune the microphone threshold by watching raw analog values in the Serial Monitor, since the KY-038 is sensitive to ambient noise and needed calibration for a realistic study environment.
Accomplishments that we're proud of
We're proud that the final product actually works end-to-end as intended! You set a time, lock your phone, get penalized for noise, and can only get it back with your card. That full loop being functional and reliable feels like a real accomplishment. We're also proud of how cleanly we were able to pivot when the linear actuator didn't arrive. Rather than scrapping the locking mechanism, we redesigned it around a servo in a matter of hours and built a physical bolt arm that works just as well. Most of all, we built something we'd actually use.
What we learned
In our labs, we only really did one thing at a time, so in this project, we learned how to integrate multiple hardware systems on a single microcontroller without them interfering with each other. We learned that real hardware never goes exactly to plan and that being able to adapt quickly is as important as the original design.
What's next for ESE 1900 Team 1
We'd like to add Blynk integration and a killswitch puzzle just in case someone really needs to get to their phone in the middle of a session. We'd like for it to be a pretty complicated puzzle so that the user can't get in too easily. We'd also like to eventually switch to the linear regulator when it arrives.
Built With
- arduino
- blynk
Log in or sign up for Devpost to join the conversation.