See The Air AQM v0.1 – NO2 Analysis

In my previous post I presented the version 0.1 of my DIY Air Quality Monitor which uses a Nitrogen Dioxide sensor. In this post I am going to analyse the Nitrogen Dioxide NO2 sensor which is made by Spec-Sensors DGS-NO2 968-043 .

Calibrating your sensor.

In most cases the sensor isn’t calibrated which means that we have to set a zero point in order to get more accurate measurements. The company can calibrate it for you in a special chamber but you have to pay extra. In order to calibrate it on your own you have to be in a clean environment – without the presence of NO2 or NO or O3 – and then follow the instructions below which I have taken from the datasheet.

  1. Download and install a terminal program, such as Tera Term.
  2. Connect the DGS to the USB to UART Bridge via the adapter board.
  3. Connect the USB to your computer
    • If device drivers are not automatically downloaded and installed, you can find device drivers for your operating system by searching for: “CP210x USB to UART Bridge VCP Drivers”.
  4. Determine the COM port that is associated with the module
    • On Windows operating systems, locate and open the Device Manager.
    • The DGS device should be listed under the heading, “Ports (COM & LPT)”, as “Silicon Labs CP210x USB to UART Bridge (COMXX)”, where XX is the unique port number associated with the device.
    • Make a note of the unique port number.
  5. Open Tera Term and establish a serial connection with the module
    • In the “New Connection” window, select the “Serial” radio button.
    • In the drop down list, select the appropriate COM port, identified above, then Select “OK”.
    • On the Menu bar, select “Setup”, then “Serial port…” Use: USB to UART BRIDGE SETTINGS
      • Voltage level: 3.3 V
      • Baud: 9600
      • Data bits: 8
      • Stop bits: 1
      • Parity: None
      • Flow Control: None
      • Select “OK”
  6. Start Continuous Measurement in Terminal Window
    • Type any key to exit low-power standby mode.
    • Press the Enter key (‘\r’) to transmit a single measurement string.
    • Type ‘c’ (lower-case c, without quotation marks) to start continuous output.
    • The format of the output is:
  7. Initial ZERO (Clean Air) Calibration
    • When first given power after a long period of unpowered storage, the sensor needs to stabilize in clean air to its zero offset current.
    • WAIT at least 1 hour in clean air while ensuring the computer and USB port have not gone to sleep.
    • Type ‘c’ to stop the continuous output
    • Type ‘s’ to enter low-power standby mode
    • Type ‘Z’ in the terminal window to re-zero the sensor output.


Each time you turn on the AQ Monitor and the sensor is cold you have to wait for an hour before taking into consideration the measurements. You will see that it registers high concentrations. Simple discard the first 360 measurements which is an hour of operation and after that period the sensor is warm enough to function properly.

Tip: Before calibrating the sensor check the air quality and weather conditions in your area like I did to make sure the wind patterns or other conditions don’t blow pollutants from ships and main motorways towards you.BSC-ES_FORECAST_NOx_37

How the sensors works?

There are huge fluctuations between each measurement which makes it hard to understand what is going on (red line), for this reason, I create a trendline with moving average and a period of ten (blue line). The most common applications of moving averages are to identify the trend direction. The light-red-highlighted chart represent the exposure of the sensor to the street pollution with an average concentration 40 ppb for 1/½ hours. Inside my house the average concentration is 0 ppb as I did the initial zero calibration inside it on my own. Arduino supports moving average so in the future it may be included in an upcoming version of the See The Air AQ Monitor.

Real life experiments

Screenshot 2019-05-18 at 18.17.54Now, let’s discuss the recommended concentration for NO2 exposure set by the World Health Organization and the measurements I took. How safe are we when we walk on a sidewalk?

The safe limits are set at 40 μg/m3 = 21.2 ppb annual mean and 200 μg/m3 = 106.3 ppb 1-hour mean. The average value I got from my sensor on a sidewalk during an hour and a half was 40 ppb which is double the annual mean and less than a half for the 1-hour mean in the first experiment. Then I went to a different street which was more busy – but not he busiest in my city -, the AQM was places between a park and a road. By the way, a cafeteria and an academy private-school are on the other side of the street where parents and kids pass time. The average concentration during that one hour of experiment was 76 ppb. Completely unsafe and unfortunately, this isn’t reflected in the official statements from the responsable agency here in Spain and I bet the same happens in other places in Europe as well. Interestingly, I found this article yesterday “33 million polluting cars still on EU roads despite Dieselgate“.




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s