Pollution click
Pollution click

Description of product

Pollution click has high sensitivity to organic gases such as methanal (also known as formaldehyde), benzene, alcohol, toluene, etc. The click carries the WSP2110 VOC gas sensor with the detection range of 1~50ppm (parts per million).

Pollution click is designed to run on a 5V power supply. It communicates with the target MCU over AN and RST pin on the mikroBUS™ line.

WSP2110 VOC gas sensor

WSP2110 VOC gas sensor is a MOS type (metal oxide semiconductor) sensor that detects volatile organic compounds such as methanal, benzene, alcohol and other types of gases that can be harmful to one’s health in high concentrations. 

The concentration of the target gas affects the conductivity of the sensor. Higher concentration of the gas means the conductivity of the sensor gets higher as well.

For precise calibration, the sensor needs to preheat (once powered up, it takes 120h to reach the right temperature).

Sensor’s sensitivity

P1 potentiometer onboard is used for trimming the sensor’s sensitivity. Enable the pin drive gate of heaters MOSFET switch to reduce power consumption when the click is not in use.

Detection range

The detection range of the sensor is 1~50ppm (part per million). Parts per million is the numbers of parts of a component in 1 million parts of the gas mixture, it's the ratio of one gas to another.

Volatile organic compounds

Volatile organic compounds or VOCs are organic chemicals. They have very high vapor pressure at room temperature, and some of them can be harmful to human health. As most people spend a lot of time indoors it’s important to know if the quality of the air is good. With Pollution click you could always know if your indoor environment is healthy enough.

Specifications

TypeGas
ApplicationsAutomatic exhaust devices, air cleaners, harmful gas detection devices, etc.
On-board modulesWSP2110 VOC gas sensor
Key FeaturesDetection range 1~50ppm, Sensitivity S Rs(in air)/Rs(in 10ppm toluene)≥3
Key BenefitsHigh sensitivity to organic gases
InterfaceAnalog,GPIO
Input Voltage5V
CompatibilitymikroBUS
Click board sizeM (42.9 x 25.4 mm)

Pinout diagram

This table shows how the pinout on Pollution click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).

NotesPinMikrobus logo.pngPinNotes
Analog out pinAN1ANPWM16NC
Enable sensorRST2RSTINT15NC
NC3CSRX14NC
NC4SCKTX13NC
NC5MISOSCL12NC
NC6MOSISDA11NC
NC73.3V5V10+5VPower supply
GroundGND8GNDGND9GNDGround

Programming

The demo first enters in calibration procedure, before measuring pollution. In order to show accurate results, calibration must be done in clean air. Because the sensor has slow response time, it needs time to stabilize and to achieve working temperature. It also measures load resistance, and shows value on the display so the user can set the desired sensitivity. After the calibration is done, the demo enters in the measuring procedure.

Calibration procedure:

  1. Put the sensor in clean air and adjust the click board potentiometer to max value.
  2. Wait for the measured value on the load resistor to stabilize.
  3. Press the continue button.
  4. Adjust the potentiometer to define the sensitivity.
  5. Press the continue button.

Detection range: 1ppm ~ 50ppm (parts per million).

Code examples that demonstrate the usage of GSM/GNSS click with MikroElektronika hardware are available on Libstock.

Code snippet

The function calculates the ppm value from the RS/R0 ratio. Where R0 is resistance in clean air, and RS is resistance in target gas, with different concentration. The constants are extracted from the sensitivity curve, for the sensitivity curve of alcohol given in the sensor datasheet.

01: float ratio_to_ppm(float ratio)
02: {
03:     if (0.84 > ratio && ratio >= 0.53)      // I segment
04:         return pow((ratio/C1), (1/M1));
05:     
06:     else if (0.53 > ratio && ratio >= 0.39) // II segment
07:         return pow((ratio/C2), (1/M2));
08: 
09:     else if (0.39 > ratio && ratio >= 0.1)  // III segment
10:         return pow((ratio/C3), (1/M3));
11: 
12:     else if (ratio < 0.148)
13:         return 50.0;
14: 
15:     return 1.0;    
16: }

Downloads