Lab 1 - Gnkhakimova/CS5590-IoT GitHub Wiki

Weather Station

Team 3:
Chukka,Murali Krishna Sai - ID 2 - Wiki page
Ly,Sang Minh - ID 5 - Wiki page
Gulnoza Khakimova - ID 3 - Wiki page

Source Code
Video

Introduction

We are creating a team class project (Lab 1). The project is based on smart IOT system that we will use to monitor and display the weather system and human pulse beats. The materials that we will use to complete this task are; we will be using a Temperature Sensor, Light Sensor, UV Sensor, Barometer Sensor, Dust Sensor, Pulse Sensor, Safe Sensor, and lastly on/off button. Along with the sensors, we used Arduino to program our sensor and transfer the sensor's data to ThingSpeak and transfer our data from ThingSpeak to Adafruit for visualization.

Objectives

The objective for this team project (Lab 1) is to integrate all the materials component into a working system. We will provide a visualization on Adafruit IO and LCD monitor, so the users can view the incoming data at real time. The data will include the temperature, humidity, dust, light, ultra violet ray and pulses. All the data will be coming from our sensors.

Approach/Method

The approach we used to accomplish this given task (Lab 1) were: testing each of our sensor individually to ensure the component is properly functional. First, we started with the Temperature Sensor. We assembled the Temperature Sensor hardware together with the given power supply. We then code in Arduino and connected to WiFi, so we could transfer data in real time to both the LCD and ThingSpeak and display them to the user. Following the Temperature Sensor, we assembled the Barometer Sensor, Light Sensor, Dust Sensor, UV Sensor, and Pulse Sensor. Then, We incorporated the Safe Sensor and An on/off button. We created endpoint in NodeJS to get data from ThingSpeak and push to Adafruit IO.

Workflow

We adjust each component sensor separately until it is fully functional and complete before we moved onto the next component. First we assemble the Temperature Sensor: connecting the sensor hardware and Arduino to the power supply. Afterward we began our coding to activate the Temperature Sensor, once the sensor is fully activated we display the result on the LCD and transfer real time data of the temperature to ThingSpeak and then to Adafruit IO. The following process we took after the Temperature Sensor were, assembling the Barometer Sensor, Light Sensor, Dust Sensor, UV Sensor, Safe Sensor, and on/off button.

Steps

  1. First we configured circuit and connected all sensors, buttons, LEDs and LCD screen by going over diagram instructions.
  2. For the codding part we started by receiving value from all sensors and displaying to on LED screen. Connected LEDs and Buttons.
  3. After receiving all values we pushed data to ThingSpeak.
  4. We created endpoint using NodeJS to get data from ThinkSpeak and display it in Adafriut IO.

    Below are values that we passed to Adafruit:

Circuit Diagram

Temperature sensor

This circuit diagram is how we connect our hardware component for our temperature sensor to measure the temperature and humidity. We connected the temperature sensor onto the power sources and connected the Arduino to the power sources as well.

Barometer sensor

This circuit diagram is how we connect our hardware component for our barometer sensor to measure atmospheric pressure. We first connected the barometer to the power sources and Arduino.

Dust sensor

This circuit diagram is how we connect our hardware component for our Dust sensor to measure surrounding dust particle. We first connected our sensor to a power sources and to the Arduino.

Light sensor

This circuit diagram is how we connect our hardware component for our Light Sensor to detect the surrounding brightness. First connected the Light Sensor to the power sources and Arduino.

Pulse Sensor
This circuit diagram is how we connect our hardware component for our Pulse Sensor which is used to detect the user pulse beat. First we connected the Pulse Sensor to the power sources and Arduino.

Safe Sensor
Two LEDs will warn user if sensors go to danger zone - Green light is for normal values and Red light for warning values. We also display text on LCD to inform user if there are any warnings.

Here is our Arduiono UNO and how we wired all components.

This circuit diagram is how we connect our hardware component for our Safe Sensor which is used show an alert. Red color LED will blink when danger is occurring and green color LED will blink when safe.

Code

Node JS:



Parameter

In our team class project (Lab 1) we had to include the parameter ThingSpeak to allow us to transmit data from our sensors to ThingSpeak Cloud, so we could have real time visualization of the data. We also included internet WiFi and Adafruit parameter in our program to allow the connection of our data to be transmitted to ThingSpeak cloud services and visual output data in Arduino respectively. The other parameter we had to include were the Temperature Sensor, Barometer Sensor, Light Sensor, Dust Sensor, UV Sensor, Pulse Sensor, Safe Sensor, and an on/off button.

Conclusion

Conclusion for this team class project (Lab 1). As a team we were able to integrate all the sensors component and display the following data to the LCD monitor. The temperature, atmospheric pressure, humidity, dust measurement, light, ultra violet ray, and a safe alert message. We are able to reset our LCD by pressing the button. We transfer our data from ThingSpeak to Adafruit using Node.js to show visualization.

Contribution

  1. Chukka,Murali Krishna Sai - 33% - designed circuit, added code to read and display data on LCD and ThingSpeak, configured buttons, LEDs.
  2. Ly,Sang Minh - 33 % - designed circuit, added code to read and display data on LCD and ThingSpeak, configured buttons, LEDs.
  3. Gulnoza Khakimova - 33% - created server and endpoint using Node.js to read data from ThinkSpeak and pushes it to Adafruit IO by making API calls, created dashboards in Adafruit IO.
    We wanted to understand each part of the Lab that is why we worked together on each component.