Giter Site home page Giter Site logo

smartnoisesense's Introduction

SmartNoiseSense

Using ESP32s, sound sensors and Google Cloud Platform, this project tracks the noise levels of the Software and Computer Engineering Society's club room.

Project Folder Description

The project is split into three folders, GoogleCloud SoundRead and StudentWebsite.

  • GoogleCloud: Contains the code for the functions that are executed in the cloud to handle published messages.
  • SoundRead: Holds all of the code that is flashed onto the ESP32 to read noise and publish the data to a Google PubSub topic.
  • StudentWebsite: Holds all of the website code, written using React.js, to read the room's current noise level and past readings.

To Run the Student Website

  1. Install Node.js
  • You can verify the installation by entering node --version in your terminal
  1. With node installed, clone this repository with git clone https://github.com/evanugarte/SmartNoiseSense or download the .zip file
  2. Enter the directory with cd SmartNoiseSense/StudentWebsite
  3. Install dependencies with npm install
  4. Run the website with npm run start

Technologies Used

Cloud

Google Cloud Platform

Google IoT Core

Google Cloud IoT Arduino Library

Firebase

OpenSSL Elliptic Curve Cryptography

Hardware

ESP32 Microcontroller

Sparkfun Sound Sensor

Arduino IDE

Website

React.js

Chart.js

Special Thanks

Software and Computer Engineering Society (SCE)

Khalil Estell

Pranav Patil

You, the reader

smartnoisesense's People

Contributors

evanugarte avatar

smartnoisesense's Issues

Have Sound Data Return Loudness Separated by Area

In the function getSoundData for our firebase query file, logic should be added in the forEach loop which goes through all the documents.

  • Check location of sound
  • Use case statements to add the sound to an object of each corner
    • This object should have a field that is location string?
    • This object should have a field called sound that will be averaged
    • This object should have a field called timesRead that will count how many readings from that corner were read
  • We should then return an object that has 4 fields, which is can be
    • nwAvg, neAvg, swAvg, and seAvg

We will then be able to access this object on the UI side and show the heatmap based on each Avg field.

Fix Cloud Function to handle Init Messages

This involves fixing CloudFunction.js. If we don't get a sound value then we know the message shouldn't be published. To fix this bug an if statement must be added to accommodate this case.

Create Website to Visualize Sound Values

Using React.js, a website will be made that will watch the status of the firestore data being updated. This website can then use that data to present it to a user to help them see how loud the room is.

Modify Y Axis on Website Graph

The y axis at the moment doesn't reflect good values. We can make the sound range from 80 - 200, which is what most averages come out to be.

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.