One of the annoyances in my life that could be reduced by technology is the process of doing my laundry. My washing machine is two floors away from me, a trip that I do not want to make if I don't have to.The Solution
The solution to my laziness is to create some kind of system that an notify me when the washing machine is done. The first step to designing a device to do this is to think about what would trigger it.
There are multiple things that my specific washing machine does when it is done: play a short chime, stop spinning its barrel, and display the word "End" on its screen. I chose to have my device detect when the word "End" was displayed on the screen because it would be the most consistent. The drier that is next to it, made by the same brand, also plays the same chime when it is done. If I were to have a microphone listening for the chime, I might get false positives. If I were to use a vibration detector to detect when the barrel of the washing machine has stopped spinning, I also might get false positives because the machine stops and changes directions multiple times during its cycles.
Washing Machine Displaying "End"
I decided to go with using OCR (optical character recognition) to detect when the washing machine displayed the words "End" on it's screen. Now, I just needed a way to communicate the data to the user, who would not be in the same room as the camera and could not have a wire running to it. I decided to use a notification system called pushover, which has an intuitive API that allows you to make notifications appear on your phone. I also used an LED on a particle argon, because many times I flip my phone over into do not disturb mode when I am working on something.
Putting It All Together
For my final integration, I used a python program running on my laptop that would constantly look for the word "End". When the program detected the word, it would tell pushover to send a notification to my phone, and use the Particle API to turn on my led.