Inspiration
Being students who prefer to study on campus or in the library, it is really relevant for us to see what is actually busy and what isn't. The university obviously has designated spaces like a "quiet zone," but occasional whispering or just sitting in a bad location with a bad temperature means it can get super uncomfortable, or the actually good areas are just full. We wanted to create something really simple that shows what the best spots on campus are right now, and also gives organizers proper analytics.
What it does
Ideally we would have loads of cheap nodes, but due to time constraints, we built out a core MVP node. A node takes diagnostic data straight from a desk. It assigns it to a room, tells the user exactly which desks are occupied, and gives the overall temperature and noise average of the room so you know the vibe before you go.
Tech Stack
- Hardware: Arduino (C++)
- Database: MongoDB
- Backend: Python / FastAPI
- Frontend: React ##tracks -hardware tracks -mongodb track -hackiesthack track
How we built it
We got the sensors connected together and wrote the software in C++ using Arduino drivers to read the correct diagnostic data. For the backend, we used FastAPI, pulling that live data and collating it into useful models for the frontend to present. We also hooked it up to MongoDB so snapshots of that data could be saved every few minutes for historical analytics and drawing graphs later.
Challenges we ran into
- The sensors and components weren't exactly what we were expecting (in size and amount), which led to us having to change our initial ideas on the fly.
- Some sensors were just straight-up broken.
- A bit of inexperience and mishaps bridging the gap between our code and the physical hardware execution.
- When adding MongoDB, we had to restructure the database to decouple hardware IDs so moving a desk wouldn't mess up the room averages. This broke the backend for a bit and the analytics wouldn't add up until we fixed it.
- The physical sensors weren't finished until much later, so the backend and frontend had to rely heavily on making really accurate mock data and just hope the integration worked at the end.
Accomplishments that we're proud of
- Pulling off our first proper hardware integration.
- Actually building something that solves a real problem we face.
What we learned
- How to actually code for Arduino.
- Basic MongoDB implementation.
- How to connect a full web tech stack directly to physical hardware.
What's next for Atmosense
- More sensors and a proper network module!!!!! We want a real networking implementation so a proper live feed of multiple rooms is available without needing cables.
- Expanding the app to have a full building option, not just a room option, with smoother analytics and a better data module.
- Possible rollout for general event venues, like public libraries, cafes, or large business campuses.
Log in or sign up for Devpost to join the conversation.