GithubHelp home page GithubHelp logo

zrwaite / homenode Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 2.0 70.05 MB

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

Home Page: https://zrwaite.github.io/HomeNode/

C++ 14.61% Dockerfile 0.06% HTML 2.29% CSS 0.36% TypeScript 69.77% Python 12.14% JavaScript 0.76%

homenode's Introduction

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

homenode's People

Contributors

georgeshao avatar zrwaite avatar gongsta avatar hargunmujral avatar mrbruh avatar imgbotapp avatar

Stargazers

 avatar  avatar  avatar Mohamed El Firdoussi avatar  avatar  avatar

Watchers

 avatar

homenode's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.