Arduino Eye Strain Alarm

by kylehardinge in Circuits > Arduino

4586 Views, 19 Favorites, 0 Comments

Arduino Eye Strain Alarm

Cover.png

With the COVID quarantine moving life online, I now spend many hours looking at my computer screen. Whether I'm doing school virtually, connecting with friends and family, or working on projects, all of these things keep me looking at my screen, as I am doing now. Because of this, sometimes my eyes start to hurt and my vision blurs from focusing on the screen for too long. I decided to make this device to remind me to look away from my screen at regular intervals during the day that would not be just another alarm on my phone. Hence, the Arduino Eye Strain Alarm was born.

Materials

IMG_3324.JPG
IMG_1910.JPG
IMG_3325.JPG

Components needed for this project:

  • 3D printed parts
  • Arduino Nano without headers
  • Passive buzzer
  • SPDT slide switch
  • Common Cathode RGB LED
  • 2x 220 ohm resistors
  • 2x M3x10mm screws with tapered head
  • Felt
  • Some sort of foam about 3-5 mm thick
  • Thin (24-26 gauge) stranded wire
  • Various heat shrink tubing (I used 1, 1.5, and 2 mm sizes)

Tools to complete the task:

  • 3D printer
  • Soldering Iron
  • Wire strippers
  • Wire cutters
  • Desoldering pump (If your Arduino has headers)
  • Soldering helping hands(not necessary but very helpful)
  • Scissors

3D Printing

I printed the parts with Hatchbox black PLA on my Creality Ender 5. I printed with 0.2 mm layer height and used tree supports for the USB hole.

Schematic

schematic.png

Soldering Wires to the Components

IMG_3330.JPG
IMG_3329.JPG
IMG_3326.JPG

If your Arduino has headers, now would be the time to remove them. To start off with assembling the alarm, I cut wires to about 2.5 inches in length and soldered them to each of the leads of the LED, buzzer, and switch except for one of the outer leads of the switch because it is not needed. Don't forget to also solder the resistor to the cathode of the LED and one of the pins of the switch like I did. Once you have soldered the connections, add heat shrink tubing so nothing gets shorted.

Install Components

IMG_3332.JPG

Once you have finished the last step, you can go ahead and use hot glue or superglue (I used a combination of both) to secure the three components in the box. For me, the LED had a tight fit so I did not really need to use any glue. Wait until the glue dries before going to the next step so nothing gets moved around when soldering.

Finish Soldering

IMG_3335.JPG
IMG_3336.JPG

To finish the soldering, start by soldering all the ground leads together and soldering the ground to the Arduino. Once that is done, do the 5V wire then solder all of the data pins according to the schematic.

Arduino connections:

Switch pin without resistor -> 5V

All of the ground wires -> GND

LED red -> D6

LED green -> D7

LED blue -> D8

Switch data -> D4

Buzzer positive -> D10

Upload Code

IMG_3338.JPG

Now that all of the soldering is done, it is time to upload the code and make sure everything is soldered correctly. You can change the delay time as well as what the alarm sounds and looks like in the code to customize it to your liking. By default it is set to 15 minutes.

Close the Box

IMG_1904.JPG
IMG_1905.JPG
IMG_1909.JPG
IMG_1911.JPG
IMG_1908.JPG

Now that you have checked that it works, push the Arduino into the case and place a piece of foam on it. I designed it this way so that later it could be disassembled and the parts used again. After everything is in place, screw the lid on using the two M3x10mm screws. For me the tolerances were kind of tight so I used a knife to widen the hole. Finally, glue a piece of felt on the bottom so it does not scratch the surface it is placed on.

Finish

Eye strain alarm test

Now you have your very own eye strain alarm that you can use to remind you to look away from your screen so your eyes don't get strained. One improvement I already recognize would be to make the USB port have a more secure fit by reducing the thickness of the wall of the printed box. If you have any questions or suggestions, leave them in the comments and I will do my best to answer them.