Skip to content

A multi-purpose device that provides the user with updates on home temperature, humidity, air pressure, and altitude.

Notifications You must be signed in to change notification settings

peanutz28/tla-iot-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

tla-iot-project

A multi-purpose device that provides the user with updates on home temperature, humidity, air pressure, and altitude.

Table of Contents
  1. About EcoNode
  2. Getting Started
  3. Real World Applications
  4. The Journey
  5. Triggers
  6. Node Red
  7. Python
  8. Photos

About EcoNode

EcoNode is an indoor or outdoor air monitoring system, and displays temperature, humidity, air pressure, and altitude values on a easy-to-access dashboard. EcoNode also graphs these values and alerts the user when they are out of their reccomended range.

For example: If the user is out and left their dog at home, but the temperature rises to 80*F, this could cause their pet to suffocate or become dehydrated! However, EcoNode would have already notified them both physically and verbally, and told them to turn on an air conditioner. The user would recieve the notification, check precise values on their dashboard, and save their pet!

(back to top)

Getting Started

Here's a short walkthrough on how to activate EcoNode.

Installation

  1. Run the I2C code in Arduino.

  2. Import the json file into Node Red.

  3. Go to command prompt and activate Node Red.

    node-red
  4. Click on the link given in your command prompt

    http://localhost:1880/
  5. Click "Deploy" and visit the dashboard at http://localhost:1880/ui/

(back to top)

Real World Applications

A compact system like EcoNode has endless purposes.

  • Sensing these values in our offices and homes is important, as humidity and temperature may cause health and structural problems. For example, an indoor temperature less than 55ºF may freeze pipes, and one above 80º can severely damage drywall longterm.

  • EcoNode can be used in industries like paper, textile, food processing, and more, since they need to regulate specific humidities and temperatures

  • Some irrigation techniques needs precise humidity for plants. The moisture present in the soil also plays an important role. Moreover, indoor vegetation also requires humidity sensors.

  • Many electronic devices are graded with a range of humidity values. Generally, this value is between 10 to 50% humidity. Semiconductor fabrication plants need to maintain very accurate humidity and temperature values, as even a difference of a minute can hugely impact the production.

  • Medical equipment like sterilizers and incubators also need temp and humidity control. Exact values are used in biological processes and pharmaceutical plants as well.

(back to top)

The Journey

  • Last summer, I had the oppurtunity to participate in this program, and use the DHT22 sensor and a light sensor resistor to build a very cool device. This year, though creativity was limited, I was very excited to test out the BME688's gas sensing capabilities.

  • However, I faced many difficulties, the first being that my BME688's gas resistance didn't change at all.

  • After many failed attempts to change the gas resistance, including coffee, shampoo, hydrogen peroxide, and paint out-gassing, I decided to use what I had and base my project on the values that worked: Temperature, Humidity, Air Pressure, and ALtitude.

  • Not too long after that, my ESP32 Thing Plus board stopped working, and I ended up using the RedBoard instead, despite the fact that it couldn't connect wirelessly.

  • I struggled a lot with getting the plotting code in Python to work as well, but with a few days of online forums and youtube, I finally solved the issue.

  • I learned a lot more about syntax in Python, C++, and Javascipt, since they were all used in my project. I used to be sightly afraid of programming, since it appeared very complicated. After having to debug so much code myself this summer, I am much more confident in my abilities.

  • Lastly, since I couldn't put my data on a webpage easily without an ESP32 board, I searched for a local option. After trying various other dashboards, Node Red finally worked for me.

  • Node Red was probably the part of my project that took the most debugging, but I learned the most from it. And now I have a working dashboard that displays my data and keeps values in check!

(back to top)

Triggers

When the temperature goes above 82º F, Node Red will send you a notification and verbally state that the temperature is too high.

The same thing applies for low temperature (x < 60º), high humidity (x > 50%), low humidity (x < 30%), and low/high air pressure (x < 970 hPa or x > 1030 hPa)

(back to top)

Node Red

Node Red handles all sensor data, and outputs it onto a dashboard.

The code for my flow can be found in the repository. To try it out, simply download Node Red on your command prompt, and go to the link it gives you. Then go to:

Menu -> Import -> Paste the json file there

You should see something like this:

Screen Shot 2022-08-05 at 9 24 13 PM

As you can see, my setup first seperates serial data values, converts temperature to Fahrenheit, then puts all these values on the dashboard. It also graphs these values, and reguarly checks if they are in the reccomended range. If they are not, it will notify the user physically and verbally with the Text to Speech nodes.

Below you can see how simple it is to activate the node red local connection. Just a simple line in your command prompt and you can view the dashboard.

node red gif

Here's a view of what the dashboard looks like:

node red graphed data gif

Data is stored for an hour, then is replaced by new incoming data. All lines from the serial monitor are also saved in a file on the local Desktop with a timestamp.

Here is the second page of the dashboard:

node red readings gif hot temp

This gif shows the values' reading changing when I exposed it to humid and hot air. This triggered the notification and Text-to-Speech node as well, shown in the following video.

Screen.Recording.2022-08-05.at.9.52.20.PM.mov

In summary, the user will be notified if temperature, humidity, or air pressure values go out of its reccomended range.

(back to top)

Python

Lastly, if plotter.py is run while serial data is incoming, MatPlotLib will plot these values and label them. Although, Node Red is reccomended for this system.

(back to top)

Contact

Ria Saheta: riasaheta@gmail.com

Project Link: https://github.com/peanutz28/tla-iot-project

(back to top)

Photos and Videos

Here's a picture of my set up:

IMG_3189-removebg-preview

Below is a video of one of my failed gas resistance tests, using the out-gassing from paint.

Screen.Recording.2022-08-02.at.11.45.55.AM.mov
IMG_3188.1.1.mov

(back to top)

About

A multi-purpose device that provides the user with updates on home temperature, humidity, air pressure, and altitude.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published