Forum

Bitte oder Registrieren, um Beiträge und Themen zu erstellen.

Regenmengenmesser mit Reedkontakt

Hallo

Bitte um Hilfe an die Profis, wie kann ich einen Counter oder ähnliches erstellen der die Regenmenge mittels Regenmengenmesser mit Wippe und Reedkontakt misst? 1x Wippen sind 0.2794 mm Ich habe mir einen Regenmengenmesser https://imgaz.staticbg.com/images/oaupload/banggood/images/91/B1/76249e83-85e3-4a5e-afe4-b9cfe55b7b57.jpeg gekauft da ich mir eine Wetterstation bauen möchte. Ich habe eine Anleitung bzw. einen Sketch gefunden der bei mir nur Fehlermeldungen anzeigt. Sketch https://github.com/Jodaille/LyceeDesAndaines/blob/master/JaugePluieInterruption/JaugePluieInterruption.ino

Dieser RG11 im Sketch ist ein Regensensor den hab ich nicht.

 

Vielleicht kann mir irgendjemand dabei helfen. Danke im voraus

Hallo Harry05, ich habe dir einen kurzen Sketch zusammengestellt, der jedes mal wenn der Reedkontakt einen Input gibt, den Counter um eins erhöht und die Wassermenge addiert und in den Serial Monitor ausgibt.

Ich habe bei meinem Test einen Taster verwendet mit einem PULL-DOWN Widerstand (1 kOhm). Der Eingang vom Taster (deinem Sensor) habe ich auf einem NodeMCU auf D1 gelegt (GPIO 5)

Siehe dazu die Zeichnung.

 

const float Bucket_Size = 0.2794;
const int sensorPin = 5; // der Input Pin D1, wo der Sensor angehängt ist
int sensorState = 0;
int lastSensorState = 0;
long lastMsg = 0;
int wippZaehler = 0;
float Regenmenge = 0;

void setup() {
Serial.begin(9600);
pinMode(sensorPin, INPUT);
}

void loop() {
sensorState = digitalRead(sensorPin);
if (sensorState != lastSensorState) {
if (sensorState == HIGH) {
wippZaehler++;
Regenmenge = wippZaehler * Bucket_Size;
Serial.print("Wippe Zähler ");
Serial.println(wippZaehler);
Serial.print("Regenmenge ");
Serial.print(Regenmenge);
Serial.println(" mm");

} else {
Serial.println("Wippe zurück in Startposition");
}
// Kurze Pause zum entprellen
delay(100);
}
lastSensorState = sensorState;
}

Harry05 hat auf diesen Beitrag reagiert.
Harry05

Vielen Dank für die ausführliche Anleitung und den Sketch der macht genau das was ich wollte 🙂 , jetzt noch eine frage dazu wie kann man den gezählten Wert mittels eines Timers alle 24 h auf 0 setzen? Ich habe gelesen es soll mittels NTP Timer funktionieren oder mit einem normalen Timer. Ich habe jetzt schon viel probiert bin aber noch nicht auf einen grünen Zweig gekommen.

 

vielen Dank im voraus

Hallo Harry,

hier eine Timer-Programmierung. Es hoffe es hilft dir.

//------------------------------------------------------
//-              Multitasking Timer                   -
//------------------------------------------------------
unsigned long WaitTimer;                              // Time: Timer mit Namen definieren
long Wait = 86400000;                                   // Time: Timer Wartezeit (24Std in ms)

void Setup()
{
.
.
.
WaitTime = millis;                                        // Timer: Startzeit übergeben
}

void loop()
{
if((millis() - WaitTimer >= Wait)                   // Wenn 24 Std. abgelaufen
{
>> Wert auf 0 setzen<<                        // Gewünschten Wert zurücksetzen
WaitTimer = millis;                                 // Neue Startzeit übergeben
}

.

.
}

Viel Erfolg Hubert

 

Klingt sehr interessant.

Kann jemand einen blueprint für esp in home assistant erstellen?

Es gibt bestimmt einige die es auch einsetzen würden