Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| www-fuer-alle:co2-ampel [2020/11/20 13:52] – [fertige Ampel] biebl | www-fuer-alle:co2-ampel [2026/01/05 10:10] (aktuell) – [CO2-Ampel] biebl | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== CO2-Ampel ====== | ====== CO2-Ampel ====== | ||
| + | |||
| + | * [[www-fuer-alle: | ||
| + | * Fragen und Anregungen: [[ARDUINO@GymSAS.de]] | ||
| + | * [[https:// | ||
| + | * [[info: | ||
| + | |||
| + | {{: | ||
| ===== Varianten ===== | ===== Varianten ===== | ||
| Zeile 7: | Zeile 14: | ||
| * LEDs und Buzzer | * LEDs und Buzzer | ||
| * LEDs, Buzzer und OLED-Anzeige | * LEDs, Buzzer und OLED-Anzeige | ||
| - | * LEDs, BUZZER, OLED-Anzeige und SD-Speicher | + | * LEDs, BUZZER, OLED-Anzeige und SD-Speicher |
| * LEDs, BUZZER, OLED-Anzeige und WLAN-Anbindung an einen Raspi mit Datenbank und Apache | * LEDs, BUZZER, OLED-Anzeige und WLAN-Anbindung an einen Raspi mit Datenbank und Apache | ||
| - | ===== fertige Ampel - LED mit Buzzer und OLED-Anzeige===== | ||
| - | {{: | + | * [[https:// |
| + | * [[https:// | ||
| + | ===== fertige Ampel - LED mit Buzzer und OLED-Anzeige (ohne UHR und SD-Karte)===== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | * Nano 5 € | ||
| + | * CO2-Sensor 20 € | ||
| + | * OLED 5 € | ||
| + | * Kleinteile 4 € | ||
| + | * POWERBANK 6 € | ||
| + | * 40 € pro Ampel | ||
| ===== Sensorbeschaltung ===== | ===== Sensorbeschaltung ===== | ||
| Zeile 21: | Zeile 39: | ||
| * Vin - +5V | * Vin - +5V | ||
| - | * HD über einen Taster an Masse zur Kalibrierung | + | * HD über einen Taster |
| + | |||
| + | ===== Messbeispiel ===== | ||
| + | |||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Breadboardvariante ===== | ||
| + | |||
| + | {{: | ||
| ===== Programmcode ===== | ===== Programmcode ===== | ||
| * Zusammenkopierter Sketch | * Zusammenkopierter Sketch | ||
| + | * ACHTUNG: der dieser Sketch ist für die kleinste (billigste) NANO-Variente zur groß. | ||
| + | * mit UHR und SD-Kartenschreiber | ||
| * Aufgabe: Reduziere den Programmcode auf ein Minimum | * Aufgabe: Reduziere den Programmcode auf ein Minimum | ||
| < | < | ||
| Zeile 44: | Zeile 73: | ||
| RTC_DS3231 rtc; | RTC_DS3231 rtc; | ||
| File Messdaten; | File Messdaten; | ||
| + | |||
| + | int z = 0; // globale Zaehlvariable für die SD-Kartennutzung in der loop | ||
| / | / | ||
| Zeile 95: | Zeile 126: | ||
| oled.println(" | oled.println(" | ||
| oled.println(" | oled.println(" | ||
| + | tone(summer, | ||
| + | // delay(20); | ||
| + | noTone; | ||
| + | |||
| / | / | ||
| Zeile 104: | Zeile 139: | ||
| | | ||
| | | ||
| - | tone(summer, | + | noTone; |
| - | | + | |
| | | ||
| | | ||
| Zeile 153: | Zeile 187: | ||
| | | ||
| Serial.write(Messdaten.read()); | Serial.write(Messdaten.read()); | ||
| + | digitalWrite(blau, | ||
| + | digitalWrite(blau, | ||
| + | | ||
| } | } | ||
| | | ||
| Zeile 160: | Zeile 197: | ||
| Serial.println(" | Serial.println(" | ||
| } | } | ||
| + | digitalWrite(blau, | ||
| / | / | ||
| Zeile 169: | Zeile 207: | ||
| } // ENDE Setup | } // ENDE Setup | ||
| - | void loop() { | + | / |
| + | * | ||
| + | * LOOP | ||
| + | * | ||
| + | ***********************************************************************************************************************/ | ||
| + | |||
| + | void loop() { | ||
| + | z = z+1; | ||
| ppm_pwm = readCO2PWM(); | ppm_pwm = readCO2PWM(); | ||
| - | messWertSchreibenSD(); | + | |
| + | | ||
| + | z = 0; // Zaehler zurueck setzen | ||
| + | } | ||
| oledAnzeige(); | oledAnzeige(); | ||
| - | delay(schreibPause); | + | delay(schreibPause); |
| } | } | ||
| + | |||
| + | / | ||
| + | * | ||
| + | * LOOP ENDE | ||
| + | * | ||
| + | ************************************************************************************************************************/ | ||
| + | |||
| + | / | ||
| + | * * | ||
| + | * Funktionen und Prozeduren | ||
| + | * * | ||
| + | *********************************/ | ||
| / | / | ||
| Zeile 242: | Zeile 302: | ||
| oled.println(" | oled.println(" | ||
| oled.println(" | oled.println(" | ||
| - | oled.println(" | + | oled.println(" |
| oled.println(" | oled.println(" | ||
| oled.println(" | oled.println(" | ||
| Zeile 254: | Zeile 314: | ||
| oled.println(now.minute(), | oled.println(now.minute(), | ||
| ledRot(); | ledRot(); | ||
| - | | + | ledGruen(); |
| if (ppm_pwm > mittlereQualitaet) { ledGelb(); } | if (ppm_pwm > mittlereQualitaet) { ledGelb(); } | ||
| if (ppm_pwm > schlechteLuft) | if (ppm_pwm > schlechteLuft) | ||
| Zeile 273: | Zeile 333: | ||
| | | ||
| | | ||
| + | | ||
| + | | ||
| | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| | | ||
| } | } | ||