Skip to content

ENVISION is a IoT web application for visualizing your working environment.

Notifications You must be signed in to change notification settings

egurinko/envision

Repository files navigation

ENVISION

ENVISION is a IoT web application for visualizing your working environment. It gets environmental data by using Raspberry pi 3 and some sensors. This repo is the backend of ENVISION.

Screen Shot 2019-09-02 at 8 20 05 Screen Shot 2019-09-02 at 8 20 39

Table of content

Features

ENVISION provides two features,

  1. Provide comfort index calculated from sensory data

    • Show overall working comfort index
    • Show each comfort index of sensing data (like CO2, temperature...)

      Screen Shot 2019-09-02 at 8 22 02 Screen Shot 2019-09-02 at 8 22 12

  2. Data visualization of your working environment

    • Get sensory data of CO2, the amount of snack by weight, temperature, humidity, lux, pressure, color temperature
    • Provide real time visualization (update every mintue)
    • You can analyze and improve your working environment

      Screen Shot 2019-09-02 at 8 29 59

Demo Page

Demo Page is here! You can check demo IoT project!

Setup

Clone

If you want to try ENVISION on your local machine, follow the instructions below.

  1. Clone this repo
git clone https://github.com/egurinko/envision.git
  1. Install all dependencies
cd envision
yarn

Infrastructure

If you just clone this repo and you immediately would like to use it, use heroku to deploy. All environemtal setting is set for heroku.

  1. Go to heroku and make an app with your cloned repo

  2. Use add-ons of m-lab mongoDB

  3. Get database url and database name

  4. Set environmental variable

MONGO_URL = <YOUR DATABASE URL>
DB_NAME = <YOUR DB NAME>

Local Development

  1. Added .env file. It's same as infrastructure setup #4

  2. Build and start server

yarn build
yarn start

API ENDPOINT

  • /api/envs
    • POST
      [
           {
                "type": "CO2",
                "value": 900
           },
           {
                "type": "temperature",
                "value": 23.4
           }
      ]
      request.body should be array. Inside of array, it should have type property to distingish what it is. type property become table name too. value is just a value.
    • GET Get the all types of data from mongodb. But it get recent 1 hour data.
  • /api/comfort
    • POST It's for cron job to calculate comfort index. You don't have to use this endpoint for sending sensory data.
      [
           {
                "key": "CO2",
                "value": 0.7
           },
           {
                "key": "temperature",
                "value": 0.6
           }
      ]
    • GET Get the all types comfort index and total comfort index like below.

How it works

  • Frontend
    Vue/Vuex/Vuetify
  • BACKEND
    Express/mongodb/node-cron
  • INFRASTRUCTURE Heroku/mLab MongoDB
  • SENSORS
    Raspberry pi 3 (CO2, temprature, humidity, weight, lux, pressure, color temperature)

Links

About

ENVISION is a IoT web application for visualizing your working environment.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published