Grove - Air Quality Sensor
Version från den 29 oktober 2018 kl. 09.14 av Christian (diskussion | bidrag)
Denna sensor är designad för monitorering av inomhusluft. Det är mottagligt för ett brett spektrum av skadliga gaser, som kolmonoxid, alkohol, aceton, tunnare, formaldehyd och så vidare. På grund av mätmekanismen kan denna sensor inte mata ut specifik data för att kvantitativt beskriva målgaskoncentrationernas koncentrationer. Men det är fortfarande tillräckligt kompetent att användas i applikationer som kräver endast kvalitativa resultat, som automatisk upprepnings sprutor och auto-luftcykelsystem.
Kompatibilitet
- Arduino
- Raspberry Pi
Port
Analog
Exempelkod
Arduino
#include "AirQuality.h"
#include "Arduino.h"
AirQuality airqualitysensor;
int current_quality =-1;
void setup()
{
Serial.begin(9600);
airqualitysensor.init(14);
}
void loop()
{
current_quality=airqualitysensor.slope();
if (current_quality >= 0)// if a valid data returned.
{
if (current_quality==0)
Serial.println("High pollution! Force signal active");
else if (current_quality==1)
Serial.println("High pollution!");
else if (current_quality==2)
Serial.println("Low pollution!");
else if (current_quality ==3)
Serial.println("Fresh air");
}
}
ISR(TIMER2_OVF_vect)
{
if(airqualitysensor.counter==122)//set 2 seconds as a detected duty
{
airqualitysensor.last_vol=airqualitysensor.first_vol;
airqualitysensor.first_vol=analogRead(A0); // change this value if you use another A port
airqualitysensor.counter=0;
airqualitysensor.timer_index=1;
PORTB=PORTB^0x20;
}
else
{
airqualitysensor.counter++;
}
}
Raspberry Pi
import time
import grovepi
# Connect the Grove Air Quality Sensor to analog port A0
# SIG,NC,VCC,GND
air_sensor = 0
grovepi.pinMode(air_sensor,"INPUT")
while True:
try:
# Get sensor value
sensor_value = grovepi.analogRead(air_sensor)
if sensor_value > 700:
print "High pollution"
elif sensor_value > 300:
print "Low pollution"
else:
print "Air fresh"
print "sensor_value =", sensor_value
time.sleep(.5)
except IOError:
print "Error"