This sensor is designed for comprehensive monitor over indoor air condition. It's responsive to a wide scope of harmful gases, as carbon monixide, alcohol, acetone, thinner, formaldehyde and so on. Due to the measuring mechanism, this sensor can not output specific data to describe target gases' concentrations quantitatively. But it's still competent enough to be used in applications that require only qualitative results, like auto refresher sprayers and auto air cycling systems.

Dependencies:   Grove_Air_Quality_Sensor_Library mbed

Fork of Seeed_Grove_Air_Quality_Sensor_Example by Austin Blackstone

Committer:
mbedAustin
Date:
Fri Sep 05 19:17:20 2014 +0000
Revision:
1:888328032581
Parent:
0:2dbce8e35862
Added interrupt driven library and made example more robust

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedAustin 1:888328032581 1
mbedAustin 1:888328032581 2 #include"mbed.h"
mbedAustin 1:888328032581 3 #include"Air_Quality.h"
mbedAustin 1:888328032581 4 AirQuality airqualitysensor;
mbedAustin 1:888328032581 5 int current_quality = -1;
mbedAustin 1:888328032581 6 PinName analogPin = A0;
mbedAustin 0:2dbce8e35862 7
mbedAustin 1:888328032581 8 // Interrupt Handler
mbedAustin 1:888328032581 9 void AirQualityInterrupt()
mbedAustin 1:888328032581 10 {
mbedAustin 1:888328032581 11 AnalogIn sensor(analogPin);
mbedAustin 1:888328032581 12 airqualitysensor.last_vol = airqualitysensor.first_vol;
mbedAustin 1:888328032581 13 airqualitysensor.first_vol = sensor.read()*1000;
mbedAustin 1:888328032581 14 airqualitysensor.timer_index = 1;
mbedAustin 1:888328032581 15 }
mbedAustin 0:2dbce8e35862 16
mbedAustin 1:888328032581 17 // Main loop
mbedAustin 1:888328032581 18 int main()
mbedAustin 1:888328032581 19 {
mbedAustin 1:888328032581 20 airqualitysensor.init(analogPin, AirQualityInterrupt);
mbedAustin 1:888328032581 21 while(1) {
mbedAustin 1:888328032581 22 current_quality=airqualitysensor.slope();
mbedAustin 1:888328032581 23 if (current_quality >= 0) { // if a valid data returned.
mbedAustin 1:888328032581 24 if (current_quality == 0)
mbedAustin 1:888328032581 25 printf("High pollution! Force signal active\n\r");
mbedAustin 1:888328032581 26 else if (current_quality == 1)
mbedAustin 1:888328032581 27 printf("High pollution!\n\r");
mbedAustin 1:888328032581 28 else if (current_quality == 2)
mbedAustin 1:888328032581 29 printf("Low pollution!\n\r");
mbedAustin 1:888328032581 30 else if (current_quality == 3)
mbedAustin 1:888328032581 31 printf("Fresh air\n\r");
mbedAustin 1:888328032581 32 }
mbedAustin 0:2dbce8e35862 33 }
mbedAustin 0:2dbce8e35862 34 }