Regenmesser zu Ethernet oder USB - mein erstes Arduino-Projekt?

Jul 18, 2019 Last reply: 7 years ago 119 Replies

Ein CMOS 4040 wäre adequater. An jeden Ausgang je eine Low-Current-LED angeschlossen und man kann den Zählerstand via Webcam erfassen ;-)

Ich persönlich würde das Problem klassisch mit einer seriellen Schnittstelle lösen. Die Signale nebst Stromversorgung kann man auch via RJ-45-Kabel übertragen. Dann reicht der Arduino oder ein einzelner AVR mit UART aus. Im Übertragungsprotokoll kann man dann dem Arduino z.B. "?<timestamp>" schicken und er antwortet mit z.B. "<count>,<timestamp>". Wenn der Zeitstempel in der Antwort dem in der Anfrage entspricht, kann man von einer gültigen Übertragung ausgehen. Man kann natürlich auch eine Prüfsumme einbauen.

Am 19.07.2019 um 12:28 schrieb Volker Bartheld:

Jupp. Flash will man nicht dauernd beschreiben, aber EEPROM war ja "Weit jenseits seiner Kenntnisse." Der MEGA328 garantiert 100.000 Zyklen, die externen (unter einem Euro) liegen bei 1Mio. Da kann man einfach recht schmerzfrei jede Minute eine Änderung reinpusten. IIRC hatte Olaf das mal mit den garantierten Schreibzyklen sehr erfolgreich getestet.

Bernd

snipped-for-privacy@web.de (Gerald Oppen) am 19.07.19 um 01:16:

Was aber eine ständig verfügbare Verbindung erfordert. So ein Echtzeit-Modul für den Arduino kostet nicht die Welt.

Die Frage, die sich mir freilich stellt, ist: Wenn ich eh ein Kabel legen muß, wozu benötige ich dann überhaupt einen Microcontroller, um einen einsamen Schaltkontakt abzufragen? Wenn das übergeordnete System im Dauerbetrieb laufen muß, um sinnvolle Zeitstempel zu erzeugen, kann man da auch irgendein USB-4-20mA Adapterchen dranstricken und den Host-PC selber zählen lassen. 3 Hz kriegt man hin.

Wenn schon µC, dann sollte der auch was tun für sein Geld, also mit korrekten Zeitstempeln autonom loggen und seine Datensammlung auf Anfrage abliefern. Dann muß auch kein stromfressender PC im Dauerbetrieb laufen. Der Chinamann liefert auch billige SD- Kartenadapter, so daß man ziemlich lange Zeitreihen zwischenlagern könnte.

Btw: Wie mißt diese Wippe eigentlich sehr geringe Niederschlagsmengen? Verdunstet da nicht ggf. die Hälfte, wenn die Intervalle sehr lang werden? Was ist als untere Meßgrenze geplant? Wenn die Wippintervalle in den Stundenbereich gehen, dann wird millisek() schon arg ungenau. Der Überlauf ist ja beherrschbar...

2ct

Rainer

snipped-for-privacy@web.de (Bernd Laengerich) am 19.07.19 um 14:45:

100k Zyklen sind im Minutentakt erschreckend schnell verbraucht.

Rainer

Du kannst Dich ja gerne weiter darüber lustig machen. _Ich_ weiß was ich kann und was nicht.

Grüße Marc

--

-------------------------------------- !! No courtesy copies, please !! ----- Marc Haber | " Questions are the | Mailadresse im Header Mannheim, Germany | Beginning of Wisdom " | Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

Das hab ich gerade vorletzten Monat mit dem Wasserzähler so gemacht, jetzt ist mal Zeit für einen Arduino. Man will ja auch dazu lernen.

Grüße Marc

Das eigentliche übergeordnete System läuft in der Virtualisierung, da möchte ich mich nicht mit durchgereichten USB-Ports abgeben müssen. Und der Banana Pi, der Strom- und Wasserzähler abfragt, macht schon genug. Natürlich könnte man dem Banana Pi seine fünfte serielle Schnittstelle verpassen (oder einen seiner GPIOs) nehmen...

Vermutlich, ja. Das ist auch einer der Gründe, warum mir 400 ml pro m² pro Klick zu viel waren.

Grüße Marc

Ja, 1440 min pro Tag, nach 70 Tagen ist rum. Bei 1 Mio. wären es 700 Tage.

Gerrit

Am 19.07.2019 um 20:38 schrieb Rainer Knaepper:

Dazu müsste es aber auch andauernd regnen. Wegen des Faktors 10 und der Größe hatte ich ein SPI-EEPROM vorgeschlagen. Aber klar, irgendwann ist Schluss. Die Volkersche Idee nur beim BOD zu schreiben ist da natürlich im Vorteil.

Bernd

Am 19.07.2019 um 20:47 schrieb Marc Haber:

Sorry wenn das negativ 'rüber kam, ich wollte eigentlich nur ausdrücken daß die EEPROM-Idee ja schon durch war.

Bernd

Oder man nimmt ein SRAM extern... Sobald /CS high ist brauchen die nur noch µA um die Daten zu halten. Da reicht eine CR2032 Jahre.

Gerrit

Am 19.07.2019 um 21:47 schrieb Gerrit Heitsch:

Ja, ist aber deutlich höherer Aufwand das an z.B. einen NodeMCU ESP8266 ranzuhäkeln. Alternativ wäre evtl. ein FRAM mit I2C möglich, z.B. Cypress FM24C64B. 10^14 Zyklen spezifiziert. Habe ich noch nie mit gearbeitet.

Bernd

Kann man machen. Die funktionieren unaufaellig.

Es gibt auch noch MRAMs. Die Vertreter dazu laufen auch seit 1-2Jahren rum und versuchen es jedem aufzuschwatzen weil es ewig halten soll.

Olaf

Hi Marc,

Ich habs nicht verifiziert, aber der Deep-Sleep-Bug beim ESP8266 ist schon schwer nervig. Wenn das beim ESP32 korrigiert wäre, wäre viel gewonnen

Marte

Hi Gerrit,

Ich weiss ja nicht, wie wertvoll die Niederschlagsdaten sind. Ich würde eben einmal pro Stunde oder auch einmal pro Tag die Daten vom RAM ins EEPROM schieben und den Rest im RAM halten. Und wenn dann tatsächlich mal was schief gehen sollte, dann ist ein Datensatz verloren. Meine Welt geht davon nicht unter.

Marte

24Cxx impliziert, daß sich das verhält wie ein 24Cxx EEPROM und die sind von der Ansteuerung sehr einfach. Solltest du dir anschauen.

Gerrit

Deswegen hatte ich gewisse, vernünftige Vorschläge gemacht.

Man muß es ja nicht unbedingt so tun wie Blaupunkt mit seinen Autoradios (Audi Concert, Chorus, Symphony), wo jegliche Einstellungsänderung _sofort_ im EEPROM des Motorola MC68HC05 versenkt wurde, was den Speicher eben irgendwann verschlissen hat. Panasonic war mit dem baugleichen Gerät schlauer und speichert nur beim Ausschalten im EEPROM, leider weigerte man sich bei

formatting link
diese Firmware einzuspielen und auf PLCC-Lötarbeiten hatte ich keinen so rechten Bock.

Daher vertraue ich nun darauf, daß 1*10^6 Zyklen bis zum Ende des Fahrzeugs halten. Mehr:

formatting link
Volker

Worauf beziehen sich die Zyklen, auf eine Zelle oder das ganze EEPROM?

Man kann das EEPROM ja erst einmal vollschreiben, und wenn das alles auch ausgegeben wurde, kann alles gelöscht und neu beschrieben werden. Mit 100k Löschzyklen käme man dann schon ganz schön weit.

DoDi

Ihr diskutiert allen Ernstes über einen 64kBit F-RAM im fummeligen

8-SOIC-Gehäuse für über 3€ um *einen* Regenmengenzähler permanent zu speichern? Nee, ne? Soll es da wolkenbruchartig schütten, bis die Hölle zufriert oder habe ich etwa die Anforderung "sammelt nebenbei die Wetterdaten aller deutschen Wetterstationen ein" überlesen?

SCNR, Volker

Am 19.07.19 um 17:26 schrieb Rainer Knaepper:

Definiere "Ständig"... Den relativen Zeitstempel kann man so definieren dass er erst nach Tagen überläuft. Wenn man aktuelle Messwerte haben möchte muss man eh alle paar Minuten abfragen. Wenn man mal größere Abfragelücken hat bekommt man trotzdem die komplette Niederschlagsmenge seit dem letzten Abfragen, es wird nur die zeitliche Zuordnung ohne zusätzlichen Maßnahmen schlechter.

Muss aber überprüft werden ob es noch korrekt läuft, sonst ist die Echtzeit nichts Wert. Bringt nicht wirklich einen Mehrwert.

Der uC kann das viel besser als der Host. Der Host ist auch mal zu Wartungszwecken etc. offline, den uC kann ich relativ einfach Störungsfrei im Dauerbetrieb laufen lassen.

Macht in der Anwendung wenig Sinn. Anfallende Datenmengen sind gering.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required