Air Quality Monitoring

Automatically measuring and graphing Air Quality with Arduino and Dylos DC1100 Particle Monitor
Copyright 2012, Chris Nafis

Table of Contents


With allergies and asthma I'm interested in both the indoor and outdoor air quality. I heat with a Quadrafire woodstove. It is suppose to be a clean stove. I was interested in the impact on both my inside air (ie. ash/dust) and outside air (smoke). New York State monitors the air quality at several locations around the State. Certified Allergy & Asthma Consultants in Albany NY published daily pollen counts. The American Lung Association has a great article called State of the AIR that talks about Particle Pollution. I have several weatherstations collecting data ( KNYREXFO1 [barn roof], KNYCLIFT1 [garage roof] ),

There are several citizen group projects that are developing open source equipment (e.g. Air Quality Egg). There are several recent discussions about adding a Particulate sensor. The Egg Project aims to give citizens a way to participate in the conversation about air quality. It is composed of a sensing device that measures the air quality in the immediate environment and an on-line community that is sharing this information in real-time. It is a community-developed, open source project that is driven by people who care about the air they breathe.


The $290 DC1100 Pro Air Quality is a true Laser Particle Counter with two different size ranges. The small channel (0.5> Micron) should see bacteria and mold. The Large channel (2.5> micron) should see dust and pollen. The LCD display constantly shows bargraphs and values for the small and large particles. The unit saves 30 days of air quality data. I ordered the unit with the PC Interface Option and connected it to an Arduino Ethernet so I can automatically log the data to Pachube. That way air quality alerts can be triggered and sent to twitter and my cell phone.

The unit is amazingly sensitive. It easily sees the dust kicked up from walking on a rug or the vapors from cooking. Looking at the graphs below you can see some interesting things. First you can see that things settle down at night when people are not walking around. You can see around noon that my daughter cooked lunch. It's surprising how long it takes for the fine particles to settle down.


Set Up

An Arduino Ethernet is connected to the Dylos DC1100 sensor using a serial port adapter.

Arduino 5V 	=> Sparkfun RS232 Shifter VCC
Arduino GND	=> Sparkfun RS232 Shifter GND
Arduino Pin 2	=> Sparkfun RS232 Shifter TX-O
Arduino Pin 3 	=> Sparkfun RS232 Shifter RX-I
The following simple Arduino Sketch shows how to print Dylos results every minute ( dylosnetworkexample.ino is a more detailed sketch that posts the Dylos data to COSM)

char line[80];
int small = 0;
int large = 0;
int i =0;

// include the SoftwareSerial library so you can use its functions:
#include <SoftwareSerial.h>

#define rxPin 2
#define txPin 3

// set up a new serial port
SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);

void setup()  {
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);

  // set the data rate for the SoftwareSerial port

  //set up Arduino's Serial

void loop() {

  // listen for new serial coming in:
  char someChar =;

  if( someChar != -1){
    if (someChar == '\n')
      Serial.print(' ');
      line[i++] = someChar;

According to the Dylos DC110 COM Port option document: The serial output format is small counts, comma, large counts, carriage return, line feed: Example:
This data is output every minute and the counts represent the average concentration over the past minute. The units are in counts/100 per cubic foot.In the above example, the output of 675 would mean the average concentration over the past minute was 67,500 particles per cubic foot. This data can be viewed by any rs232 terminal or PC terminal program. The setup is as follows:
9600 baud
8 bits
no parity
1 stop bit
no flow control
Dylos has some "rules of thumb" for small count readings related to air quality:
Air Quality Chart - Small Count Reading (0.5 micron)+

3000 +     = VERY POOR
1050-3000  = POOR
300-1050   = FAIR
150-300    = GOOD
75-150     = VERY GOOD
0-75       = EXCELLENT



Other types of real-time data have sites that users can share their data with the global Internet Community. For example, Weather Underground is a great place to store my weatherstation data. StrikeStar is wonderful for processing distributed lightning detectors data to produce real-time maps.

COSM connects people to devices, applications, and the Internet of Things. As a web-based service built to manage the world's real-time data, Pachube gives people the power to share, collaborate, and make use of information generated from the world around them.

This is a perfect repository for our Dylos Air Quality It provides a simple HTTP interface to post data and applications which generate charts that can be included on your web pages:





This project is for experimental use only. The user assumes all responsibilities for assembly, installation, and use. This circuit is provided without warranty and the author makes no claim that this device will work in any particular application. Do not use in applications where failure or incorrect operation could jeopardize someone's safety. This schematic is provided for noncommercial use only.