Code Monkey home page Code Monkey logo

cmpe277finalproject's Introduction

CMPE 277 SMARTPHONE APPLICATION DEVELOPMENT

Environmental Monitoring System Using IoT and Cloud Service at Real-Time

In this project, we have designed a Cloud - IoT based environmental monitoring system mobile app. DHT11 sensors are used to get the current temperature and humidity values. These input values from the DHT11 sensor are interpreted by the NodeMCU- ESP2866-12E module. Arduino C code is downloaded to the NodeMCU to convert the analog input values from the DHT11 sensor to the JSON format values. Along with the default temperature and humidity values, heat index, dewpoint, temperature in Fahrenheit is also calculated. These JSON values are then passed on Wifi to AWS IOT core endpoint subscribing to a user-defined MQTT topic where the clients using this mobile app can gain access to the same MQTT topic by an unauthorized AWS Cognito ID. An android app is designed which acts as an MQTT subscriber/client and it interprets the values received from the AWS MQTT publisher. The sensor values are displayed on the dashboard of the app with information showing health-related messages based on the received values. Air Quality is checked in the app by providing area zip code by the user to find out whether the air quality in that particular area is safe.

Below figure depicts the flow of sensor data from DHT11 to connected mobile devices.

image

Technolgy Stack

Hardware

The below diagram depicts a picture of the NodeMCU microcontroller used.

  • NodeMCU - ESP826

image

  • DHT11 - Temperature and Humidity Sensor

image

Significance of using DHT11 Sensor

  • 3 to 5V power and I/O
  • 5mA max current use during conversion (while requesting data)
  • Good for 20-80% humidity readings with 5% accuracy
  • Good for 0-50°C temperature readings ±2°C accuracy
  • No more than 1 Hz sampling rate (once every second)
  • Body size 15.5mm x 12mm x 5.5mm
  • 4 pins with 0.1" spacing

Software

  • Arduino
  • Android Studio

Cloud Services

  • AWS Mobile SDK
  • AWS IoT Core
  • AWS IoT Topic
  • AWS Cognito
  • AWS IoT 1-Click
  • AWS SNS
  • AWS SES
  • AWS IoT Analytics
  • AWS Lambda
  • AWS DynamoDB
  • AWS RDS
  • AWS Mobile Hub

Screens

  1. Launcher Activity of the Application

image

  1. Sensor Values Displayed on the Screen.
  • Temperature In C
  • Fahrenheit in F
  • Humidity in %
  • Heat Index in C
  • Dew point in F
  • Health related messages displayed depending on the parameters

image

  1. Application Paused in the Background

image

  1. Restore of the current values when the Main Activity is resumed

image

  1. Manually stimulating DHT sensor value changes by testing the sensor by covering it in hand for a few minutes. Values from sensors are changed appropriate messages are displayed on the App screen

image

  1. Entering Zipcode for San Jose, CA for air quality and AQI is displayed

image

  1. Entering Zipcode for Phoenix, AZ for air quality and AQI is displayed - showing more degraded air quality

image

  1. Moderate AQI in Backerfield, CA.

image

  1. Arduino Software showing NodeMCU board

image

  1. MQTT connection from NodeMCU to AWS IOT thing and sensor values are sent to AWS IOT shadow table.

image

  1. MQTT messages are received from AWS IOT in Json Format at regular intervals

image

  1. AWS Shadow table

image

  1. The number of MQTT messages received and advertised to the IOT devices subscribed to the IOT topic

image

  1. Federated Identities for the IOT Thing in AWS Cognito. This is used to access AWS IOT Topic from the Andriod Apps

image

cmpe277finalproject's People

Contributors

sudhaamarnath avatar muthu-05 avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

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.