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

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

Der Banana Pi hat einen Raspberry-kompatiblen Formfaktor, insbesonere ist die GPIO-Leiste fast identisch. Diese Ports dürften also da sein.

Der Kernunterschied ist das "richtige" SATA und das vernünftig (lies: nicht per USB) angebundene Ethernet.

Grüße Marc

[Erklärung gesnippt]

Das ist weit über dem was ich mir an Elektronikfoo zutraue.

Grüße Marc

In der Tat, das dürfte maximal vom Haus abgeschattet sein. Bei mir müsste das Ding aufs Dach, mit Blitzproblematik, und ich bin nicht schwindelfrei.

Grüße Marc

Hallo,

Am 25.07.19 um 09:41 schrieb Marc Haber:

Dann bist Du hier in der passenden NG gelandet um angefixt zu werden? Hast Du ein einfaches Steckbrett und paar Bauteile? Bei mir hat es auch so schleichend angefangen ... und nun bin ich recht gut eingearbeitet in solche kleinen Baugruppen mit angepasster Eingangsstufe, NE555 als Impulsformer und den einfachen Ausgängen, idR open collector.

Bzgl. so einer Lösung mit Optokoppler als Ausgang hättest Du da eine wirklich hypsche Lösung für andere Impulszähler oder Sensoren an der Kellertür. Oder aber Wasserstandsensoren im Keller ... oder ggf. Rauchmelder ... oder Geräuschsensoren ... ... oder Anemometer (Windmesser) für die private Sturmwarnung oder denkt Dir was aus. Wenn Du (ausnahmsweise?) mal Freizeit hast, lese einfach mal ein bisschen durch das Prinzip des open collektor zur Ansteuerung eines Eingangs (IRQ auslösen). Ein Optokopler wäre dann so ziemlich das Gleiche/Selbe. Der Unterschied: Bei einem Transistor schiebst Du direkt einen Basisstrom (bei Kleinsignal weit unter ½mA) an den Transistor und hast keine galvanische Trennung. Beim Optokoppler schickst Du den Strom (so 5 bis 30 mA) an eine IR-LED im Optokoppler, die dann den Fototransistor durchsteuert. Bzgl. der Zeiten ist der Optokoppler ggf. etwas/viel langsamer?

Und dann schaust Du die mal das mit dem Impulsformer NE555 als monostabile Kippstufe an. Das kannst Du dann mit einem einfachen Taster aufbauen und damit am µC spielen. Das wäre dann eine Standardbaugruppe zum Abfragen von Schaltern jeder Art. Selbst wenn Du das nicht basteln willst oder kannst, dann helfen diese Kenntnisse ein bisschen weiter bei der Suche nach effizienten Lösungen. Notfalls fragt man einen Kumpel mit Lizenz zum Löten.

Es gibt für den Optopopler noch eine ganz einfache Lösung mit einem PNP. Das wäre sehr ähnlich wie mein Einschalter für die LED-Panel, die ich aus alten Lampen mit defektem Akku (war im E-Schrott) ausgeschlachtet und durch einen Türkontakt (Reed) geschaltet habe. *HAR* *HAR* *HAR* Das war für eine geile Fete. Dunkler Schlauch als Eingang, aber bei offener Tür sah man das nicht, da die LED alles erleuchteten. Dann ging die Tür zu und damit LED aus ... WAS IST DEN JETZT LOS? *Gröhl* HIERHER! *lock* HIER IST DIE PARTY!1elf Einfach 8 von diesen Primitiveingängen in ein Plastikgehäuse, 2 x Mignon-Batteriehalter auf(!) das Gehäuse und dann stopft man Li-Primärzellen rein. Läuft damit locker mal 5 Jahre und ist ziemlich sicher.

MfG

Uwe Borchert - Karlsruhe - öfters mal bei KALUG

Hallo,

Am 25.07.19 um 09:42 schrieb Marc Haber:

Die Blitzproblematik könnte u.Ü. mit Optokopplern, wie schon mehrfach erwähnt, reduziert werden. Und wer von uns ist schon schwindelfrei? Ihr kennt doch die Schwindelanfälle bei den unangenehme Fragen? Wo warst Du? Was hast Du gestern Abend gemacht? Wer war die Frau mit der Du Dich so lange angeregt unterhalten hast? Über was habt ihr geredet?

Kennt jemand preiswerte und robuste Schalenkreuzanemometer mit Reed-Schalter? Muss ja nicht übermäßig genau sein, nur relativ sicher vor Sturm(-böen) warnen können. Der Suchbegriff müsste "reed switch anemometer" lauten.

MfG

Uwe Borchert

Hallo,

Am 24.07.19 um 21:14 schrieb Rainer Knaepper:

...[...]...

Jetzt klingelt es bei mir. Diese Drähte findet man aber eher im Baumarkt als im Elektronikladen um die Ecke. Hier z. B.:

Klingeldraht Y-Draht 2x0,6 mm rotweiß Meterware

formatting link

Meterware zu 0,29Euro/m (incl. MWST)

Oder gleich auf der Rolle: Klingeldraht Y-Draht 2x0,6 mm 20 m rotweiß -> 3,65 € Klingeldraht Y-Draht 2x0,6 mm 50 m rotweiß -> 8,75 €

Die 50m Rolle kostet schon unter 18Cent/m. Das ist OK, aber leider steht da was:

Kann man so was frei verlegen? Oder muss das in eine Röhre? Und dann wäre da die Wahl der Qual ...

formatting link

Wagenmutige Bastler könnten das auch an einem Spannseil festmachen. Höhe aber IMHO mindestens 3m? Begründung: Ein größere KfZ (Sprinter oder gar noch größer) sollte da noch drunter durch kommen. Baufahrzeuge korrelieren mit Baustellen und Baustellen mit Wohnhäusern.

Gerade ist der Prädikatsbongo (*) in mir erwacht. Darf es ein bisschen mehr sein? Und dazu noch wetter- und zugfest? Feldtelefonkabel!1elf

Feldtelefon Kabel Trommel, 500m

formatting link

50 Euro für 500m sind 10 Cent/m und noch preiswerter als Klingeldraht, dazu auch noch geeignet für Freiverlegung.

(*) Bundeswehrsprech für Bau- und Betriebsfernsprecher

Wie führt man solche Kabelkanäle eigentlich korrekt in die Gebäude hinein? Damit meine ich handwerklich korrekt und nicht so Baumarktpfuscherpfuschig.

MfG

Uwe Borchert

Am 25.07.2019 um 20:47 schrieb Uwe Borchert:

Butzo

Hallo Marc,

Du schriebst am Thu, 25 Jul 2019 09:39:14 +0200:

Dann steht der Benutzung ja nichts weiter im Weg - ein paar Hz schafft der Interrupt ohne weiteres, und zur Entprellung ist da sogar schon was mit Zeitverzögerung vorhanden. Wie geschrieben, die Daten stehen unter /sys zur Verfügung, genauer unter "/sys/class/gpio/gpio<nr>", und dort gibt's für alle Zugriffe passende "Dateien", z.B. "value" für den aktuellen Zustand. Für Python gibt's dann eine Bibliothek namens "RPi" mit einem Modul "GPIO", das sich dann z.B. so benutzen läßt (aus einem Projekt, ohne Gewähr):

--------------------------------- import RPi.GPIO as GPIO import time

# SoC als Pinreferenz waehlen GPIO.setmode (GPIO.BCM)..

# Pins vom SoC als Input deklarieren GPIO.setup (25, GPIO.IN) ...

# ISR def Interrupt (channel):.. input_value_25 = GPIO.input (25) ... print str (input_value_25) ... # "Verarbeitung"

# Interrupt Event hinzufuegen, auf fallende Flanke reagieren, # ISR "Interrupt" deklarieren und Entprellzeit einstellen GPIO.add_event_detect (25, GPIO.FALLING, callback = Interrupt,\ bouncetime = 200) ...

--------------------------------- Damit solltest Du doch klarkommen?

Die haben für den Zweck aber erstmal nix zu sagen, die können aber für die Weiterverarbeitung nützlich sein.

snipped-for-privacy@yahoo.com (Uwe Borchert) am 25.07.19 um 19:48:

Während ich einen Reedkontakt bei der Regenwippe bezüglich der Schalthäufigkeit noch akzeptabel finde, würde ich beim Windrad doch eher einen Halbleitersensor bevorzugen.

Rainer

Lief hier nicht neulich das Video rum mit dem (Greif?-)Vogel auf dem Schalenkreuzanemomenter als Karussell? Filter da mal die NichtBoe raus, wenn der sich beim wegfliegen abstößt:-)

Also danach käme wohl nur dreifach-Ultraschall infrage... wartungsfrei dazu, da auch keine Lager...

Olaf

Habe ich leider nicht mitbekommen.

:-)

Da gibt es wohl auch was mit Lasern.

Rainer

Hallo Uwe,

Du schriebst am Thu, 25 Jul 2019 20:47:33 +0200:

[Klingeldraht]

Sicher kann man - solange man auf dem eigenen Grundstück bleibt, liegt die Verantwortung sowieso beim Betreiber. Außerhalb Deines Grundstücks darfst Du sowieso keine Leitungen ohne Genehmigung und Abnahme durch eine zuständige Stelle verlegen. Und zum anderen handelt es sich hier um eine Kleinstspannungsanwendung, für die sowieso mindestens ein Netzteil mit sicherer Trennung zu verwenden ist, wenn nicht sogar Batteriebetrieb. Für den Anschluß an den Haus-PC _muß_ dann halt für eine galvanische Trennung gesorgt werden, z.B. über Optokoppler, Funk (WLAN) oder wenigstens (potentialgetrenntes) Ethernet (aber kein PoE).

Nach dem Verlegen wirst Du halt feststellen müssen, wer sich so alles für so eine Leitung im Garten interessiert, dran zupft und zerrt, seine Zähne dran versucht, vielleicht die Isolation geschmacklich anregend findet oder sie einfach störend und dzf. zu beseitigen findet. Weiters wirst Du feststellen, wie (wenig) zeitstabil solche Isolationen sein können, insbesondere wenn sie auch noch dem Sonnenlicht ausgesetzt sind. Zerbröckelte Isolation kann recht interessante Verhaltensweisen darstellen.

...

Ja, sowas ist schon um Klassen besser. Mit 500m kannst Du Deine Schwachstromverkabelungsvorhaben sicher für die nächsten 10, 20 Jahre versorgen. Sonst wäre evtl. eine kleinere Menge ausreichend, wenn auch nicht viel billiger.

...

Im allgemeinen durch ein Loch in einer Wand. Profis machen das dann vielleicht noch mit irgendwelchen Materialien zu, von Bauschaum über Gips bis zu Zementmörtel, für feuersichere Durchführungen gibt's auch Spezialdichtmassen. Kleinere Leitungen, für die sich ein Bohrhammereinsatz eher nicht lohnt, werden gelegentlich auch durch ein Loch in einem Fensterrahmen geführt. Das ist dann aber eher

Hallo,

Am 26.07.19 um 20:59 schrieb Sieghard Schicktanz:

Ich meinte das nicht juristisch, sondern rein technisch. Zugentlastung für eine Freileitung krieg ich ja noch hin, aber wie sieht es mit der Wetterfestigkeit aus? Und was macht das UV-Licht mit der PVC-Isolation? Und wenn ich das unter die Erde lege, wer und was geht da alles drann? Und wenn KfZ drüber fahren, gibt es da Probleme? Also ich meinte eher das folgende:

Und da habe ich langsam Zweifel an der Brauchbarkeit des verdrillten Klingeldraht für diese Anwendungen.

Diese Kabel habe ich auch für die Beleuchtung an Fahrrädern benutz. Ziemlich robust und nach 20 Jahren immer noch wie neu.

Mörtel wäre wenig wartungsfreundlich. Ich dachte da eher an so was wie ein Loch, dann Mineralwolle und eine Abdeckung gegen den Regen/Niederschlag.

Bei Holzfenstern ist das sicher OK. Aber bei den vollgrünen und gesetzeskonformen Kunststofffenstern hätte ich da erst mal das Bedürfnis nach weiterer Aufklärung.

Im Boden könnte man die Leitungen in ((Ab-)Wasser-)Rohre verlegen. Das wäre ein recht guter Knabberschutz?

MfG

Uwe Borchert

snipped-for-privacy@yahoo.com (Uwe Borchert) am 27.07.19 um 15:48:

Du hattest nach der preiswertesten Leitung gefragt, zu dem Zeitpunkt im reinen Signalübertragungskontext. Von Umwelt- oder Verlegebedingungen war da keine Rede.

Das Wissen, daß man mit Klingeldraht keine Freileitungen bauen sollte, hatte ich als selbstverständlich vorausgesetzt.

Rainer

Hallo Uwe,

Du schriebst am Sat, 27 Jul 2019 15:48:13 +0200:

Die "juristischen" Anmerkungen sollten nur die engen Grenzen zeigen, in denen sowas legal ist. Die technischen Bedingungen, z.B.

habe ich ja nachfolgend auch angesprochen.

Wenn die auf Deinem eigenen Grunstück drüberfahren, sollte dafür eigentlich ein ausreichend befestigter Weg vorhanden sein. Ansonsten sind die Drähte an sich stabil genug, aber die dadurch verursachten Bewegungen können die halt "überspannen" (-> zerreißen lassen) oder die Isolation zerquetschen.

Da ist halt die Frage, was alles man in der "Brauchbarkeit" berücksichtigen will bzw. muß.

...

Da kommt's halt auf die Wartungsanfälligkeit an. Bleibt die Leitung die nächsten 10, 20 Jahre so, ist Mörtel oder ein anderes festes und dichtes Füllmaterial sicher sinnvoll. Wird die Leitung alle paar Monate anders gelegt, hin und hergeschoben oder gewechselt, ware eine Kabeldurchführung in einer Blech- oder Kunststoffplatte mit elastischer oder verschraubbarer (Gummi-) Dichtung sicher geeigneter. Die Platte muß dann halt noch geeignet an der Wand befestigt werden, dafür nimmt man gerne in separate Sacklöcher gesteckte Dübel und Schrauben.

Ja, Mineralwolle ist da gut, die Feuchtigkeit aufzunehmen und dann über einen längeren Zeitraum verteilt auf der anderen Seite wieder abzugeben.

...

Da ich die nicht kenne, kann ich dazu auch nix sagen.

Ja. Allerdings ggfs. auch gut als ausbaufähige Untergrundbehausung nutzbar, wenn die Enden zugänglich sind.

Hallo,

Am 28.07.19 um 21:23 schrieb Sieghard Schicktanz:

Deshalb dachte ich auch an die Abdeckung gegen Niederschläge. Ohne diese würde ich da nichts machen wollen. Mineralwolle ist halt bei Feuer recht sicher.

Ja, daran habe ich auch schon gedacht und mir das Lieferprogramm auch nach den diversen Abdeckkappen angesehen. Aber so richtig gefallen hat mir da nichts. Vielleicht sollte man sich da in der Laube eine „Solarinsel“ bauen und die Kommunikation einfach per Funk machen? Dann wäre aber in der Solarinsel schon ein Rechner.

MfG

Uwe Borchert

snipped-for-privacy@SchS.de (Sieghard Schicktanz) am 28.07.19 um 21:23:

Tjo. Allzuoft muß man die Leitung sicherlich nicht tauschen. Wie lange dauert es, bis das Kupfer schlecht wird und wegen Elektronenmangels gewechselt werden muß?

Ich wohne in einem Altbau, beim Einzug vor > 25 Jahren waren die Telefonleitungen schon alt. Außen auf die Wand getackert. Gehen immer noch.

Im Indernett sah ich, daß an diesen Regenwassermeßwippen oft eine Strippe mit RJ11-Stecker montiert ist, also vermutlich auch eine Telefonstrippe o.ä. verwendet wird.

Rainer

So habe ich das jetzt gebaut.

Gebaut wurde das jetzt mit einem völlig überdimensionierten Arduino Mega mit Ethernetshield. Den kann ich dann beim nächsten Projekt durch einen "kleineren", angemsseneren ersetzen.

Die in Debian enthaltene Arduino-IDE ist von 2016, ein vernünftiges Paket bietet der Upstream nicht an. Aber zum Glück hat jemand ein Script geschrieben, das das tar von Upstream nimmt und daraus ein ordentliches Debian-Paket schnürt. Leider halt nicht lokal gebaut, aber einen Tod muss man halt sterben.

Schritt 1: GPIO auf INPUT_PULLUP setzen und einen Taster auf diesen GPIO-Pin schalten. Andere Seite gegen Masse. Dann einen Fünfzeiler geschrieben, der den Zustand des GPIO auf die LED auf Pin 13 abbildet. Tut.

Schritt 2: Ethernet aufgesteckt, geht nicht mehr. Da hatte ich zielgenau einen der Pins für meinen Eingang genommen, die für die Anbindung des Ethernetshield benutzt werden.

Schritt 3: IP, DHCP und telnet-Server

Schritt 4: Impulsauslösung in der Telnet-Session quittieren

Schritt 5: Protokoll

Ich habe mich lange nicht mehr in einer Hochsprache mit Integer-Überläufen etc abgeben müssen, das bekommt man in der Welt, in der ich normalerweise unterwegs bin relativ luxuriös serviert.

Der 32 Bit Mikrosekundencounter läuft in überraschend kurzen 71 Minuten über, das muss man auf jeden Fall berücksichtigen. Nimmt man praktischerweise unsigned long als Datentyp, kann man aber auch nach Überlauf des Zählers ordentliche Differenzen berechnen. Die Uhr meines Arduinos geht pro Minute etwa 400 Millisekunden falsch, das taugt für nichts, was irgendwie mit Echtzeit zu tun hat.

Da ich sowieso die Daten alle zwei Minuten aus dem Arduino auslesen möchte, verändere ich das Protokoll.

Intern arbeitet meine Software in Zehntelsekunden und wirft bei Abfrage eine Liste der Zeitstempeln der seit der letzten Abfrage aufgelaufenen Klicks aus, wobei die Zeit relativ zur aktuellen Zeit ausgegeben wird ("Da war ein Klick vor 300, einer vor 250, einer vor

100 Zehntelsekunden")..

Da der Regenmesser sowieso nicht mehr als drei Impulse pro Sekunde schafft, reicht diese Auflösung aus, dass keine Kollisionen auftreten. Zum Entprellen ignoriere ich jeden Klick, der weniger als 250 Millisekunden nach dem letzten Klick detektiert wird (muss ein Preller sein).

Da der Arduino ja nur so wenig RAM hat, lege ich zum Sparen den Puffer nur als "unsigned int" an, und zwar mit 1000 Positionen. Dort lege ich den Zeitoffset in Zehntelsekunden seit der letzten Abfrage ab und rechne das bei der Auslieferung der Daten in "vor x Zehntelsekunden" um. Holt niemand die Daten für 6553 Sekunden ab, verliere ich Daten. damit kann ich aber leben. Fällt der Strom aus, verliere ich die Klicks der letzten zwei Minuten und die für die Zeit der Stromstörung.

Das System, auf dem der vzlogger läuft, hat nun ein exec-Script, das die Zeitstempelliste aus dem Arduino ausliest und in das vom vzlogger erwartete Format umformt.

Schritt 6: Den Arduino raus ins Gartenhaus, direkt den Ausgang vom Regenmesser auf den Eingang geklemmt, Ethernet drauf. Als Stromversorgung muss erstmal eine 20.000 mAh Powerbank herhalten, weil ich eigentlich keine 230 V Steckdose im Gartenhaus dauerhaft eingeschaltet haben möchte. 50 ml Wasser draufgekippt, Klicks gezählt, passt.

Leider ist das Wetter schön ;-) so dass ich als einziges Ergebnis vermelden kann, dass diese Konstruktion die 20.000 mAh Powerbank innerhalb von knapp 48 Stunden leergesaugt hat, mithin also ~ 400 mA Strom fließen dürften. Also doch ein Netzteil.

Als nächste Schritte habe ich vor (nicht unbedingt alle, und nicht unbedingt alle in dieser Reihenfolge):

- den Arduino ins Haus verlagern mit der langen Leitung zum Regenmesser

- den Arduino Mega durch einen kleineren oder einen NodeMCU ersetzen

- die Stromsorgung als PoE realisieren

- den Regenmesser direkt auf einen GPIO des Banana Pi schalten

- Test, ob WLAN mehr oder weniger Strom braucht

- Transport über MQTT

Vielen Dank für Eure Unterstützung.

Grüße Marc

Ähm. Die Aufgabe "Sporadische Impulsfolgen mit einer Rate von max. 3Hz zählen" läßt Du Dir 3.6W Dauerleistungsaufnahme kosten? Mir dünkt, die Behandlung von Integer-Überläufen war nicht das Einzige, was Du Dir durch Hochsprachen (übrigens ist C/C++ eine Hochsprache, Du wirst den Arduino ja nicht in Assembler programmiert haben, oder?) versaut hast.

Beschäftige Dich dringend mit Sleep Modes, Interrupts und Wake-Events. Vielleicht kann der Mega auch Wake-on-LAN übers Internet Shield, dann braucht es nicht einmal eine extra Leitung. Und Power over Ethernet wäre auch noch eine Überlegung wert, irgendwelche 230V-Strippen ins Gartenhäusl und ein Netzteil, das auch noch Ruhestrom zieht, sind doch fad.

Selbst ein PIC reicht für den Zweck. Der PIC24/32-Familie kannst Du locker einen rudimentären Ethernet-Stack aufdrücken, IIRC gabs da mal was unter

formatting link
.

Jup.

Ah. Du hast es gern kompliziert? Dann unbedingt einen RasPI und WLAN verwenden. SCNR & ;-).

Volker

PoE hamwer jetzt, der Switch sagt, 2,1 W, 41 mA an 53 V.

Das ist für eine so einfache Konstruktion erschreckend viel, aber ich gehe davon aus dass ein nicht vernachlässigbarer Teil im Ethernet-PHY landet.

Grüße Marc

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required