Inspiration
Inspired by ensuring protection of people in their home, whether from falling, fires, or leaving out dangerous items for children, our project aims to ensure proper security and safety for all people in their homes through enabling advanced smart home capabilities.
What it does
Anomalyze is an all-in-one tool to boost security and manage environmental aspects of your home. The device will track temperature and air pressure levels which can be seen in the web application associated with the project. Additionally, Anomalyze has a built-in camera which can be used to view the current state of your household, allowing you to detect foreign or dangerous objects. With a fully-fledged authentication system and graphical insights, Anomalyze is the best tool for your home.
How we built it
First and foremost, given that the data being stored was a form of time-series data, we needed to utilize TimescaleDB. TimescaleDB is built on top of PostgreSQL but allows for faster querying and insertion times for time-series data. Secondly, in order to set up the backend for interfacing with the database, we used Python, leveraging Flask for server support. We then took advantage of React's fast setup speeds to design our frontend. React combines HTML, CSS, and JavaScript into reusable components, making it perfect for designing a functional frontend. Lastly, we configured a Raspberry Pi 4 and Arduino kit for gathering real-time temperature and air pressure readings, passing the data over an MQTT connection.
Challenges we ran into
One challenge we ran into was issues configuring the sensors connected to the Arduino to be recognized by the Raspberry Pi. Due to the resources we had available to us, we had to connect an Arduino Uno to the Pi via USB, meaning there were issues trying to move over I2C sensor data to the Pi. Additionally, when configuring the YOLO model for object detection, we had issues properly getting the images to display on the front-end and be submitted over to the back-end after being sent through MQTT. Luckily, we were able to overcome these issues and be able to properly use sensor readings to communicate with the server.
Accomplishments that we're proud of
We are very proud that this project encompasses a wide range of areas in software engineering to create a truly unique product. This includes frontend and backend development, web design, embedded systems, network protocols, threading, object detection via deep learning, and database management.
What we learned
We all learned various tools. One of us learned databases, another frontend, and another embedded software. This project, given how many technologies it encompassed, gave our team many oppportunities to learn and implement. Additionally, we learned how much our team can underestimate the amount of time given. We found ourselves scrambling towards the end trying to figure out how to implement last second changes. While stressful, we had plenty of fun building our very own project.
What's next for Anomalyze
Anomalyze could've really benefitted from a data visualization tool to output graphs and such. Given how much data is being fed into the database, it only makes sense to have some sort of summary for users to see. We also want to add the ability for users to track even more statistics: humidity, CO2 levels, moisture, etc. These features would really elevate what we currently have to truly being an all-encompassing home utility. And lastly, we would love to add improved object detection software. While what we attempted to do was sufficient, extremely advanced algorithms out there exist, and we would be interested in seeing what we could improve upon.
Built With
- arduino
- css3
- flask
- html5
- javascript
- mqtt
- postgresql
- python
- raspberry-pi
- react
- timescaledb
- yolov8



Log in or sign up for Devpost to join the conversation.