Das Wetter ist ein ewiges Thema, das uns alle beschäftigt. Ob für die Gartenarbeit, die Planung des Wochenendausflugs oder einfach aus Neugier – präzise Wetterdaten sind wertvoll. Doch während uns Wetter-Apps und -berichte allgemeine Prognosen liefern, sind sie selten spezifisch genug für unseren eigenen Garten oder Balkon. Genau hier kommt unser Projekt ins Spiel: Wir bauen unseren eigenen, smarten **Regenmesser**! Vergessen Sie das Nachschauen aus dem Fenster oder das manuelle Leeren eines Messbechers. Mit dem **Calliope mini** programmieren wir einen persönlichen „Wetterfrosch”, der uns auf Knopfdruck oder sogar automatisch über die gefallene Regenmenge informiert.
Dieses Projekt ist nicht nur praktisch, sondern auch ein hervorragender Einstieg in die Welt der Programmierung, Elektronik und des Internet of Things (IoT). Es verbindet spielerisch Hardware mit Software und zeigt Ihnen, wie einfach es sein kann, selbst nützliche Gadgets zu entwickeln. Sind Sie bereit, die Kontrolle über Ihre persönlichen Wetterdaten zu übernehmen? Dann tauchen wir ein!
### Warum der Calliope mini das ideale Herzstück ist
Der **Calliope mini** ist weit mehr als nur ein Spielzeug. Er ist ein vielseitiger Mikrocontroller, der speziell für Bildungszwecke entwickelt wurde, um Kindern und Anfängern einen spielerischen Zugang zur digitalen Welt zu ermöglichen. Aber lassen Sie sich davon nicht täuschen: Seine Leistungsfähigkeit reicht locker aus, um spannende und nützliche Projekte wie unseren smarten Regenmesser umzusetzen.
Was den **Calliope mini** so besonders macht, sind seine integrierten Funktionen und die benutzerfreundliche Programmierungsumgebung. Er verfügt über eine Reihe von Sensoren (Licht, Temperatur, Beschleunigung), eine LED-Matrix zur Anzeige, Tasten und einen Lautsprecher. All das macht ihn zu einem Alleskönner, der ohne viel zusätzliches Zubehör sofort einsatzbereit ist. Für unser Projekt schätzen wir besonders seine Fähigkeit, externe Sensoren anzuschließen und Ereignisse präzise zu verarbeiten – genau das, was wir für einen **Regenmesser** benötigen. Die Programmierung erfolgt visuell über die blockbasierte Oberfläche von **MakeCode**, was den Einstieg unglaublich einfach macht, ohne auf die Leistungsfähigkeit von Code verzichten zu müssen.
### Die benötigten Bauteile für Ihren smarten Wetterfrosch
Bevor wir in die Programmierung eintauchen, werfen wir einen Blick auf die Hardware, die wir für unseren smarten **Regenmesser** benötigen. Die gute Nachricht ist, die Liste ist kurz und die Komponenten sind leicht erhältlich.
1. **Calliope mini:** Das Gehirn unseres Projekts. Stellen Sie sicher, dass Sie die neueste Version haben (mittlerweile V3.0 verfügbar, aber ältere Versionen funktionieren auch).
2. **Kipplöffel-Regenmesser (Regensensor):** Dies ist der eigentliche Messmechanismus. Solche Sensoren sind oft als „Tipping Bucket Rain Gauge” bekannt und bestehen aus einem kleinen Kipplöffel, der bei einer bestimmten Menge Wasser (z.B. 0,2794 mm oder 0,2 mm) kippt und dabei einen Impuls auslöst. Im Inneren befindet sich meist ein Reed-Kontakt, der durch einen Magneten am Kipplöffel kurz geschlossen wird.
3. **Verbindungskabel (Jumper Wires):** Typischerweise Male-Female-Kabel, um den Sensor mit den Pins des **Calliope mini** zu verbinden.
4. **USB-Kabel:** Zum Programmieren des **Calliope mini** und für die erste Stromversorgung.
5. **Batteriepack (optional, aber empfohlen):** Um den **Regenmesser** später draußen betreiben zu können, benötigen Sie eine mobile Stromversorgung, meist 3x AA-Batterien mit Stecker für den Calliope mini.
6. **Wetterfestes Gehäuse (wichtig!):** Da unser **Regenmesser** draußen stehen wird, muss der **Calliope mini** vor Feuchtigkeit geschützt werden. Dies kann ein spezielles Outdoor-Gehäuse sein, eine umfunktionierte Plastikbox oder ein 3D-gedrucktes Gehäuse. Achten Sie auf Belüftung, um Kondensation zu vermeiden, und auf eine Kabeldurchführung, die dicht ist.
### Wie der Kipplöffel-Regenmesser funktioniert
Der Kipplöffel-Regenmesser ist genial in seiner Einfachheit und Effektivität. Stellen Sie sich einen kleinen Wippschalter vor: Er hat zwei kleine Auffangschalen. Wenn Regen in die eine Schale fällt und diese ein bestimmtes Gewicht erreicht, kippt sie um. Dabei entleert sich die volle Schale, und die andere, nun leere Schale, beginnt sich zu füllen. Dieser Kippvorgang ist genau das, was wir messen wollen.
Im Inneren des Kipplöffels ist ein kleiner Magnet befestigt. Jedes Mal, wenn der Löffel kippt, schwingt dieser Magnet an einem sogenannten Reed-Kontakt (einem kleinen, hermetisch verschlossenen Glasröhrchen mit zwei Eisenplättchen). Trifft der Magnet auf den Reed-Kontakt, schließen sich die beiden Plättchen kurzzeitig, was einen elektrischen Impuls erzeugt. Dieser Impuls ist unser „Zählimpuls”.
Die genaue Menge Regen, die einen Kippvorgang auslöst, ist kalibriert und hängt vom jeweiligen Sensor ab. Gängige Werte sind 0,2 mm oder 0,2794 mm (was 0,01 Zoll entspricht) pro Kippen. Diese Kalibrierungszahl ist entscheidend für unsere Berechnung der tatsächlichen Regenmenge.
### Die Hardware verbinden: Schritt für Schritt
Die Verbindung des **Regenmessers** mit dem **Calliope mini** ist denkbar einfach, da der Sensor nur zwei Kabel hat, die im Prinzip einen Schalter darstellen.
1. **Sensor identifizieren:** Ihr Kipplöffel-Regenmesser hat in der Regel zwei Anschlusskabel. Es spielt keine Rolle, welches Kabel wohin angeschlossen wird, da es sich um einen einfachen Schalter handelt.
2. **Verbindung mit dem Calliope mini:**
* Verbinden Sie eines der beiden Kabel des Regensensors mit einem digitalen Eingangs-Pin des **Calliope mini**, z.B. **Pin P1**. Der **Calliope mini** hat mehrere solche Pins, die sich gut eignen.
* Verbinden Sie das andere Kabel des Regensensors mit dem **GND-Pin** (Ground/Masse) des **Calliope mini**. Dies ist wichtig, um den Stromkreis zu schließen, wenn der Reed-Kontakt schließt.
3. **Hinweis zu Pull-Up/Pull-Down-Widerständen:** Reed-Kontakte sind einfache Schalter. Um ein klares Signal zu erhalten und „Flackern” (entstehendes Rauschen) zu vermeiden, ist es ideal, einen Pull-Up- oder Pull-Down-Widerstand zu verwenden. Glücklicherweise verfügt der **Calliope mini** über interne Pull-Widerstände, die wir in der Programmierung aktivieren können, sodass wir keine externen Widerstände benötigen. Das vereinfacht den Aufbau erheblich!
4. **Gehäuse und Platzierung:** Sobald die Kabel verbunden sind, platzieren Sie den **Calliope mini** sicher im wasserdichten Gehäuse. Stellen Sie sicher, dass die Kabelverbindungen ebenfalls wasserdicht sind und keine Feuchtigkeit eindringen kann. Der Regensensor selbst wird außerhalb des Gehäuses positioniert, idealerweise an einem offenen Ort ohne Überdachung, um die genaueste Messung zu gewährleisten. Achten Sie auf eine ebene und stabile Oberfläche, damit der Kipplöffel präzise arbeiten kann.
### Programmierung mit MakeCode: Ihr Code für den smarten Regenmesser
Nun kommt der spannendste Teil: Wir erwecken unseren **Regenmesser** zum Leben! Wir nutzen die intuitive Oberfläche von **MakeCode** (makecode.calliope.cc).
1. **Projekt starten:** Öffnen Sie den Browser und gehen Sie zu `makecode.calliope.cc`. Erstellen Sie ein neues Projekt.
2. **Variablen definieren:** Wir benötigen einige Variablen, um unsere Daten zu speichern und Berechnungen durchzuführen.
* `Regenmenge_mm`: Eine Zahl, die die gesamte bisher gefallene Regenmenge in Millimetern speichert. Initialisieren Sie diese mit 0.
* `Anzahl_Tips`: Eine Zahl, die zählt, wie oft der Kipplöffel gekippt ist. Initialisieren Sie diese ebenfalls mit 0.
* `Kalibrierfaktor`: Eine Konstante, die angibt, wie viele Millimeter Regen pro Kippen gemessen werden. Dies hängt von Ihrem Sensor ab. Bei 0,2794 mm pro Kippen setzen Sie diese Variable auf `0.2794`. Wenn Ihr Sensor 0,2 mm pro Kippen liefert, nutzen Sie `0.2`.
* `Letzter_Tip_Zeit`: Eine Zahl, die den Zeitpunkt des letzten Kippens in Millisekunden speichert. Das ist wichtig für die Entprellung (Debouncing), um Mehrfachzählungen bei einem einzigen Kippvorgang zu vermeiden. Initialisieren Sie diese mit 0.
* `Regenmenge_Heute_mm`: Eine Zahl für die tägliche Regenmenge. Initialisieren Sie diese mit 0.
3. **Beim Start-Block (`beim Start`):**
* Ziehen Sie den `beim Start`-Block in den Arbeitsbereich.
* Setzen Sie hier die Initialwerte für Ihre Variablen:
* `setze Regenmenge_mm auf 0`
* `setze Anzahl_Tips auf 0`
* `setze Kalibrierfaktor auf [Ihr Wert, z.B. 0.2794]`
* `setze Letzter_Tip_Zeit auf 0`
* `setze Regenmenge_Heute_mm auf 0`
* Konfigurieren Sie den Pin des Sensors. Gehen Sie zu „Erweitert” -> „Pins” und suchen Sie den Block `digitalen Pin Px auf Pull-Up setzen`. Wählen Sie den Pin aus, an den Sie Ihren Sensor angeschlossen haben (z.B. P1). Dies aktiviert den internen Pull-Up-Widerstand.
4. **Impulsverarbeitung (`bei Pin Px ist pressed` oder `bei Pin Px ist rising edge`):**
* Gehen Sie zu „Eingabe” -> „Pins” und wählen Sie den Block `bei Pin Px ist pressed`. Alternativ, und oft präziser für Impulse, kann man den Block `bei Pin Px ist rising edge` (steigende Flanke) verwenden. Wählen Sie hier den Pin aus, den Sie für den Sensor nutzen (z.B. P1).
* **Debouncing (Entprellung):** Ein Reed-Kontakt kann beim Schließen kurz „prellen” und so mehrere Impulse erzeugen, obwohl nur ein einziger Kippvorgang stattgefunden hat. Um dies zu vermeiden, implementieren wir eine Verzögerung.
* Innerhalb dieses Blocks fügen Sie einen `wenn/dann`-Block ein.
* Als Bedingung: `aktuelle Millisekunden – Letzter_Tip_Zeit > 200` (200 Millisekunden ist ein guter Startwert, um Prellen zu filtern. Sie können dies bei Bedarf anpassen).
* **Wenn die Bedingung wahr ist (neuer, gültiger Impuls):**
* `ändere Anzahl_Tips um 1`
* `setze Letzter_Tip_Zeit auf aktuelle Millisekunden`
* (Optional) Zeigen Sie kurz ein kleines Symbol auf der LED-Matrix an, um einen erkannten Tip zu visualisieren, z.B. `zeige Icon Herz`. Fügen Sie danach `pausiere (ms) 100` und `lösche Bildschirm` ein.
5. **Dauerhafte Anzeige und Berechnung (`dauerhaft`):**
* Ziehen Sie den `dauerhaft`-Block in den Arbeitsbereich. Dieser Code wird kontinuierlich ausgeführt.
* **Berechnung der Regenmenge:**
* `setze Regenmenge_mm auf Anzahl_Tips * Kalibrierfaktor`
* `setze Regenmenge_Heute_mm auf Anzahl_Tips * Kalibrierfaktor` (wenn wir davon ausgehen, dass `Anzahl_Tips` einmal täglich zurückgesetzt wird).
* **Anzeige auf der LED-Matrix:**
* Um die Daten anzuzeigen, können Sie `zeige Zahl` oder `zeige String` verwenden.
* Sie könnten beispielsweise alle paar Sekunden die aktuelle Gesamt-Regenmenge anzeigen:
* `zeige String „Regen:”`
* `zeige Zahl Regenmenge_mm`
* `pausiere (ms) 5000` (zeigt die Zahl für 5 Sekunden an)
* `lösche Bildschirm`
* **Überlegung zur täglichen/periodischen Rücksetzung:** Wenn Sie die Regenmenge pro Tag messen möchten, müssen Sie `Anzahl_Tips` und `Regenmenge_Heute_mm` täglich zurücksetzen. Da der **Calliope mini** keine Echtzeituhr (RTC) ohne zusätzliche Hardware hat, ist eine „reine” Tagesmessung komplexer.
* **Lösung 1 (Manuell):** Fügen Sie einen Reset-Button ein. Wenn z.B. die Tasten A und B gleichzeitig gedrückt werden:
* `bei Taste A + B gedrückt`
* `setze Anzahl_Tips auf 0`
* `setze Regenmenge_Heute_mm auf 0`
* `zeige String „Reset!”`
* `pausiere (ms) 1000`
* **Lösung 2 (Erweiterte Logik mit Zeit):** Wenn Sie eine externe RTC oder einen Trick nutzen, um die Uhrzeit zu schätzen (z.B. basierend auf der Laufzeit), könnten Sie Mitternacht erkennen und dann automatisch zurücksetzen. Für den Anfang ist die manuelle Lösung oder einfach die Gesamtsumme einfacher.
### Den Code auf den Calliope mini übertragen
1. **Kompilieren:** Klicken Sie auf den „Herunterladen”-Button im MakeCode-Editor. Der Browser lädt eine `.hex`-Datei herunter.
2. **Verbinden:** Schließen Sie Ihren **Calliope mini** über das USB-Kabel an Ihren Computer an. Er sollte als Wechseldatenträger namens „CALLIOPE” oder „MINI” erscheinen.
3. **Übertragen:** Ziehen Sie die heruntergeladene `.hex`-Datei per Drag-and-Drop auf das **Calliope mini**-Laufwerk.
4. **Fertig:** Der **Calliope mini** blinkt kurz, startet neu und beginnt, Ihr Programm auszuführen.
### Den Wetterfrosch in Aktion erleben
Nachdem Sie den Code übertragen haben, können Sie Ihren smarten **Regenmesser** in Betrieb nehmen.
1. **Platzierung:** Positionieren Sie den **Regenmesser** im Garten, auf dem Balkon oder an einem anderen geeigneten Ort, der direkten Regen abbekommt und nicht durch Bäume oder Dächer abgeschirmt wird. Stellen Sie sicher, dass das Gehäuse des **Calliope mini** sicher und wetterfest ist.
2. **Stromversorgung:** Schließen Sie das Batteriepack an den **Calliope mini** an, damit er autark arbeiten kann.
3. **Beobachten:** Bei Regen sollte der **Calliope mini** die Impulse des Sensors erkennen und die Regenmenge auf seiner LED-Matrix anzeigen. Testen Sie dies, indem Sie vorsichtig etwas Wasser in den Sensor gießen (tropfenweise), um das Kippen zu simulieren. Sie sollten sehen, wie die „Anzahl_Tips” steigt und die „Regenmenge_mm” aktualisiert wird.
### Weiterführende Ideen und Verbesserungen
Ihr Basis-Regenmesser ist ein großartiger Startpunkt. Aber die Welt des **Calliope mini** und IoT ist riesig! Hier sind einige Ideen, wie Sie Ihr Projekt erweitern können:
* **Datenprotokollierung:** Der **Calliope mini** hat begrenzten Speicher und keine einfache Möglichkeit, Daten langfristig zu speichern. Um die Regenmengen über Wochen oder Monate zu protokollieren, könnten Sie ihn mit einem Raspberry Pi oder einem anderen Mikrocontroller (z.B. ESP32 mit WLAN) verbinden. Der **Calliope mini** sendet dann die gezählten Impulse oder die berechnete Regenmenge über serielle Kommunikation (USB-Kabel zum Pi) oder drahtlos (über das Funkmodul des Calliope mini) an das Protokollierungsgerät.
* **Wetterstation erweitern:** Fügen Sie weitere Sensoren hinzu:
* **Temperatur- und Feuchtigkeitssensor (DHT11/DHT22):** Messen Sie Umgebungstemperatur und Luftfeuchtigkeit.
* **Windsensor:** Erfassen Sie Windgeschwindigkeit und -richtung.
* **Lichtsensor:** Der **Calliope mini** hat bereits einen eingebaut, nutzen Sie ihn für die Messung der Helligkeit.
* **Drahtlose Datenübertragung:** Nutzen Sie das integrierte Funkmodul des **Calliope mini**, um die Regenmenge an einen zweiten **Calliope mini** zu senden, der als Empfänger fungiert und die Daten an einem zentralen Ort anzeigt.
* **Benachrichtigungen:** Mit einem ESP32 oder Raspberry Pi könnten Sie E-Mail- oder Push-Benachrichtigungen an Ihr Smartphone senden, wenn eine bestimmte Regenmenge erreicht ist.
* **Web-Dashboard:** Noch ambitionierter wäre die Erstellung eines kleinen Webservers (z.B. auf einem Raspberry Pi), der die Daten visualisiert und von überall abrufbar macht.
* **Interaktive Anzeige:** Programmieren Sie verschiedene Anzeigemodi auf der LED-Matrix, die per Tastendruck umgeschaltet werden können (z.B. aktuelle Regenmenge, Tagesmenge, Gesamtmenge).
### Fazit: Mehr als nur ein Regensensor
Der Bau Ihres eigenen smarten **Regenmessers** mit dem **Calliope mini** ist ein lohnendes Projekt, das weit über das reine Messen von Niederschlag hinausgeht. Sie haben die Grundlagen der Elektronik, der Sensorintegration und der blockbasierten Programmierung kennengelernt. Sie haben gesehen, wie einfach es ist, eine Idee in ein funktionierendes, praktisches Gerät zu verwandeln.
Der **Calliope mini** ist ein fantastisches Werkzeug, das Türen zu unzähligen weiteren Projekten öffnet. Ob Sie nun eine Alarmanlage bauen, eine smarte Pflanze bewässern oder einfach nur die Welt um sich herum besser verstehen möchten – die Fähigkeiten, die Sie mit diesem Projekt erworben haben, sind universell einsetzbar. Experimentieren Sie weiter, stellen Sie Fragen und lassen Sie Ihrer Kreativität freien Lauf. Ihr persönlicher „Wetterfrosch” ist erst der Anfang einer spannenden Reise in die Welt der Maker und Programmierer!