This is our project for Silicon Garage (ESE 1900) class. Allen's roommate has a hard time waking up in the morning so we wanted to build something to help him out. Natural sun light is one of the best ways to wake up and maintain a healthy sleep schedule, that is why we wanted to incorporate a blinds opening system in out design.
Special thanks to my teammate Allen for their collaboration on this project.
What it does
DaClock is an alarm clock with a built-in automated blinds opener. Users set an alarm for their desired wake-up time, and when the alarm triggers, a buzzer sounds while a stepper motor begins rotating. The motor spins a 3D-printed pulley that opens the blinds, allowing natural light to enter the room. To turn off the alarm, the user must scan an RFID card. At night, when low light is detected by a photoresistor, the motor reverses direction to automatically close the blinds.
How we built it
An LCD screen is used to display the current time. The buzzer is connected to the Arduino and activates when the current time matches the set alarm. At the same time, a stepper motor—controlled through a motor driver module connected to the Arduino—begins spinning. The motor is attached to a pulley wheel that opens the blinds. To stop the buzzer, the user must tap their RFID card. The system also includes a photoresistor mounted facing outside the window, which detects low light conditions to determine when it gets dark. To improve the overall appearance of the device, we laser-cut an enclosure. The LCD screen and RFID reader are mounted on the front panel, while openings in the back accommodate the motor, power supply, and photoresistor.
Challenges we ran into
Initially, we planned to build the system using a numeric keypad, requiring the user to solve a math problem to stop the alarm. However, the keypad proved to be too sensitive and frequently registered inputs even when no buttons were pressed. We then attempted to implement an IoT-based solution in which the user would log into a computer to answer the math question, but we were unable to establish reliable communication between the Arduino and the computer to read the input.
We also encountered several hardware challenges. The Arduino ran out of available digital pins, and we were unable to successfully configure the analog pins for digital use. Additionally, the motor did not receive sufficient power to spin reliably. To address this, we introduced a second Arduino dedicated solely to controlling the motor.
Another challenge was insufficient tension in the ball chain used to open the blinds. Although we taped the pulley to the wall to stabilize it, the mechanism remained somewhat unstable and wobbly.