Inspiration

One of our team members had an experience. His washing machine died whilst he was away at work, and his clothes spent the day soaking in stagnant water. Had he known in advance that his washing machine was dying, he would not have allowed his clothing to soak all day in stagnant water. We set out to prevent this from happening again.

What it does

Our contraption analyzes a motorized device's amplitude frequency response of the power supply. In a nutshell, it attempts to predict when a motor is about to fail and warn the user via text message.

How we built it

We use the analog input on an Arduino to sample (a scaled down [simulated] version) of the power supply to a motor. We then use software (specifically a very light-weight implementation of the Fast Fourier Transform) to break the signal into its component frequencies. The device should then look at and compare the side lobes for a changing profile as this is one of the earliest indicators of imminent failure. If this is detected, then a message is sent to a Raspberry Pi acting as a central command server, triggering an SOS SMS to all interested parties (included at installation in the notification script).

Challenges we ran into

We started the project with the intent of using an Intel Edison development board for the brains, but several hours (and over a hundred browser tabs) later, our computers resolutely refused to communicate with the Edison. On day two, we switched to an Arduino Uno. Our next challenge was in finding a data source to emulate a failing motor. Every test did, and (as of the time of this writing) continues to inform us that the motor is not only dying but has died, been zombified and is currently out looking for brains. The third major challenge so far has been dealing with the low resolution mandated by extremely tight memory constraints (our entire signal analysis process uses less than two kilobytes).

Accomplishments that we're proud of

We are very proud of our signal processing implementation. The entire analysis process takes place inside the Arduino Uno, with the matlab script being used solely to display the data sent to the computer via a serial line. We are also excited to announce that our entire source code is available for download on github! Check out our repository at imminentthreat.me

What we learned

Hardware development is hard. But rewarding when things finally work! One of our younger members learned a host of new things about data processing (FFT...).

What's next for Imminent Threat

We want to transplant Imminent Threat to a platform with greater processing capabilities and memory assets, so we can run live tests with high resolution data. In particular, it would be beneficial to use a floating-point-based FFT with more bins to reveal the structure of the sidelobes. We are releasing all of the code as open source, so please take it and do something awesome! We are excited to see how this project grows, and would love to see it implemented in an industrial setting someday.

Imminent Threat: Don't let your laundry sit in stagnant water!

Built With

Share this project:

Updates