Regenmesser zu Ethernet oder USB - mein erstes Arduino-Proje

Volker Bartheld <news2019@bartheld.net> wrote:
On Fri, 19 Jul 2019 10:35:19 +0200, Marc Haber wrote:
Jetzt sind wir aber schon lange auf der Softwarebene (die ich
beherrsche); ob die von mir ausgesuchte Hardware das bringt was ich
brauche hat noch keiner gesagt.

Die von Dir ausgesuchte Hardware
- Regenmesser aus China mit 1 Impuls*m^2/20ml,
- Arduino Uno R3 und
- W5100 Ethernet Shield
bringt, was Du brauchst. Dazu reicht sogar ein Nano mit ENC28J60.

NatĂźrlich tut es die NodeMCU ESP8266 auch, die restlichen 11 I/O-Ports
werden sich zu Tode langweilen.

Und natßrlich gibt es 1001 anderer LÜsungsansätze, der u. A. von der
Betriebsspannungsversorgung abhängt und wie Du die aufgelaufen Regenmenge
angezeigt und weiterverarbeitet haben willst, bis hin zur guten alten
7490/7447-Familie mit ein bißchen Hühnerfutter außenrum *).
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.

--
Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de
 
Am 19.07.2019 um 12:28 schrieb Volker Bartheld:

Von dem der Arduino Uno 32k in Form von Flash und nochmal 1k als EEPROM hat
(https://www.arduino.cc/en/tutorial/memory). Du mußt den EEPROM ja nicht

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
 
Gerald.Oppen@web.de (Gerald Oppen) am 19.07.19 um 01:16:
Am 18.07.19 um 22:20 schrieb Marc Haber:

Oder gibt es einen anderen Lösungsansatz?

Klingt im Prinzip schon ganz vernünftig. Wobei ich wie andere
Poster schon geschrieben haben den Zähler nicht zurücksetzen
würde.

Detektion eines Reset wäre dann wenn neuer Wert < alter Wert?
Vermutlich fehleranfällig, also besser die Uptime dazuschreiben?

Hat ein laufender Arduino eine halbwegs genaue Echtzeituhr?

Echtzeit brauchst Du im Sensor nicht - ob der Starkregenwert jetzt
von 0:30:30 oder 0:30:32 ist spielt keine Rolle.
Umlaufender (überlaufender) Zähler und ein relativer Zeitstempel
seit der letzten Messung (! Nicht Messwert-Übertragung) reichen für
ein genaues Ergebniss insofern Dein übergeordnetes System in
geeigneten Zeitabständen die Werte bekommt und mit Echtzeitstempel
versieht.

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

--
Oben: Gier, Unten:Geiz, wir werden's schon (hin)richten. (N.N.)
 
Bernd.Laengerich@web.de (Bernd Laengerich) am 19.07.19 um 14:45:
Am 19.07.2019 um 12:28 schrieb Volker Bartheld:

Von dem der Arduino Uno 32k in Form von Flash und nochmal 1k als
EEPROM hat (https://www.arduino.cc/en/tutorial/memory). Du mußt
den EEPROM ja nicht

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.

100k Zyklen sind im Minutentakt erschreckend schnell verbraucht.

Rainer

--
[...] Qualitäten, die die [Herr der Ringe-] Filme hätten und das Buch
nicht, kann ich wirklich nicht erkennen. Selbst die bewegten Bilder
bietet mir das Buch, auch wenn sie sich bei jedem Lesen ein klein
wenig unterscheiden mögen. (Andreas Jaeger in de.alt.fan.tolkien)
 
Bernd Laengerich <Bernd.Laengerich@web.de> wrote:
Jupp. Flash will man nicht dauernd beschreiben, aber EEPROM war ja "Weit
jenseits seiner Kenntnisse."

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
 
"Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> wrote:
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.

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
--
-------------------------------------- !! 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
 
Rainer Knaepper <rainerk@smial.prima.de> wrote:
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.

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...

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.

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

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
 
On 7/19/19 8:38 PM, Rainer Knaepper wrote:
Bernd.Laengerich@web.de (Bernd Laengerich) am 19.07.19 um 14:45:
Am 19.07.2019 um 12:28 schrieb Volker Bartheld:

Von dem der Arduino Uno 32k in Form von Flash und nochmal 1k als
EEPROM hat (https://www.arduino.cc/en/tutorial/memory). Du mußt
den EEPROM ja nicht

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.

100k Zyklen sind im Minutentakt erschreckend schnell verbraucht.

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:

> 100k Zyklen sind im Minutentakt erschreckend schnell verbraucht.

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:

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

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

Bernd
 
On 7/19/19 9:42 PM, Bernd Laengerich wrote:
Am 19.07.2019 um 20:38 schrieb Rainer Knaepper:

100k Zyklen sind im Minutentakt erschreckend schnell verbraucht.

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.

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:

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.

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
 
Bernd Laengerich <bernd.laengerich@web.de> wrote:

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.

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,

Wenns nicht in StĂźckzahlen geht, nimm den ESP32, der habe weniger Ratten
an Bord ;-)

Erklär bitte.

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
 
On 7/19/19 10:02 PM, Bernd Laengerich wrote:
Am 19.07.2019 um 21:47 schrieb Gerrit Heitsch:

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.

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.

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

Gerrit
 
On Fri, 19 Jul 2019 21:20:43 +0200, Gerrit Heitsch wrote:
On 7/19/19 8:38 PM, Rainer Knaepper wrote:
Bernd.Laengerich@web.de (Bernd Laengerich) am 19.07.19 um 14:45:
Am 19.07.2019 um 12:28 schrieb Volker Bartheld:
Von dem der Arduino Uno 32k in Form von Flash und nochmal 1k als
EEPROM hat [...]. Du mußt
den EEPROM ja nicht kaputtschreiben
Flash will man nicht dauernd beschreiben, aber [...]
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.
100k Zyklen sind im Minutentakt erschreckend schnell verbraucht.
Ja, 1440 min pro Tag, nach 70 Tagen ist rum. Bei 1 Mio. wären es 700 Tage.

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 http://www.navidoc.de/hersteller-auswahl/audi.html 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:
https://github.com/tomaskovacik/audi_concert1_chorus1_volume_fix/wiki/Problem-of-Some-AUDI-Chorus-and-AUDI-Concert-Autoradio-Models,-or-%22Delayed-Action-Mine%22-from-Blaupunkt-Company

Volker
 
On Sat, 20 Jul 2019 08:17:17 +0200, Gerrit Heitsch wrote:
On 7/19/19 10:02 PM, Bernd Laengerich wrote:
Am 19.07.2019 um 21:47 schrieb Gerrit Heitsch:
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.
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.
24Cxx impliziert, daß sich das verhält wie ein 24Cxx EEPROM und die sind
von der Ansteuerung sehr einfach. Solltest du dir anschauen.

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:
Gerald.Oppen@web.de (Gerald Oppen) am 19.07.19 um 01:16:
Am 18.07.19 um 22:20 schrieb Marc Haber:

Oder gibt es einen anderen LĂśsungsansatz?

Klingt im Prinzip schon ganz vernĂźnftig. Wobei ich wie andere
Poster schon geschrieben haben den Zähler nicht zurßcksetzen
wĂźrde.

Detektion eines Reset wäre dann wenn neuer Wert < alter Wert?
Vermutlich fehleranfällig, also besser die Uptime dazuschreiben?

Hat ein laufender Arduino eine halbwegs genaue Echtzeituhr?

Echtzeit brauchst Du im Sensor nicht - ob der Starkregenwert jetzt
von 0:30:30 oder 0:30:32 ist spielt keine Rolle.
Umlaufender (ßberlaufender) Zähler und ein relativer Zeitstempel
seit der letzten Messung (! Nicht Messwert-Übertragung) reichen für
ein genaues Ergebniss insofern Dein Ăźbergeordnetes System in
geeigneten Zeitabständen die Werte bekommt und mit Echtzeitstempel
versieht.

Was aber eine ständig verfßgbare Verbindung erfordert. So ein
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.


> Echtzeit-Modul fĂźr den Arduino kostet nicht die Welt.
Muss aber ßberprßft werden ob es noch korrekt läuft, sonst ist die
Echtzeit nichts Wert. Bringt nicht wirklich einen Mehrwert.


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.
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.

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.
Macht in der Anwendung wenig Sinn. Anfallende Datenmengen sind gering.
 
Marte Schwarz <marte.schwarz@gmx.de> wrote:
Eine gute Zusammenfassung fĂźr den Umgang damit findest Du bei
http://www.stefanfrings.de/esp8266/index.html

Die ist in der Tat sehr schĂśn, danke!

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
 
Marte Schwarz <marte.schwarz@gmx.de> wrote:
Hi Marc,

Wenns nicht in StĂźckzahlen geht, nimm den ESP32, der habe weniger Ratten
an Bord ;-)

Erklär bitte.

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

Mit Ratten meinst Du also Bugs.

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
 

Welcome to EDABoard.com

Sponsor

Back
Top