Inhaltsverzeichnis:

Arduino Regenmesser-Kalibrierung - Gunook
Arduino Regenmesser-Kalibrierung - Gunook

Video: Arduino Regenmesser-Kalibrierung - Gunook

Video: Arduino Regenmesser-Kalibrierung - Gunook
Video: Using an Arduino with a Tipping Bucket Rain Gauge 2024, Juli
Anonim
Kalibrierung des Arduino-Regenmessers
Kalibrierung des Arduino-Regenmessers

Einführung:

In diesem Instructable "konstruieren" wir einen Regenmesser mit Arduino und kalibrieren ihn, um den täglichen und stündlichen Niederschlag zu melden. Der Regensammler, den ich verwende, ist ein wiederverwendeter Regenmesser vom Typ Kippeimer. Es stammte von einer beschädigten persönlichen Wetterstation. Es gibt jedoch viele großartige Instructables, wie man einen von Grund auf neu macht.

Dieses Instructable ist ein Teil einer Wetterstation, die ich mache und ist eine Dokumentation meines Lernprozesses, die als Tutorial getarnt ist:)

Eigenschaften des Regenmessers:

  • Die Messungen des täglichen und stündlichen Niederschlags werden in Zoll angegeben, um sie einfach in Weather Underground hochladen zu können.
  • Entprellcode für den Magnetschalter ist nicht enthalten, um den Code einfach zu halten.
  • da es sich eher um ein Tutorial handelt, ist das fertige Produkt eher ein Prototyp eines Prototyps.

Schritt 1: Etwas Theorie

Etwas Theorie
Etwas Theorie

Niederschlag wird in Millimetern oder Zoll angegeben/gemessen, was die Dimension der Länge hat. Es ist ein Hinweis darauf, wie hoch jeder Teil der Regenfläche den Regen bekommen hätte, wenn das Regenwasser nicht abgeführt und abgeleitet wäre. Eine Niederschlagsmenge von 1,63 mm würde also bedeuten, dass das gesammelte Regenwasser bei einem flachen Tank beliebiger Form eine Höhe von 1,63 mm über dem Boden des Tanks hätte.

Alle Regenmesser verfügen über ein Niederschlagseinzugsgebiet und eine Niederschlagsmengenmessung. Das Einzugsgebiet ist die Region, über die der Regen gesammelt wird. Das Messobjekt wäre eine Art Volumenmessung für eine Flüssigkeit.

Der Niederschlag in mm oder Zoll wäre also

Niederschlagshöhe = gesammelte Regenmenge / Einzugsgebiet

In meinem Regensammler betrugen die Länge und Breite 11 cm x 5 cm, was einem Einzugsbereich von 55 cm² entspricht. Eine Ansammlung von 9 Milliliter Regen würde also 9 cm³/55 cm² = 0,16363… cm = 1,6363… mm = 0,064 Zoll bedeuten.

Beim Kippschaufel-Regenmesser kippt die Schaufel 4 Mal für 9 ml (oder 0,064… Zoll Regen) und so ist eine einzelne Spitze für (9/4) ml = 2,25 ml (oder 0,0161.. Zoll). Wenn wir stündliche Ablesungen vornehmen (24 Ablesungen pro Tag vor dem Zurücksetzen), ist es ausreichend, die Genauigkeit von drei signifikanten Stellen beizubehalten.

Somit greift der Code bei jeder Eimerspitze/-tumble als 1 Ein-Aus-Ein-Sequenz oder ein Klick darauf zu. Ja, wir haben 0,0161 Zoll Regen gemeldet. Um es zu wiederholen, aus Arduino-Sicht

ein Klick = 0,0161 Zoll Regen

Anmerkung 1: Ich bevorzuge das Internationale Einheitensystem, aber Weather Underground bevorzugt die imperialen/US-Einheiten und daher diese Umrechnung in Zoll.

Hinweis 2: Wenn Berechnungen nicht Ihr Ding sind, gehen Sie zu Niederschlagsmenge, die perfekte Hilfe für solche Angelegenheiten bietet.

Schritt 2: Teile für dieses Projekt

Teile für dieses Projekt
Teile für dieses Projekt
Teile für dieses Projekt
Teile für dieses Projekt
Teile für dieses Projekt
Teile für dieses Projekt

Die meisten Teile lagen herum und eine faire Auflistung (für Formalitäten) ist

  1. Arduino Uno (oder ein anderes kompatibles)
  2. Regenmesser von alter beschädigter Wetterstation.
  3. Steckbrett.
  4. RJ11, um meinen Regenmesser mit dem Steckbrett zu verbinden.
  5. 10K oder höher Widerstand als Pull-Up-Widerstand. Ich habe 15K verwendet.
  6. 2 Stück Stecker-zu-Buchse-Überbrückungsdrähte
  7. 2 Stecker-zu-Stecker-Überbrückungskabel.
  8. USB-Kabel; A-Mann zu B-Mann

Werkzeuge:

Spritze (12 ml Fassungsvermögen wurde verwendet)

Schritt 3: Der Regensammler

Der Regensammler
Der Regensammler
Der Regensammler
Der Regensammler

Die Fotos meines Regensammlers sollen vielen klar machen. Jedenfalls wird der Regen, der auf sein Einzugsgebiet fällt, in einen der beiden darin befindlichen Kippeimer geleitet. Die beiden Kippeimer sind wie eine Wippe verbunden und wenn das Regenwassergewicht (0,0161 Zoll Regen für meinen) einen Eimer nach unten kippt, wird er geleert und die anderen Eimer gehen nach oben und positionieren sich selbst, um das nächste Regenwasser zu sammeln. Die Kippbewegung bewegt einen Magneten über einen 'Magnetschalter' und der Stromkreis wird elektrisch verbunden.

Schritt 4: Schaltung

Schaltkreis
Schaltkreis

Um die Schaltung zu machen

  1. Verbinden Sie den digitalen Pin # 2 von Arduino mit einem Ende des Widerstands.
  2. Verbinden Sie das andere Ende des Widerstands mit dem Massestift (GND).
  3. Verbinden Sie ein Ende der RJ11-Buchse mit dem digitalen Pin # 2 von Arduino.
  4. Verbinden Sie das andere Ende der RJ11-Buchse mit dem +5V-Pin von Arduino (5V).
  5. Stecken Sie den Regenmesser in den RJ11.

Die Schaltung ist fertig. Überbrückungsdrähte und Steckbrett erleichtern das Herstellen der Verbindungen.

Um das Projekt abzuschließen, verbinden Sie das Arduino mit dem USB-Kabel mit dem PC und laden Sie die unten bereitgestellte Skizze.

Schritt 5: Der Code

Die Skizze RainGauge.ino (am Ende dieses Schrittes eingebettet) ist gut kommentiert und daher werde ich nur auf drei Abschnitte hinweisen.

Ein Teil zählt die Anzahl der Kippschaufelspitzen.

if(bucketPositionA==false && digitalRead(RainPin) == HIGH){

… … }

Ein anderer Teil prüft die Zeit und berechnet die Regenmenge

if(now.minute()==0 && zuerst == true){

hourlyRain = dailyRain - dailyRain_till_LastHour; …… ……

und ein anderer Teil löscht den Regen für den Tag, um Mitternacht.

if(jetzt.stunde() == 0){

täglichRegen = 0; …..

Schritt 6: Kalibrierung & Prüfung

Trennen Sie den Regensammler vom Rest des Kreislaufs und führen Sie die folgenden Schritte aus.

  1. Füllen Sie die Spritze mit Wasser auf. Ich fülle meine mit 10 ml.
  2. Stellen Sie den Regensammler auf eine ebene Fläche und gießen Sie das Wasser nach und nach aus der Spritze aus.
  3. Ich zähle die Kippeimer. Mir reichten vier Spitzen, und 9 ml aus der Spritze abgelassen. Nach Berechnungen (siehe Theorieteil) habe ich die Menge von 0,0161 Zoll Regen pro Spitze bekommen.
  4. Ich füge diese Informationen am Anfang in meinen Code ein.

const double BucketAmount = 0,0161;

Das ist alles. Für mehr Genauigkeit können mehr Ziffern wie 0,01610595 hinzugefügt werden. Natürlich wird erwartet, dass Ihre berechneten Zahlen variieren, wenn Ihr Rain Collector nicht mit meinem identisch ist.

Zu Testzwecken

  1. Schließen Sie den Regensammler an die RJ11-Buchse an.
  2. Verbinden Sie den Arduino über das USB-Kabel mit dem PC.
  3. Öffnen Sie den seriellen Monitor.
  4. Gießen Sie zuvor abgemessene Wassermengen ein und beobachten Sie die Ausgabe, wenn die Stunde abgelaufen ist.
  5. Gießen Sie kein Wasser ein, sondern warten Sie, bis die nächste Stunde abgeschlossen ist. Der stündliche Regen muss in diesem Fall null sein.
  6. Lassen Sie den PC mit dem angeschlossenen Stromkreis über Nacht mit Strom versorgt und prüfen Sie, ob der tägliche Regen und der stündliche Regen um Mitternacht auf Null zurückgesetzt werden. Für diesen Schritt kann man auch die Uhr des PCs auf einen geeigneten Wert ändern (um die Ausgaben auf dem seriellen Monitor live zu sehen).

Schritt 7: Nachgedanken & Danksagungen

Die Auflösung der Niederschlagsmessungen beträgt in meinem Fall 0,0161 Zoll und kann nicht genauer gemacht werden. Praktische Umstände können die Genauigkeit weiter verringern. Wettermessungen haben nicht die Genauigkeit der Quantenmechanik.

Ein Teil des Codes wurde von Lazy Old Geeks Instructable ausgeliehen.

Empfohlen: