The Air Quality Extender for the OurWeather Weather Kit has a total of six parts.
Raspberry Pi, Arduino and ESP8266 Software Provided
The Air Quality Sensor Extender Kit can be used in the OurWeather Kit as well as in stand alone Raspberry Pis, Arduino and ESP8266 systems.
How does this Kit work?
The Air Quality Extender Kit works by measuring a wide scope of harmful gases such as carbon monixide, alcohol, acetone, thinner, formaldehyde and so on as well as being sensitive to particulate count. Due to the method used to measure the contaminants, this Air Quality sensor can not output specific data to describe target gases' concentrations quantitatively. But it's still good enough to be used to describe qualitative air quality. The Air Quality sensor requires a warm up time of about 2 minutes after power on before it will be reporting good data. The Air Quality sensor is based on a Winsen MP503 Air-Quality Gas Sensor. This sensor is designed for indoor use but can be used outdoors if it is covered and protected from high humidity. Do not use any silicon based spray or lubricant products around the Air Quality sensor. Use of those products will rapidly reduce the sensitivity of the sensor. This unit requires relativity clean air conditions when starting up. When testing the sensor by using the cardboard box and hair spray test setup, do not spray the hairspray directly on the sensor. Spray it in the air around the sensor. It does not take much hairspray! The analog voltage from the Air Quality sensor is converted by the SwitchDoc Labs Analog to Digital Converter into a 16 bit value that is read by Our Weather and converted into a qualitative gauge of the air quality. See these values below.
Note: Using the AirQuality Extender and the Solar Power Extender in the same OurWeather Project
If you are using the AirQuality Extender and the Solar Power Extender in the same OurWeather setup then you need to make a change to the ADC included in the AirQuality Extender Kit. Do the following:
If you have the Solar Power Extender Kit and the Air Quality Extender, you have a conflict in the I2C addresses being used by the Air Quality Extender.
The SAP (SunAirPlus) ADS1015 has a non-changable address of 0x48
The WeatherPlus board ADS1115 has a non-changable address of 0x49 (this is for the weather vane)
The Grove ADC1115 in the Air Quality kit has a default address of 0x48, which conflicts with the SAP board.
---To Solve!---
Solder a pin to the pinhole marked ADDR on the Grove ADS1115 board and then connect a jumper from ADDR to SDA (in the pin header row on the same board), power it back on and then the board now has the I2C address 0x4A
Then, in the OurWeather Software, in SDL_ESP8266_WeatherPlus.ino (the main file) change the following line:
Adafruit_ADS1115 adsAirQuality(0x48);
to
Adafruit_ADS1115 adsAirQuality(0x4A);
All devices will then work.
What Does the Air Quality Sensor Report?
The AirQuailty sensor reports a single analog voltage describing the overall air quality. We take this analog value and convert it to a digital reading (from 0 to about 65000). The OurWeather software then interprets this number and reports the qualitative air quality. Following is digital reading and the qualitative interpretation:
If you would like to read the sensor value directly, and you have an OurWeather kit, type the following into your browser:
http://
where
http://192.168.1.141/AirQualitySensor
and OurWeather returns the following to your browser:
{"AirQualitySensor": 3416, "id": "1", "name": "OurWeather", "connected": true}
The value of the AirQualitySensor is 3416, which means there is some gas and particulates in the air, or Low Pollution.
Downloads
- The complete specification for the MP503 is here.
- Assembly and Operations Manual
- Raspberry Pi Python Software
- Arduino Software
- ESP8266 Software
Raspberry Pi Output
------------------------------ Sensor Value=1575 --> Fresh Air | 4 ------------------------------ Sensor Value=1576 --> Fresh Air | 4 ------------------------------ Sensor Value=1582 --> Fresh Air | 4 ------------------------------ Sensor Value=1578 --> Fresh Air | 4 ------------------------------ Sensor Value=1579 --> Fresh Air | 4 ------------------------------ Sensor Value=1575 --> Fresh Air | 4 ------------------------------ Sensor Value=1572 --> Fresh Air | 4 ------------------------------ Sensor Value=1572 --> Fresh Air | 4 ------------------------------ Sensor Value=1571 --> Fresh Air | 4 ------------------------------ Sensor Value=1570 --> Fresh Air | 4 ------------------------------ Sensor Value=1572 --> Fresh Air | 4 ------------------------------ Sensor Value=1569 --> Fresh Air | 4 ------------------------------ Sensor Value=1567 --> Fresh Air | 4
Arduino Output
------------------------------ ad0=1558 Sensor_Value=1558--->Fresh Air currentAirQuality=4 ------------------------------ ad0=1551 Sensor_Value=1551--->Fresh Air currentAirQuality=4 ------------------------------ ad0=1544 Sensor_Value=1544--->Fresh Air currentAirQuality=4 ------------------------------ ad0=1538 Sensor_Value=1538--->Fresh Air currentAirQuality=4 ------------------------------ ad0=1532 Sensor_Value=1532--->Fresh Air currentAirQuality=4 ------------------------------ ad0=1527 Sensor_Value=1527--->Fresh Air currentAirQuality=4 ------------------------------ ad0=1521 Sensor_Value=1521--->Fresh Air currentAirQuality=4 ------------------------------ ad0=1516 Sensor_Value=1516--->Fresh Air currentAirQuality=4