X-Git-Url: https://git.toastfreeware.priv.at/toast/airingbutler.git/blobdiff_plain/b4d3ce956ec69c81f240e37aa4f381533c4b6c73..f1d8251ceeebcba517453da6c75293f20958a59e:/airingbutler.ino diff --git a/airingbutler.ino b/airingbutler.ino index c05a737..ef2d874 100644 --- a/airingbutler.ino +++ b/airingbutler.ino @@ -11,39 +11,34 @@ const int led_red_pin = 6; const int buzzer_pin = 13; -/* -const int lcd_pin = 7; -const int lcd_pin = 8; -const int lcd_pin = 9; -const int lcd_pin = 10; -const int lcd_pin = 11; -const int lcd_pin = 12; -*/ - const int co2_warning_thr = 1000; const int co2_alarm_thr = 1500; MHZ19 mhz19 = MHZ19(rx_pin,tx_pin); -LiquidCrystal lcd(7,8,9,10,11,12); +LiquidCrystal lcd(7, 8, 9, 10, 11, 12); unsigned long time; +int co2 = 0; +int temp = 0; int lastppm = 0; void setup() { - Serial.begin(115200); - Serial.println("Time,CO2,Temp"); - mhz19.begin(rx_pin, tx_pin); + Serial.begin(115200); + Serial.println("Time,CO2,Temp"); + + // MH-Z19 + mhz19.begin(rx_pin, tx_pin); // LCD - lcd.begin(16,2); - lcd.setCursor(0,0); + lcd.begin(16, 2); + lcd.setCursor(0, 0); lcd.print("Airing Butler"); - lcd.setCursor(0,1); + lcd.setCursor(0, 1); lcd.print("says hello!"); - // led+buzzer + // LEDs + buzzer pinMode(led_green_pin, OUTPUT); pinMode(led_yellow_pin, OUTPUT); pinMode(led_red_pin, OUTPUT); @@ -60,27 +55,29 @@ void setup() digitalWrite(buzzer_pin, HIGH); delay(200); digitalWrite(buzzer_pin, LOW); - + lcd.clear(); } void loop() { - time = millis(); - measurement_t m = mhz19.getMeasurement(); - - Serial.print(time); - Serial.print(","); - Serial.print(m.co2_ppm); - Serial.print(","); - Serial.println(m.temperature); - - digitalWrite(led_red_pin, m.co2_ppm >= co2_alarm_thr); - digitalWrite(led_yellow_pin, m.co2_ppm >= co2_warning_thr && m.co2_ppm < co2_alarm_thr); - digitalWrite(led_green_pin, m.co2_ppm < co2_warning_thr); - - if (m.co2_ppm >= co2_alarm_thr && lastppm < co2_alarm_thr) { + time = millis(); + measurement_t m = mhz19.getMeasurement(); + co2 = m.co2_ppm; + temp = m.temperature; + + Serial.print(time); + Serial.print(","); + Serial.print(co2); + Serial.print(","); + Serial.println(temp); + + digitalWrite(led_red_pin, co2 >= co2_alarm_thr); + digitalWrite(led_yellow_pin, co2 >= co2_warning_thr && co2 < co2_alarm_thr); + digitalWrite(led_green_pin, co2 < co2_warning_thr); + + if (co2 >= co2_alarm_thr && lastppm < co2_alarm_thr) { digitalWrite(buzzer_pin, HIGH); delay(100); digitalWrite(buzzer_pin, LOW); @@ -94,17 +91,21 @@ void loop() digitalWrite(buzzer_pin, LOW); } - if (m.co2_ppm >= co2_warning_thr && lastppm < co2_warning_thr) { + if (co2 >= co2_warning_thr && lastppm < co2_warning_thr) { digitalWrite(buzzer_pin, HIGH); delay(500); digitalWrite(buzzer_pin, LOW); } - lcd.setCursor(0,0); + lcd.setCursor(0, 0); lcd.print("CO2: "); - lcd.print(m.co2_ppm); - lcd.print(" ppm "); - - lastppm = m.co2_ppm; - delay(5000); + lcd.print(co2); + lcd.print(" ppm "); + lcd.setCursor(0, 1); + lcd.print("Temp: "); + lcd.print(temp); + lcd.print(" C +/- "); + + lastppm = co2; + delay(5000); }