-
-
Backup contacts get a text: the real text it sent
-
Family can follow every alert: the dashboard
-
Cover (SoundSense, No alarm goes unseen.)
-
Our working prototype: the real breadboard photo
-
One small device. Two buttons.: the case render
-
The smoke alarm goes off: Maria’s room
-
If no one answers, others come: the neighbourhood
-
The same circuit, in a case: the render of the board inside the case
Inspiration
Meet Maria. She's 74, hard of hearing, and lives alone in Calgary. At 2:14 AM her smoke alarm goes off while she sleeps. A flashing light might wake her. If it doesn't, nobody else finds out.
Maria isn't rare. 1.6 million Canadians live with a hearing disability, most people in their 70s have some hearing loss, and many seniors live alone. The Calgary Fire Department already hands out special alarms because regular ones don't work for everyone. We wanted to cover the gap they leave: other home sounds, and what happens when nobody answers.
What it does
SoundSense listens for the sounds that matter at home and turns them into light.
- Hears 26 home sounds, grouped into 7 alerts: smoke alarm, glass breaking, baby crying, siren, doorbell or knock, phone ringing and kettle.
- Shows each one as a light, with its own colour and rhythm, so it works even if you can't tell colours apart.
- Two buttons: I'm OK clears the alert. Get help texts everyone right away.
- If no one answers an urgent alert in 60 seconds, it texts her mom, a neighbour and other backup contacts with what happened, where, and what to do.
- A live dashboard lets family see every alert: what was heard, when, and who answered.
How we built it
- Listening: a Python program uses the laptop mic and YAMNet, a sound classification model, to name sounds in real time. We map its labels to our 7 alerts.
- Device: an Arduino Uno with an RGB LED, a buzzer and two buttons, talking to the laptop over serial. The listener sends the alert type, and the Arduino sends back OK or HELP when a button is pressed.
- Dashboard: a Flask web app shows live alerts and runs the 60 second countdown. It sends texts through Twilio SMS.
- Privacy: audio is analysed on the laptop and never recorded or saved. Only the alert details are kept.
Challenges we ran into
- Hardware debugging: our LED wouldn't light because its ground was in the wrong breadboard row, and uploads failed until we learned the Serial Monitor was holding the port.
- Two buttons, one protocol: adding Get help meant the Arduino, the listener and the dashboard all had to agree on a new message without breaking I'm OK.
- Three people, one repo: merging the listener, the dashboard and the Arduino code during a hackathon meant resolving a lot of conflicts quickly.
- Not crying wolf: only urgent sounds (like smoke alarms) should text people, so we had to decide carefully which alerts escalate.
What we learned
- How to turn a general sound model into something specific and useful.
- That accessibility is more than colour. Rhythm, simple buttons and plain-language texts matter just as much.
- How to design for the worst moment: 2 AM, asleep, alone.
What's next
- A bed shaker to wake people who sleep through light.
- A chain of contacts that tries the next person if the first doesn't answer.
- Saving the alert history so families can look back anytime.
- One small box with no laptop needed.
- Working with the Calgary Fire Department so alerts can reach them directly.