[gelöst] RadioHead Wetterstation mit Regenwippe

Hallo zusammen,
ich habe mir diese Wetterstation auf einem Arduino Nano aufgebaut.
Statt des DHT22 habe ich einen BME280 dran.
Der Code auf der Webseite ist leider nicht mehr verfügbar. Ich habe ihn aber noch bei mir im Archiv.

Der Arduino startet, sendet die Sensordaten über 433MHz und legt sich wieder für 56 Sekunden schlafen.
Funktioniert 1A. Mein rh_radio_ask_gateway empfängt die Daten und schickt sie Seriell an die Pimatic weiter.

Was machen die vielen Registerfunktionen? Das kann mir doch bestimmt ein hier anwesender Profi erklären.

Jetzt soll da auch noch eine Regenwippe dran, die per Interrupt die Impulse zählt.
Geht das? Schickt der Arduino bei jedem Regenimpuls auch wieder die Sensordaten?
Konnte es leider noch nicht live ausprobieren, da die Regenwippe noch auf dem Postweg ist.

Code ist im Anhang

rh-bme280-weather-sensor.zip (3.73 KB)

Du bist doch lange genug hier, um zu wissen, dass der Sketch besser direkt im Forum gepostet werden soll.
Als zip-Datei ist das eh die schlechteste Lösung.

Geht leider nicht >:(
The message exceeds the maximum allowed length (9000 characters).

Dann hänge es als .txt ran.
Das ist mobil einfacher, als zip.

Gruß Tommy

Ok, dann hier:

rh-bme280-weather-sensor.txt (9.47 KB)

Ok, danke....was mir allerdings dazu einfällt, bei einem Regensensor (Wippe) macht es allerdings keinen wirklichen Sinn, den Arduino schlafen zu legen. Wie willst du dann die Regenmenge zählen ?
Das solltest du vorher mal überdenken, bevor wir Änderungen am Sketch vornehmen.

Ich habe es so vor:
Der Arduino startet, initialisiert den BME, checkt die Spannungsversorgung, sendet die Daten über Funk und geht 7*8 Sekunden schlafen.

Dann wacht er auf, sendet die Sensordaten als ByteArray und geht wieder schlafen.

Wenn aber während der Schlafzeit die Regenwippe klappert, soll er den Impuls via Interrupt checken, den IRQCount hochzählen und wieder schlafen gehen, ohne die Daten zu senden.

Huch, die 56 Sekunden sind um: Aufwachen und das ByteArray mit allen Sensordaten senden.

freddy64:
Ich habe es so vor:

Wenn aber während der Schlafzeit die Regenwippe klappert, soll er den Impuls via Interrupt checken, den IRQCount hochzählen und wieder schlafen gehen, ohne die Daten zu senden.
Huch, die 56 Sekunden sind um: Aufwachen und das ByteArray mit allen Sensordaten senden.

Ach, das erinnert mich ganz stark an die FineOffset Wetterstationen....
und wenn Du Gefallen an Deinem Bastelteil gefunden hast
... den zweiten Interrupt nutzt Du dann für die Windgeschwindigkeit

Ja, was Du vorhast: geht.

Ok, das mit dem IRQ habe ich übersehen, dann funktioniert das sicherlich.

YES, funktioniert Regenimpulse werden gezählt nur.....
Wie bekomme ich den Zähler stündlich wieder auf 0?
RTC an den Arduino oder soll ich das der Auswertung auf dem Empfänger überlassen?
Der Wettersensor soll schließlich so stromsparend wie möglich arbeiten.

freddy64:
Wie bekomme ich den Zähler stündlich wieder auf 0?

zaehler=0;

RTC an den Arduino oder soll ich das der Auswertung auf dem Empfänger überlassen?
Der Wettersensor soll schließlich so stromsparend wie möglich arbeiten.

Aaalso.
Eine temperaturkompensierte RTC kommt mit ner cr2032 Batterie, die mehr als ein Jahr hält.
Brauchst halt nur etwas Zeit um die Daten via I2C zu empfangen und auszuwerten.
Dazu schaust bei jedem Weckzyklus ob sich die Minute geändert hat - wenn ja, dann Zähler rücksetzen - nach dem übertragen.
Wobei wir auch schon beim Thema wären.
ICH würde die Impulse in eine Übertraungsvariable summieren den Zaehler auf 0 setzen, übertragen und dann die Übertragungsvariable auf 0 setzen, wenn eine Antwort der Gegenstation kommt, das die Daten da sind..
Geht die Übertragung schief, wird wieder aufsummiert und es geht nichts verloren. gleichzeitig wird ein "Übertragungsfehlerbit" gesetzt, sodas ggfls. ausgewertet werden kann und die Mengen nicht unter den Tisch fallen.

Hab jetzt eine RTC dran gehängt, da alle Versuche mit Arduino Timern fehlgeschlagen sind.
Die chrashen entweder mit der RH library oder bringen den Regenwippenzähler zum Stillstand.

...wenn eine Antwort der Gegenstation kommt, das die Daten da sind..

Das Teil sendet nur über 433Mhz Modul und empfängt keine Quittung.

Mit dem jetzigen Setup kann ich leben. Muss nur den loop ändern, weil sonst bei Dauerregen alle 8 Sekunden die Daten gesendet werden und die Batterie dann bestimmt nicht lange hält.

Als Stromversorgung werde ich dann wohl auf eine Powerbank statt Mignonzellen umstellen.
... oder gleich einen Bleigel-Akku unter die Wetterstation stellen. Davon habe ich nach jedem Wechsel der Akkus von der USV in der Arbeit genügend.

Yeah, Timer geht, Interrupt geht.
Die Wetterstation sendet die Umweltdaten, geht schlafen und wird durch den RTC-Alarm jede volle Minute wieder aufgeweckt.
Alle 30 wakeups wird der Batteriezustand gesendet.

Current Date and Time is: 26.11.2020 14:30:00
Temperature is: 18.9°C, Humidity is: 59.2%, Air pressure is: 1017hPa, Rain is: 11.46mm/m²

Current Date and Time is: 26.11.2020 14:31:00
Battery is 100% full, Battery raw value is: 255
Temperature is: 18.9°C, Humidity is: 59.3%, Air pressure is: 1017hPa, Rain is: 11.46mm/m²

Current Date and Time is: 26.11.2020 14:32:00
Temperature is: 18.8°C, Humidity is: 59.3%, Air pressure is: 1017hPa, Rain is: 11.46mm/m²

Das RH Gateway empfängt zuverlässig die Daten und leitet sie seriell über USB an die Pimatic weiter.

rh-bme280-weather-sensor_ds3231.txt (11.2 KB)

freddy64:
Yeah, Timer geht, Interrupt geht.
Die Wetterstation sendet die Umweltdaten, geht schlafen und wird durch den RTC-Alarm jede volle Minute wieder aufgeweckt.
Alle 30 wakeups wird der Batteriezustand gesendet.
Das RH Gateway empfängt zuverlässig die Daten und leitet sie seriell über USB an die Pimatic weiter.

Na sowas!
Ich hab die Funktionsmeldung leider überlesen.
Danke dafür!
Und für den Output.
Im Übrigen wird die Angabe Rainfall NUR mit mm angegeben. Da ist es vollkommen wurscht, ob auf einem cm² oder einem m² 1mm steht.
Das Ergebnis wird dann immer in liter/m² angegeben - also entscheide Dich.

Eine Entscheidung, die einfacher ist:
Bitte in Deinem ersten Post kurz auf modify und ein [gelöst] in die Betreffzeile - dann hilft es ggfls. auch anderen.

OK, dann ändere ich das noch.
Der Wetterbericht sagt den Regen auch immer nur in mm an.

freddy64:
Der Wetterbericht sagt den Regen auch immer nur in mm an.

Naja, Ansage vom Wetterbericht eher nicht :wink:
Aber da siehst Du, das es auf Formulierungen gerne mal ankommt.

Wenn 1mm auf 1cm² gemessen, sollte auch 1mm auf 1m² gemessen werden.
Wenn 1L auf 1cm² gemessen, ist höchst unwahrscheinlich, das 1L auf 1m² gemessen wird.

Schön das es geht - Danke das Du es so markiert hast.