Skip to content

This is the Github Repo for our group's final project in SE101.

Notifications You must be signed in to change notification settings

zrwaite/HomeNode

Repository files navigation

Dreem Teem SE101 Project: HomeNode

This is the Github Repo for our group's final project in SE101.

Link to static website: https://zrwaite.github.io/HomeNode/

typescript javascript html5 css3 python c++ react nodejs mongodb docker raspberrypi arduino digitalocean

Team Members:

  • Zac Waite : Project Manager and Backend Developer
  • Hargun Mujral: Arduino and Data Processing
  • Steven Gong: Raspberry Pi Python Developer
  • Michael Dennisov: Hardware and Firmware Engineer
  • George Shao: Frontend Developer

Project Description 📋 🏡

Our idea is to create a low-cost smart home system to monitor and control many different factors of home living, automating where possible. We will have a series of hardware modules with arduinos, such as a plant watering module, a motion sensor module, and a module for tracking temperature, humidity, etc. Each module will compile the results, and send them to a central raspberry pi, which will process the data and send it to our API. On the user end, we will have a website that will allow users to monitor the sensors at their home remotely.


Software Components :electron:

  • Arduino C++: Each module will need to pull input data from the sensors, track changes, make output decisions, and send the compiled data to the raspberry pi.
  • Raspberry Pi Python: Reads input from all of the arduino modules, compiles the data into different http requests, and sends information to the server.
  • Node.js Server: Hosts a server and listens for incoming requests from the raspberry pi to send data to a mongo database, or requests from users to pull information.
  • React Website: A visual interface for a user to view information about their smart home, with information pulled from the server.

Hardware Components 🛠️ 🔌

  • Sensor Modules: Pull input data from the sensors, track changes, compile the data and send it to the central raspberry pi.
  • Motion Module: Pull input data and determine if motion has been detected, then track, compile and send data.
  • Plant Module: Pull input data, determine if the plant needs to be watered, output commands to water the plant, then track, compile and send data.

Prototype Plan 📆 📓

  • Create hardware that can read environmental data and compile it into meaningful info
  • Create a central RPi router that can read all the data at once and output it to the server
  • Create a server to host all of the post and get endpoints for accessing the home data
  • Create a website UI for reading all of the data in an intuitive way.

Challenges 📚 🚀

  • Understanding information from analog and digital sensor data (Parsing what the sensor data means, then reducing large amounts of data)
  • Creating python code to read serial data from arduinos asynchronously
  • Creating efficient ways to maintain accurate, up to date information without too much electricity or too many online data transfers.
  • Creating and printing 3d models for discrete, simple, and functional hardware modules

DigitalOcean

About

This is the Github Repo for our group's final project in SE101.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published