I was asleep late in the morning. The carbon monoxide alarm went off, and my dog was panicking and crying out of fear because he didn't understand what was happening. It turned out that the alarm had just reached the end of its life cycle, but if I hadn't been there, it would have still caused my dog unreasonable levels of stress by ringing the entire day until my parents got back.
What it does
It is an IoT audio recorder meant to be mounted close to a house alarm of any sort that itself isn't network-capable. Once it sounds, the recorder detects that the ambient sound has exceeded a threshold and sends a log message to the server. The mobile app allows the user to scan the device's QR code to pair with it. It was intended to ping the server on a timed basis and retrieve any new notifications to be immediately displayed to the user. So far, the audio recorder only runs as a python script on a laptop, and the timed notification feature has not been implemented yet.
How I built it
The audio recorder is written with the pyaudio module in python (Benjamin Yan). A sample sawtooth alarm is coded in C with PortAudio (Benjamin Yan). The Android app was developed primarily by Ramaseshan Parthasarathy. Vamshikrishnan Balakrishnan developed the About Me webpages.
Challenges I ran into
Making the app network-capable was a huge challenge. It took roughly 6 hours to identify a minor bug hidden in the semantics of the code.
Accomplishments that I'm proud of
Ben is proud of learning audio programming. Ram is proud of learning network-centric programming Android and developing his UI development skills. Vam is proud of learning web technologies such as HTML and CSS. I myself am proud of the speed of my development of the server and its overall stability.
What I learned
I learned the hazards of underestimating the time that certain software engineering tasks will take.
What's next for SafeAlarm
We're not quite sure yet.