Auswertung Impulse Volkswindmesser

Das hört sich gut an. Also könnte ich dafür bspw. folgendes Koaxialkabel verwenden?

http://www.conrad.de/ce/de/product/285137/Twin-SAT-Koaxialkabel-75-dB-Weiss

Gruß :slight_smile:

Ja, und ich habe gerade gesehen, dass es auch F-Buchsen zum Löten gibt:
http://www.conrad.de/ce/de/product/290024/F-Stecker-Einbaubuchse-Einbau-Tiefe-bis-12-mm
http://www.conrad.de/ce/de/product/739774/F-Einlochbuchse-Loeten-75-

Also kannst du dir den Ausflug über BNC sparen.

BigBangTheory:
Das hört sich gut an. Also könnte ich dafür bspw. folgendes Koaxialkabel verwenden?

Möchtest Du wirklich zwei Koax-Kabel zum Sensor hinlegen?
Oder warum Koax?

Koax hat nur einen einpoligen Draht und eine Abschirmung.

Du benötigst aber:

  • eine Ader hin zum Sensor
  • eine Ader zurück vom Sensor
  • Abschirmung

Das macht man normalerweise immer mit einem mehrpoligen Kabel mit Abschirmung, und nicht mit zwei nebeneinander verlegten einpoligen Kabeln.

Super :).

Dann steht einem abgeschirmten Signal ja nichts mehr im Weg :slight_smile:

Das Twin Sat Kabel beinhaltet ja quasi 2 abgeschirmte Koax-Kabel, oder lieg ich da gerade falsch?

Also sollten es ja 2 Adern sein, oder?

BigBangTheory:
Das Twin Sat Kabel beinhaltet ja quasi 2 abgeschirmte Koax-Kabel, oder lieg ich da gerade falsch?

Also sollten es ja 2 Adern sein, oder?

Stimmt, Du hast Recht. Ich habe nur das Bild gesehen und zwei nebeneinander liegende Leiter gesehen.
Tatsächlich ist das ein Doppelleiter, also zwei Koaxkabel nebeneinander.

Mir fällt da ein Ethernet Kabel ein, ist geschirmt hat genug Adern und teuer ist es auch nicht.

Hi Leute,

seitdem mein Windmesser nun seit Mitte Juli seine Dienste verrichtet und fleißig Daten sammelt ist mir bei einer ersten Auswertung (an einem Windstillen Tag) aufgefallen, dass auch wenn kein Wind weht, hin und wieder ein extrem hoher Wert angezeigt wird (bspw...über Sekunden 0 m/s und dann auf einmal 34,..m/s), was rein logisch nicht sein kann.

Kann dieses Phänomen daran liegen, dass die Entfernung zwischen Arduino und Windmesser relativ lang ist? Zur Info, zwischen Arduino und Windmesser sind 60m Kabel...d.h. 60m hin und 60m zurück, also 120m.

Wenn dies so ist, würde ich gern im nächsten Jahr den Windmesser an einem anderen Ort aufstellen (mit womöglich auch besseren Windbedingungen) und wollte gern wissen, wie viele 9V-Blockbatterien müsste ich in Reihe schalten, um den Arduino mit seiner Windmess-und Speichertätigkeit 1 Jahr lang zu betreiben?

Vielen Dank schonmal für Eure Antworten!!!

Gruß

Arduino an Batterie kannst du vergessen. Alleine die Zusatzbeschaltung (Spannungsregler, LEDs und USB-Konverter) braucht ca. 35mA. Da ist die Batterie gleich leer.

Für sowas muss man einen nackten Atmega nehmen. Den kann man dann schlafen legen und ab und zu mal aufwecken um zu messen.

Der Arduino braucht je nach Beschaltung zwischen 20 und 50mA. Ein 9V Block hat ca. 500mA -> 10Stunden.
1 Jahr sind 8760 Stunden, also brauchst du ca. 876 9V Blocks. :~ 8)

BigBangTheory:
... dass auch wenn kein Wind weht, hin und wieder ein extrem hoher Wert angezeigt wird ...

Du wirst, auch mit bester Schirmung, nicht verhindern können, dass hin und wieder Störer durchkommen.
Da hilft nur "Entprellen" über Software: Wenn plötzlich eine stark abweichende Drehzahl erkannt wird, erst prüfen, ob nach einer gewissen Zeit (1sek?) die immer noch anliegt, dann erst auf "gültig" schalten.

Apropos geschirmtes Kabel: Wenn ich mich richtig erinnere, hat das Ding einen Reed-kontakt.
Hast du ein Kabel auf GND und ein Kabel auf einen Pin mit Pullup? Dann reicht dir ein normales einadrig geschirmtes Kabel.
Schirm = GND, Innendraht = Signal.

BigBangTheory:
Kann dieses Phänomen daran liegen, dass die Entfernung zwischen Arduino und Windmesser relativ lang ist? Zur Info, zwischen Arduino und Windmesser sind 60m Kabel...d.h. 60m hin und 60m zurück, also 120m.

Ja, natürlich kann das daran liegen. Wenn ich das richtig beurteile, hast Du die Übertragung über die lange Leitung ja überhaupt nur dadurch halbwegs störungsfrei hinbekommen, dass Du meinem Ratschlag gefolgt bist und einen stärkeren Pull-Widerstand mit kleinerem Ohm-Wert eingebaut hast.

Die störungsfreie Signalübertragung ist von der Länge abhängig, und zwar ist die maximale Länge hauptsächlich durch die Geschwindigkeit der Signale begrenzt. D.h. wenn Du das Limit überschreitest, dann werden zuerst schnelle Signale falsch übertragen. Also bei einem Windmesser Impulse, die in extrem schneller Folge auftreten, bei Starkwind also. Und das äußert sich in erster Linie dadurch, dass Impulse verlorengehen, d.h. Du mißt bei Starkwind weniger Wind als eigentlich da ist.

Dieser Fall ist bei Deiner Kabellänge der wahrscheinlichste, aber den Fall beschreibst Du ja nicht (er ist auch als Fehler schwer zu entdecken).

Der andere Fall, dass durch bestimmte Effekte Impulse gemessen werden, wo gar keine da sind, kann auch auftreten. Aber wenn dieser Effekt auftritt und wenn das schaltungsbedingt von der Hardware verursacht wird, dann tritt er nicht nur bei Nullwind auf, sondern er tritt allgemein auf, also bei allen Windgeschwindigkeiten.

In dem Fall solltest Du also nicht nur bei Nullwind Ausreißer auf über 34 m/s dabei haben, sondern bei allen Windgeschwindigkeiten sollten Ausreißer in derselben Form auftreten.

Wenn die Ausreißer ausschließlich bei Nullwind auftreten, würde ich eher einen Softwarefehler vermuten. Z.B. einen Überlauf des micros() Timers. Der micros() Timer läuft alle ca. 70 Minuten über und Du verwendest ihn, um das Timing über einen Interrupt zu machen. Je nach Programmierung kann also nach 35 oder spätestens 70 Minuten Windstille ein Problem auftreten: Wenn nämlich bei Windstille 70 Minuten lang kein einziger Windimpuls auftritt, ist das Timing danach falsch. Und je nachdem wie die Softwarelogik ist, kann das die unterschiedlichsten Auswirkungen haben. Prüfe Deine Software mal darauf, ob das ein Problem bei Dir sein kann!

Um 60 Meter Entfernung zuverlässig auch bei hoher Datenrate (Starkwind!) zu überbrücken, mußt Du wahrscheinlich zwei Arduinos einsetzen und auf RS232-Pegel umsteigen und die Datenrate bei der Übertragung recht niedrig halten. Dazu benötigst Du zwei Arduinos und zwei Serial-TTL-RS232 Adapter.

Windmesser => wenige Meter Kabel zum ersten Arduino
Erster Arduino ==> viele Meter RS232 Kabel ==> zweiter Arduino

Mit 2400 Baud auf RS232-Pegel sollten sich 60 Meter zwischen zwei Arduinos leicht überbrücken lassen.

Wenn Du sowieso ein Kabel liegen hast: Falls das Kabel mindestens dreipolig ist, reicht es aus, den Außen-Arduino mit Strom zu versorgen und gleichzeitig von ihm RS232-Daten zu erhalten.

Und in jedem Fall muß natürlich die verwendete Software fehlerfrei sein, also beispielsweise darf nicht der Fall eintreten, dass micros() Überläufe in bestimmten Konstellationen die Software zum Durchdrehen bringen. Sonst haut es auch bei einer guten Übertragung nicht hin, gute Messwerte zu erhalten.

Hallo Leute,

vielen Dank schonmal für eure zahnreichen Antwort! Vor allem an jurs für diese wirklich tolle, ausführliche Antwort!

Das Problem das ich geschildert habe, also das es hin und wieder Fehlsignale gibt die dann in der Auswertung zu extrem hohen Windgeschwindigkeiten verrechnet werden, passiert bei allen Windgeschwindigkeiten, nicht nur bei Null.

Ich hab mich jetzt dazu entschlossen, den Arduino direkt an den Mast zu bauen, in einen wasserdichten Kasten, sodass der Abstand zwischen Arduino und Windmesser nicht mehr als 5-6 Meter beträgt, je nach Masthöhe.

Die Stromversorgung des Arduinos werde ich dann über eine NYY-J 3x1,5 Leitung gewährleisten, damit die Signalleitungen nicht mehr der Grund sind, warum ich Fehlsignale bekomme. Als kleine Anmerkung, als Signalleitungen verwende ich ein Twin-SAT-Koaxialkabel 75 ? Koax >75 dB Weiß 1 m. Somit habe ich die Hin- und Rückleitung in "einem". Hier mal ein Link dazu: http://www.conrad.de/ce/de/product/285137/Twin-SAT-Koaxialkabel-75-Koax-75-dB-Weiss-1-m/SHOP_AREA_17418?.

Meine Software werde ich auch nochmal auf den Hinweis von jurs hin überprüfen und ggf. anpassen, sodass der micros()-Timer nicht mehr überlaufen kann.

Die Frage die sich mir jetzt dabei stellt ist, ist es möglich die Daten von der Micro-SD-Karte im laufenden Messbetrieb auszulesen, ohne diese aus dem Arduino zu entfernen? Da mein Mast bald mitten auf einem Feld steht, wo rings herum nichts ist, wäre es sehr praktisch bspw. über die Ethernet-Schnittstelle meinen Laptop an den Arduino anzuschließen und die Dateien, welche momentan nicht für die Aufzeichnung benötigt werden, auszulesen. Anmerkung: Der Arduino speichert die Messwerte jeden Tag in eine neue *.txt-Datei, welche mit dem jeweiligen Datum benannt wird. Hierdurch ist es möglich die älteren Daten auszulesen, ohne hierbei den Arduino zu stören.

Hätte hierfür jemand eine Idee, wie man dies bewerkstelligen kann? Ich könnte natürlich auch ca. 1 Jahr warten und dann alle Daten auf einmal auslesen. Ich bin dafür aber glaub ich viel zu neugierig :D.

Vielen Dank für eure tolle Hilfe!!

Gruß

Die Idee, den Ardu nahe an den Windmesser zu setzen ist sicherlich gut, wenn auch mit Nachteilen behaftet.
Ich bin beruflich in der KFZ-Branche zuhause und bei uns gibt es NIE ein störungsfreies Signal um trotzdem eine Funktion zu erhalten (auch wir lesen viele Drehzahlsignale) bedarf es verschiedener Strategien
a ) Übertragungsweg sicherer machen.

    • die beste Möglichkeit ist sicher, die Auswerteelektronik vor Ort zu setzen, und den weiteren Übertragungsweg digital zu gestalten, z.B. über redundante, überprüfte Datenübertragung über Busse, Wlan o.ä.
    • eine andere Variante ist, die Signalübertragung selbst robust zu machen. Der Hinweis von Jurs in Richtung niedrigere Abschlusswiderstände, also höhere Ströme ist ein guter Weg. Du könntest aber auch überlegen eine Stromschnittstelle einzubauen. Die sind sehr störsicher.

b) Signale besser filtern
du hast ein recht niederfrequentes Nutzsignal, eingekoppelte Störer sind hochfrequent.

  • Blockkondesatoren (22nF,1nF,47pF parallel) genau da, wo das Signalkabel am Bord ankommt, zwischen die beiden Leitungen schalten. möglichst kurze Anschlussdrähte (SMD?) Die verhindern breitbandig, dass hochfrequente Störer erst aufs Board kommen.
  • einen Tiefpass, der wirklich nur das Nutzsignal durchlässt.

c) Signale plausibilisieren
Jetzt sind wir erst bei der Software.

  • Änderungsgeschwindigkeit: wie schnell kann sich die gemessene Windgeschwindigkeit ändern? zuerst Null, dann, 100ms später Orkan? Das kann nicht sein! Also das Signal ignorieren.
  • "Entprellen" geht in die gleiche Richtung, nur ein anderer Ansatz: erst wenn in zwei Zeitfenstern (Pulse, oder anderes) die gleiche Geschwindigkeit gemessen wird, dann wird sie als gültig erkannt. Da sich der Wert ändert, mußt du definieren, wie stark ein gemessener Wert vom nächsten Abweichen darf um Gültig zu sein.

Ich bin sicher damit kriegst du die Übertragung störungsfrei hin!

Hallo Leute,

vor allem auch Danke an guntherb für die super quasi Anleitung, wie man ein fast störungsfreies Signal erhalten kann!

Einige der Tipps werd ich auf jedenfall umsetzen, von dem verkürzen der Signalkabel bis hin zur softwareseitigen Plausibilisierung des Signals.

Eine andere Frage die mir da noch auf dem Herzen liegt zum Windmesser ist, ist es möglich die Daten von der Micro-SD-Karte im laufenden Messbetrieb auszulesen, ohne diese aus dem Arduino zu entfernen? Da mein Mast bald mitten auf einem Feld steht, wo rings herum nichts ist, wäre es sehr praktisch bspw. über die Ethernet-Schnittstelle meinen Laptop an den Arduino anzuschließen und die Dateien, welche momentan nicht für die Aufzeichnung benötigt werden, auszulesen. Anmerkung: Der Arduino speichert die Messwerte jeden Tag in eine neue *.txt-Datei, welche mit dem jeweiligen Datum benannt wird. Hierdurch ist es möglich die älteren Daten auszulesen, ohne hierbei den Arduino zu stören.

Vielen Dank für eure tolle Hilfe!!

Gruß

BigBangTheory:
.. ist es möglich die Daten von der Micro-SD-Karte im laufenden Messbetrieb auszulesen, ohne diese aus dem Arduino zu entfernen? Da mein Mast bald mitten auf einem Feld steht, wo rings herum nichts ist, wäre es sehr praktisch bspw. über die Ethernet-Schnittstelle meinen Laptop an den Arduino anzuschließen und die Dateien, welche momentan nicht für die Aufzeichnung benötigt werden, auszulesen. Anmerkung: Der Arduino speichert die Messwerte jeden Tag in eine neue *.txt-Datei, welche mit dem jeweiligen Datum benannt wird. Hierdurch ist es möglich die älteren Daten auszulesen, ohne hierbei den Arduino zu stören.

Üblicherweise kann immer nur eine Datei gleichzeitig offen sein.
Wenn du also nach jedem Schreiben die Datei schliesst, oder gar vor jedem Schreiben mit SD.begin() prüfst, ob überhaupt eine Karte steckt, stört eine Funktion, die eine Datei liest und komplett an den PC (am einfachsten über Serial) sendet, nicht weiter.

Du kannst so natürlich auch die heutige Datei übertragen.

Ich würde gern in folgendem Szenario die *.txt - Files von der SD -Karte auf meinen Rechner laden:

Der Mast mit Windmesser und Arduino steht mitten auf einem Feld. Ich laufe also mit dem Laptop zum Mast, schließe den PC entweder über ein Firewire oder ein Crossover-Ethernetkabel an den Arduino an und zieh mir die *.txt-Files vin der SD-Karte auf den Rechner.

Jetzt die Frage, wie kann man sowas realisieren? Ist das überhaupt möglich?

Viele Dank schonmal für eure Atworten!

Gruß

sehr praktisch bspw. über die Ethernet-Schnittstelle meinen Laptop an den Arduino anzuschließen

Was spricht gegen ein USB-Kabel ?

Im tiefsten Innern deines Sketch hast du dann sowas wie

while (myFile.available())
   Serial.write(myFile.read());

Das ist erheblich einfacher als einen ftp server zu schreiben, oder wie kompliziert stellst du dir das vor ?
Wofür brauchst du das edle Ethernet-Shield sonst ?

Das Ethernet-Shield nutze ich ja momentan dafür, die Dateien die jeden Tag erstellt werden, auf der SD-Karte zu speichern.

Wenn ich im Code die einzelnen Dateien auslesen lasse (im Maximalfall 365 *.txt-Dateien mit jeweils 86.400 Zeilen), dann müsste ich die Informationen von der seriellen Schnittstelle heraus auslesen und dann auf dem PC- speichern, oder?

Gibt es denn keine andere Möglichkeit, im laufenden Betrieb die Dateien von der SD-Karte auf den PC zu übertragen, ohne die SD-Karte aus dem SD-Card-Slot des Ethernet-Shields zu entnehmen (Datenaufzeichnung wäre dann unterbrochen)?

Vielen Dank für eure Antworten!

Gruß

Hallo Leute,

nach weiterer Recherche bin ich auf folgendes gestoßen:

http://www.ladyada.net/learn/arduino/ethfiles.html

Weiterhin benutzen wir bei mir zu Hause, um Internet in allen Gebäuden zu haben das System von devolo, dass DLAN AV Duo. Hier mal ein link dazu:http://www.devolo.de/consumer/93_dlan-200-avduo_starter-kit_produktvorstellung_1.html?l=de.

Ist es denn möglich dies mit meinem Sketch zu verbinden, sodass ich übers Internet auf den Arduino und die SD-Karte zugreife und mir die Files anzeigen bzw. auch herunterladen kann?

Würde das das ablaufende Programm zur Windmessung zu sehr stören?

Gruß