Skip to content

Repository files navigation

GitHub Created and Managed By: Kaleb Nails

Air Quality Sensor Repository

This repository contains code for different air quality sensors. Each directory represents a specific sensor model, and the code within each directory is tailored to that sensor. Authors listed are immediate authors to our club, of course a lot of this code is found from other online, and the are cited within the programs files themselves.

To pip install the dependent libraries run:

pip install -r requirements.txt

Here is the link to the AIAA paper that explains this system: https://arc.aiaa.org/doi/10.2514/6.2024-4293

Also I have made some YouTube tutorials. They explain some simple things and issues you might run into. I will continue to update as the need arises. https://youtube.com/playlist?list=PLwAqsBL94ygYDSl61qIoNLhPo3zRYZZli&si=xE07LIelMbSo7oQt

📝 File Structure

📦Sensor_Code
 ┣ 📂Alphasense
 ┃ ┣ 📄OPC_Simple_v2.py
 ┃ ┣ 📄README.md
 ┃ ┗ 📄start_Alphasense_loggers.sh
 ┣ 📂PMS plantower
 ┃ ┣ 📄.gitkeep
 ┃ ┣ 📄README.md
 ┃ ┣ 📄 pm25_simpletest.py
 ┃ ┗ 📄start_Plantower_loggers.sh
 ┣ 📂Post_Processing
 ┃ ┣ 📄Post_Processing.py
 ┃ ┗ 📄README.md
 ┣ 📂Sensirion
 ┃ ┣ 📄.gitkeep
 ┃ ┣ 📄 README.md
 ┃ ┣ 📄SPS30_Senirion_run.py
 ┃ ┣ 📄exampleReadSPS30.py
 ┃ ┣ 📄sps30.py
 ┃ ┣ 📄start_Sensirion_loggers.sh
 ┃ ┗ 📄stop_Sensirion_loggers.sh
 ┣ 📂Viasala
 ┃ ┗ 📄.gitkeep
 ┣ 📄Alphasense_Start_Script.sh
 ┣ 📄Sensor_Start_Script.sh
 ┣ 📄gui_popup.py
 ┣ 📄requirements.txt
 ┣ 📄.gitnore
 ┣ 📄sensor_UART_configs.json
 ┗ 📄README.md

Sensor Models

ALPHASENSE OPC

image

Authors: Kaleb Nails, Erik Liebergall, Marc Compere
Created: 10/6/2023

Description

This directory contains code for the ALSPHASENSE air quality sensor. The main script, OPC_Simple_v2.py, interfaces with the sensor, reads data, and logs it to a CSV file. This is using the USB adaptor for the Alphasenses

Instructions

  1. Connect the ALSPHASENSE sensor to your system.
  2. Run the pm25_SPS30_Senirion_Run.py script with the appropriate device name as a command-line argument (default is /dev/ttyACM0).
    python3 pm25_SPS30_Senirion_Run.py /dev/ttyUSB0
    

The script will log air quality data to a CSV file with a timestamp.

PMS plantower

image

Authors: Erik Liebergall, Leah Smith, Kaleb Nails, Marc Compere
Created: 10 Feb 2023

Description

This directory contains code for the PMS plantower air quality sensor. The pm25_simpletest.py script interfaces with the sensor, reads data, and outputs air quality information to the console.

Instructions

  1. Connect the PMS plantower sensor to your system.
  2. Run the pm25_simpletest.py script with the appropriate device name as a command-line argument (default is /dev/ttyUSB0).
    python3 pm25_simpletest.py /dev/ttyUSB0
    

Output

The script provides air quality measurements in both standard and environmental concentration units. Below is an example output:

Concentration Units (Standard)
---------------------------------------
PM 1.0: 10   PM 2.5: 15   PM 10: 20

Concentration Units (Environmental)
---------------------------------------
PM 1.0: 8    PM 2.5: 12   PM 10: 16
---------------------------------------
Particles > 0.3um / 0.1L air: 1000
Particles > 0.5um / 0.1L air: 800
Particles > 1.0um / 0.1L air: 500
Particles > 2.5um / 0.1L air: 200
Particles > 5.0um / 0.1L air: 100
Particles > 10um / 0.1L air: 50

Sensirion SPS30

Authors: Erik Liebergall, Marc Compere, Kaleb Nails
Created: 13 Oct 2023

image

Description

This directory contains code for the Sensirion SPS30 air quality sensor. The pm25_SPS30_Senirion_Run.py script interfaces with the sensor, reads data, and logs air quality information to a CSV file.

Instructions

  1. Connect the Sensirion SPS30 sensor to your system.
  2. Run the pm25_SPS30_Senirion_Run.py script with the appropriate device name as a command-line argument (default is /dev/ttyUSB0).
    python3 pm25_SPS30_Senirion_Run.py /dev/ttyUSB0

The script will continuously read data from the sensor and log it to a CSV file.

CSV File Format

Note these are subject to change are are up to date as off 1/26/2024

AlphaSense CSV File Format

The script outputs air quality information to a CSV file. The CSV format includes the following columns:

  • Serial Number
  • Date Label
  • Dates (YMD)
  • Bin 0 to 23
  • Bin1 MToF to Bin7 MToF
  • Sampling Period
  • SFR
  • Temperature C
  • Relative humidity
  • PM1 ug/m³
  • PM2.5 ug/m³
  • PM10 ug/m³
  • #RejectGlitch
  • #RejectLongTOF
  • #RejectRatio
  • #RejectOutOfRange
  • Fan rev count
  • Laser status
  • Checksum

Each row in the CSV file represents a set of air quality measurements at a specific date and time, with corresponding values for each parameter.

PMS plantower CSV File Format

The script outputs air quality information to a CSV file. The CSV format includes the following columns:

  • Date Label
  • Dates (YMD)
  • Sensor 1
  • pm1.0 standard ug/m³
  • pm2.5 standard ug/m³
  • pm10.0 standard ug/m³
  • pm1.0 env ug/m³
  • pm2.5 env ug/m³
  • pm10.0 env ug/m³
  • particles 0.3um
  • particles 0.5um
  • particles 1.0um
  • particles 2.5um
  • particles 5.0um
  • particles 10.0um

Each row in the CSV file represents a set of air quality measurements at a specific date and time, with corresponding values for each parameter.

SENSIRION CSV File Format

The script outputs air quality information to a CSV file. The CSV format includes the following columns:

  • Serial Number
  • Date Label
  • Dates (YMD)
  • Mass Concentration PM1.0 (µg/m³)
  • Mass Concentration PM2.5 (µg/m³)
  • Mass Concentration PM4.0 (µg/m³)
  • Mass Concentration PM10.0 (µg/m³)
  • Number Concentration PM0.5 (#/cm³)
  • Number Concentration PM1.0 (#/cm³)
  • Number Concentration PM2.5 (#/cm³)
  • Number Concentration PM4.0 (#/cm³)
  • Number Concentration PM10.0 (#/cm³)
  • Typical Particle Size [µm] Each row in the CSV file represents a set of air quality measurements at a specific date and time, with corresponding values for each parameter.

About

this is the code to run all move uas sensors

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages