This is a DIY timer that ensures you wash your hands for at least 20 seconds, which is proven to kill the coronavirus. Why make this timer instead of just singing "Happy Birthday" twice? Because it's fun to engineer your own custom solution and learn about coding while you're at it. Plus, singing the same song gets boring.
How does it work? An infrared proximity sensor starts a 20-second countdown. The display shows the time remaining. When 20 seconds have passed, the timer beeps, and the display changes to notify the user that they can rinse their hands. This project applies key coding fundamentals to solve a real-world problem, so it's suitable as an introduction for new coders, or a review to strengthen understanding.
A MODI Expert Kit is used, but the concepts could be adapted and used with other tools like the Arduino, micro:bit, etc. The MODI Expert Kit has 13 different types of smart, interchangeable, programmable robotics modules. MODI modules are ideal for this project because they can be coded with a simple drag-and-drop interface, and they are self-contained so they do not have exposed electronic components. It's also easy to add more functionality to a project by connecting more modules.
The first challenge was how to start the timer at the right time (when starting to lather) without touching it. It was solved by using the infrared module as a proximity sensor.
Another consideration was not triggering the proximity sensor unintentionally, by objects within its range or hands straying in its path. This was addressed by limiting the maximum detection distance.
Also, in noisy environments, it might be hard to hear the beeps from the speaker. This was solved by using an LED that blinks red while the timer is counting down and changes to a green light when the countdown has completed.
Here's a video of the final product (without the LED)
Here's the final code:
And here's a more detailed explanation of the concepts, the approach, and live coding.
If anyone has any questions about the project, please let me know. I hope this was helpful!