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 14:06] – [Programmcode] biebl | www-fuer-alle:co2-ampel [2021/12/04 16:16] (aktuell) – [CO2-Ampel] biebl | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
* [[www-fuer-alle: | * [[www-fuer-alle: | ||
* Fragen und Anregungen: [[ARDUINO@GymSAS.de]] | * Fragen und Anregungen: [[ARDUINO@GymSAS.de]] | ||
+ | * [[https:// | ||
+ | * [[info: | ||
===== Varianten ===== | ===== Varianten ===== | ||
Zeile 10: | Zeile 12: | ||
* 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 24: | Zeile 37: | ||
* 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 47: | Zeile 71: | ||
RTC_DS3231 rtc; | RTC_DS3231 rtc; | ||
File Messdaten; | File Messdaten; | ||
+ | |||
+ | int z = 0; // globale Zaehlvariable für die SD-Kartennutzung in der loop | ||
/ | / | ||
Zeile 98: | Zeile 124: | ||
oled.println(" | oled.println(" | ||
oled.println(" | oled.println(" | ||
+ | tone(summer, | ||
+ | // delay(20); | ||
+ | noTone; | ||
+ | |||
/ | / | ||
Zeile 107: | Zeile 137: | ||
| | ||
| | ||
- | tone(summer, | + | noTone; |
- | | + | |
| | ||
| | ||
Zeile 156: | Zeile 185: | ||
| | ||
Serial.write(Messdaten.read()); | Serial.write(Messdaten.read()); | ||
+ | digitalWrite(blau, | ||
+ | digitalWrite(blau, | ||
+ | | ||
} | } | ||
| | ||
Zeile 163: | Zeile 195: | ||
Serial.println(" | Serial.println(" | ||
} | } | ||
+ | digitalWrite(blau, | ||
/ | / | ||
Zeile 172: | Zeile 205: | ||
} // 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 257: | Zeile 312: | ||
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 276: | Zeile 331: | ||
| | ||
| | ||
+ | | ||
+ | | ||
| | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
| | ||
} | } |