ECE434 Project - Air Quality Monitor

Revision as of 16:46, 15 November 2021 by Ricet (talk | contribs) (Executive Summary)
Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder

Team members: Mark A. Yoder Wojciech Zacherek Tiarnan Rice

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

09 Executive Summary
09 Packaging
09 Installation Instructions 
09 User Instructions
09 Highlights
09 Theory of Operation
09 Work Breakdown
09 Future Work/Conclusions
09 Demo/Poster
00 Not Late

Score:  90/100

Executive Summary

Picture that summarizes the project.

Give two sentence intro to the project.

Give two sentences telling what works.

Give two sentences telling what isn't working.

End with a two sentence conclusion.

The sentence count is approximate and only to give an idea of the expected length.

Our project is an air quality monitoring device that logs the data of several sensors to a database and and makes the data accessible and viewable using a Grafana webserver. The monitor can sense temperature, humidity, pressure, CO2, carbon monoxide, methane, volatile organic compounds (VOCs), and particulate levels. It also has a battery backup built in so that it can operate for several hours without a power supply, and a buzzer so that it can act as an alarm if certain sensors are reporting dangerous levels. Currently we have all the sensors working with the data being logged and viewable through Grafana.


We designed an enclosure to be 3D printed for the project using Autodesk Inventor, however we were unable to get it printed in time.

Installation Instructions

Give step by step instructions on how to install your project.

  • Include your github path as a link like this to the read-only git site:
  • Be sure your is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
  • Include a Makefile for your code if using C.
  • Include any additional packages installed via apt. Include and files.
  • Include kernel mods.
  • If there is extra hardware needed, include links to where it can be obtained.

User Instructions

Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.

Consider making it autostart for full credit.


Here is where you brag about what your project can do.

Include a YouTube demo the audio description.

Theory of Operation

The product should work with minimum setup from the user, which shouldn't go beyond inputting network credentials for internet access.

The BeagleBone Black has a systemd process that autostarts and auto restarts the process in case a crash (a crash could occur is not enough power is delivered to the sensors, rendering them disconnected from the i2c bus).

The project runs using a singular python script for reading, packaging, and saving data to an sqlite database. From there, the Grafana web server queries data from that same database. The queried data is organized into various plots running on a Dashboard on the Grafana web server. The user can access this web server and dashboard by accessing the ip address of the device.

Work Breakdown

The product can be characterized into two design sections - hardware and software. Tiarnan designed the PCB board used to organize all the sensors, populated the board with all the modules, and code templates for interfacing with the sensors. He also did a cursory search for a suitable data-display program (Grafana) and finalized the data-display interface to be user-friendly. Wojciech created scripts for reading data from the sensors, packaged the data to be inserted into an sqlite database, created and pushed data to the database, and setup the skeleton for interfacing with Grafana.

Future Work

Suggest addition things that could be done with this project.


Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.

thumb‎ Embedded Linux Class by Mark A. Yoder