MODE 2 — KLIMA LAB

Easy · 1h · Fast kostenlos

Ziel & Anwendung

Fünf Servo-Zeiger zeigen gleichzeitig Temperatur, Luftdruck und Luftfeuchte des BME280 an. Zwei 360°-Servos fungieren als lebendige Trend-Indikatoren: steigt die Temperatur, dreht S4 nach rechts — fällt der Druck, schlägt S5 nach links. Bei Extremwerten (>35 °C oder >85 % Feuchte) löst der Buzzer automatisch Alarm aus.

  • BME280-Messdaten (Temperatur, Druck, Feuchte) als analoge Servo-Zeiger darstellen.
  • Trend-Erkennung durch periodischen Sensorwert-Vergleich implementieren.
  • Alarm-Schwellen für Extrembedingungen definieren und am echten Sensor testen.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoTemperatur-Zeiger
S2180°-ServoLuftdruck-Zeiger
S3180°-ServoLuftfeuchte-Zeiger
S4360°-ServoTemperatur-Trend-Anzeige
S5360°-ServoLuftdruck-Trend-Anzeige
S6180°-ServoLuftfeuchte-Trend-Anzeige
STEPPERSchrittmotorKombinierte Feinskala aller drei Messwerte
DCDC-MotorKurze Vibration beim Erreichen eines Extremwerts

Materialliste

  • Kartonstreifen je ca. 10 × 2 cm als Zeiger (5 Stück)
  • Rechteckige Kartonbox ca. 20 × 15 cm als Messgehäuse
  • Strohhalme als Zeiger-Achsenlager
  • Filzstift für Skalenbeschriftung
  • Klebeband und Heißkleber

Step-by-Step Tutorial

  1. Klima-Konsole aufbauen

    Kartonbox (20 × 15 cm) hochkant aufstellen. Fünf gleichmäßig verteilte Schlitze für Servo-Hörner ausschneiden. Obere Reihe groß: S1 (Temp), S2 (Druck), S3 (Feuchte). Untere Reihe kleiner: S4 (Temp-Trend), S5 (Druck-Trend). Basis mit Schrauben oder Steinen auf mindestens 150 g beschweren.

    Check: Kartonbox steht stabil — fünf Servo-Positionen markiert: drei oben für Hauptzeiger, zwei unten für Trend

    Tipp: Gehäuse mit Steinen innen beschweren — fünf Servos machen die Box top-heavy. Basis mindestens so breit wie die Höhe.

  2. Haupt-Zeiger S1–S3 montieren

    Für jeden Servo zuerst das Plastik-Servo-Horn aufschrauben. Zeiger-Karton (8 × 1,5 cm, Pfeilform) flächig auf das Horn kleben. Skala mit Filzstift aufteilen: S1 hat 10 Teilstriche (5 °C je Strich), S3 hat 10 Teilstriche (10 % je Strich). Servos nutzen mapTemperature und mapPressure direkt.

    Check: S1 zeigt 0–50 °C, S2 950–1050 hPa, S3 0–100 % Feuchte über den vollen Servo-Hub

    Tipp: Zeiger maximal 8 cm lang halten — längere Zeiger überlasten die kleinen Servos. Dünnes Papier statt dickem Karton verwenden.

  3. Trend-Indikatoren S4/S5 aufbauen

    S4 und S5 (360°) als Trend-Pfeile: Mitnehmer mit Pfeil-Karton (3 × 1 cm) versehen. Neutralposition 1500 µs zeigt waagrecht. Code: tempTrend = temperature - lastTemp (alle 5 Sekunden). S4 = constrain(1500 + tempTrend × 200, 1000, 2000). Gleich für S5 mit pressTrend × 100.

    Check: S4 dreht rechts bei steigender Temperatur, links bei fallender. S5 entsprechend für Luftdruck.

    Tipp: 360°-Servos: 1500 µs = Stopp, >1500 = dreht rechts (Wert steigt), <1500 = dreht links (Wert fällt). Kleinen Pfeil-Karton auf Mitnehmer kleben.

  4. Leichtgängigkeits-Test ohne Strom

    Jeden Zeiger von Hand an der Achse drehen: kein Klemmen, kein Schleifen? Trend-Pfeile (S4/S5) eine volle Runde drehen: nirgends Widerstand? Erst nach bestandenem Mechanik-Test ProtoPeaks einschalten.

    Check: Alle fünf Zeiger drehen frei von Hand. Trend-Pfeile rotieren ungehindert.

    Tipp: 360°-Servo-Mitnehmer müssen komplett frei drehen — Karton-Pfeil darf nicht am Gehäuse streifen.

  5. MODE 2 aktivieren — Klimawerte live beobachten

    Messgeräte → MODE 2. Display zeigt Temperatur, Feuchte und Luftdruck. Körperwärme neben Sensor: S1 steigt, S4 dreht rechts. Feuchten Finger daneben: S3 steigt. Trend-Zeiger aktualisieren alle 5 s. Bei Temp >35 °C oder Feuchte >85 %: Buzzer LONG_BLINK Alarm.

    Check: Alle drei Zeiger reagieren auf Umgebungsänderungen. Trend-Indikatoren schwenken korrekt.

    Tipp: Hand über BME280 halten: S1 (Temp) steigt sichtbar. Feuchten Finger daneben halten: S3 (Feuchte) reagiert. Warten dann auf Trend-Update nach 5 Sekunden.

  6. Alarm-Schwellen testen

    Körperwärme nahe BME280 halten: Temperatur steigt auf >35 °C → Buzzer LONG_BLINK. Entfernen: Alarm stoppt sobald Wert wieder unter 35 °C fällt. Sensor kurz anhauchen: Feuchte >85 %? Alarm? Beide Quellen separat testen.

    Check: Buzzer löst bei Grenzwert-Überschreitung aus und verstummt wieder wenn Wert fällt

    Tipp: Grenzwerte: temperature > 35 ODER humidity > 85 (OR-Logik) — jede Bedingung allein reicht für Alarm.

Troubleshooting

  • S4/S5 drehen ununterbrochen ohne erkennbaren Trend — Natürliche BME280-Messschwankungen erzeugen kleinen ständigen Trend. Multiplikator von 200 auf 50 reduzieren oder Totband ±0,5 °C einbauen bevor tempTrend berechnet wird.
  • S3 (Luftfeuchte) reagiert sehr träge — BME280 hat physikalisch langsame Feuchtigkeitsmessung (~1 Sekunde). Das ist normal. Sensor nicht abdecken — freie Luftzirkulation ist zwingend nötig.

Modifikationen & Sicherheit

  • Pro-Tipp: Farbige Zonen auf der Skala (grün=normal, gelb=Warnung, rot=Alarm) für sofortige visülle Erkennung aufmalen.
  • Erweiterung: Encoder-Drehung als justierbare Alarm-Schwelle — flexibel für verschiedene Umgebungen.
  • Sicherheit: BME280 nicht in direktem Sonnenlicht oder Zugluft platzieren — verfälscht Messwerte erheblich.

Wichtige Code-Teile

// S1: Temperatur, S2: Luftdruck, S3: Feuchte
servocontroller.setServoPulse(1, mapTemperature);
servocontroller.setServoPulse(2, mapPressure);
servocontroller.setServoPulse(3, map(constrain((int)humiditiy, 0, 100), 0, 100, 1000, 2000));
// S4/S5 (360°): Trend-Indikatoren alle 5 Sekunden
static float lastTemp1 = 20.0f, lastPress1 = 1013.0f;
float tempTrend = temperature - lastTemp1;
float pressTrend = pressure - lastPress1;
if(millis() % 5000 < 260) { lastTemp1 = temperature; lastPress1 = pressure; }
servocontroller.setServoPulse(4, constrain(1500 + (int)(tempTrend * 200), 1000, 2000));
servocontroller.setServoPulse(5, constrain(1500 + (int)(pressTrend * 100), 1000, 2000));
// Alarm
if(temperature > 35 || humiditiy > 85) Buzzer.setMode(LONG_BLINK); else Buzzer.setValue(0);

Ähnliche Projekte

  • MODE 1 — VOLTMETER — Drei Servo-Zeiger verwandeln den ProtoPeaks in ein echtes Analog-Messgerät: S1 zeigt den 0–3,3 V Direkt-Bereich, S2 den erweiterten 0–10 V Bereich via simuliertem Spannungsteiler, S3 misst parallel die LDR-Lichtspannung. Der Stepper rollt wie ein mechanischer Rollenzähler mit und der DC-Motor warnt bei hoher Spannung.
  • MODE 3 — WASSERWAAGE — Drei Servo-Zeiger visualisieren X- und Y-Neigung sowie die Gesamtneigung (Pythagoras-Betrag) in Echtzeit. Ein Stepper korrigiert sich automatisch gegen die Neigung — dreht sich der ProtoPeaks schief, dreht der Stepper entgegen. Bei perfekter Waage (Neigung <1°) ertönt ein kurzer Bestätigungs-Piepton.
  • MODE 4 — RANGEFINDER — Der Ultraschall-Sensor wird zum Distanzmessgerät mit drei Skalen: S1 zeigt den Grobbereich 0–200 cm, S2 den zyklischen Feinbereich (jede 20-cm-Dekade wiederholt), S3 den kritischen Nahbereich. Der Stepper fährt wie ein mechanisches Maßband proportional zur Distanz — und DC-Motor plus Buzzer warnen bei Annäherung unter 10 cm.