Inspiration

Have you ever walked into a different room in your house and noticed that the temperature was vastly different? Being able to monitor the exact temperature, humidity, air pressure, and other metrics about a room has always been difficult and/or expensive, something that this project hopes to fix.

What it does

Our project uses Arduino Uno based Grove Beginner Kit's sensors to read live room statistics (temperature, pressure, humidity, etc.) and send them over a serial bus to a script that adds them to a database that can be read by a live easy-to-use dashboard.

How we built it

We built this project using C++ for the Arduino, Python for the parsing of the data from the serial line, Express.js for the backend API that interfaces with the database, and React.js for the frontend with Chart.js as the engine for our visualizations.

Challenges we ran into

We initially ran into some issues with being able to get a unique identifier for the Arduino, which would allow us to scale the project to support multiple rooms at a time.

Accomplishments that we're proud of

We are proud of the scalability that we were able to achieve with the database entries and API. Theoretically, we are able to support an arbitrary number of sensors, each of which can be displayed separately in the dashboard.

What we learned

We learned how to use React.js and Chart.js concurrently as well as how to implement Server-Sent Events with Express.js and React.js.

What's next for Room Monitor

We hope to be able to port this project to a Raspberry Pi to allow us to wirelessly communicate to the database without the need of another computer to interpret the serial data. This will also allow us to have the entire software stack running on a single device.

Share this project:

Updates