add leds and sound

This commit is contained in:
GrafZeppelin 2021-03-20 12:43:41 +01:00
parent e96b88a9f2
commit 2ae2491a98
2 changed files with 46 additions and 3 deletions

View file

@ -25,7 +25,7 @@ v1.0 - First release
#define RLOAD 10.0
/// Calibration resistance at atmospheric CO2 level
// #define RZERO 76.63
#define RZERO 680
#define RZERO 480
/// Parameters for calculating ppm of CO2 from sensor resistance
#define PARA 116.6020682
#define PARB 2.769034857

View file

@ -5,14 +5,28 @@
#define PIN_MQ135 A0
#define PIN_DHT11 A1
#define PIN_LED_GREEN DD2
#define PIN_LED_YELLOW DD3
#define PIN_LED_RED DD4
#define PIN_NOISE DD5
MQ135 co2_sensor = MQ135(PIN_MQ135);
dht dht_sensor;
int count = 0;
float ppm = -1;
bool noise = false;
void setup() {
Serial.begin(9600);
pinMode(PIN_MQ135, INPUT);
pinMode(PIN_DHT11, INPUT);
pinMode(PIN_LED_GREEN, OUTPUT);
pinMode(PIN_LED_YELLOW, OUTPUT);
pinMode(PIN_LED_RED, OUTPUT);
pinMode(PIN_NOISE, OUTPUT);
}
void loop() {
float measure() {
Serial.print(RZERO);
Serial.println("---------------------------");
Serial.print("DHT:\t");
@ -57,6 +71,35 @@ void loop() {
float ppm = co2_sensor.getCorrectedPPM(dht_sensor.temperature, dht_sensor.humidity);
Serial.print ("ppm: ");
Serial.println (ppm);
return ppm;
}
delay(2000);
void loop() {
if (count >= 5 || ppm < 0) {
ppm = measure();
count = 0;
}
if (ppm < 1000) {
digitalWrite(PIN_LED_GREEN, 1);
digitalWrite(PIN_LED_YELLOW, 0);
digitalWrite(PIN_LED_RED, 0);
digitalWrite(PIN_NOISE, 0);
}
else if (ppm <= 2000) {
digitalWrite(PIN_LED_GREEN, 0);
digitalWrite(PIN_LED_YELLOW, 1);
digitalWrite(PIN_LED_RED, 0);
digitalWrite(PIN_NOISE, 0);
}
else {
digitalWrite(PIN_LED_GREEN, 0);
digitalWrite(PIN_LED_YELLOW, 0);
digitalWrite(PIN_LED_RED, 1);
noise = !noise;
digitalWrite(PIN_NOISE, noise);
}
delay(100);
count++;
}