Inspiration
Antibiotic resistance is central to our team's research interests, one of our members works on antimicrobial peptides, and that passion resonated with the rest of the team, especially one CS student who worked as a nurse and saw firsthand how slow infection flagging is in practice. We were inspired by Émilie Bédard's lab at Polytechnique, whose work tracks how pathogens colonize and persist in NICU drains. The problem that stuck with us: the only reliable way to know a drain is contaminated is periodic lab testing, slow, expensive, and always after the fact. We wanted to build the cheap, continuous monitoring layer that fills that gap.
What it does
BioWatch is a physical sensor node that continuously measures temperature and turbidity in hospital sink drain water. Readings stream to a backend API where a decision-tree classifier converts them into a 0–100 risk score. That score, along with live sensor data, is displayed on both an on-device screen and a web dashboard, giving staff real-time visibility into which sinks pose outbreak risk and how urgently they need attention.
How we built it
An ESP32-S3 reads a turbidity sensor and a DS18B20 temperature probe and streams JSON over WiFi to a Raspberry Pi backend. The backend runs an ML risk classifier, a pipeline of mRMR feature selection and a decision tree, trained on a literature-calibrated dataset of drain conditions. A dashboard renders the live risk gauge, sparklines, and an alert panel. And we ran a sensor calibration experiment with a measured dilution series to characterize exactly what the turbidity sensor can and can't resolve fitting a curve with R², limit of detection, and repeatability.
Challenges we ran into
Machine learning and data pipeline part: pulling the data from multiple sources and the data ended up not being linear, so our initial plan to run LASSO and mRMR then an SVM failed. Hardware & UI/UX: We were getting some really high values for the measurement, due to the way our hardware works. We were perplex at first but were able to tune it once we understood what was the issue. Biology: correlate the data between environmental factors and biological outputs, so it is hard to have sensor data that detects antimicrobial resistance.
Accomplishments that we're proud of
We have a working product that detects exactly what we wanted (turbidity and temperature), allowing to remotely monitor water quality in real time. We are also quite proud that were able to deploy our app and have it available on a public domain (biowatch.tech).
What we learned
We learned how to use database APIs to retrieve data, clean it, and perform feature extraction and feature selection to identify the variables that are most predictive of the target outcome. We also explored techniques for handling non-linear systems. In addition, we gained practical experience deploying applications rather than limiting them to a localhost environment. We also learned how to connect multiple hardware components to a backend system in order to collect real-world measurements, process the data, and display the results through a frontend interface.
What's next for BioWatch
Real calibration against actual lab ground truth by closing the two-layer loop by tuning sensor thresholds to qPCR/sequencing results from real drain samples. Characterizing the confounders that fool a turbidity sensor in real drain water (bubbles, color, debris). Adding uncertainty-aware predictions so the dashboard shows a confidence band, not false precision. And a power analysis to estimate how many drain samples a real validation study would actually need, turning our prototype into the front end of a deployable infection-control tool.
Log in or sign up for Devpost to join the conversation.