Dateiübertragung via LAN von Arduino auf PC

Hallo,
ich möchte mit einem Arduino gesammelte Messwerte zyklisch auf einen PC übertragen.
Quelle ist ein Arduino Mega 2560 mit Ethernet Shield.
Bisher sendet der Arduino über LAN auf ein Notebook auf dem XAMPP läuft in eine MySQL Datenbank.
Das soll aber so nicht bleiben.

Ich will die Daten künftig auf einen anderen PC senden auf dem weder ein Webserver noch eine Datenbank läuft.
Wegen anderer Aufgaben läuft bisher nur ein FTP-Server auf diesem PC (Filezilla).
XAMPP will ich auf diesem PC nicht installieren, sofern es sich vermeiden lässt.

Welche Möglichkeiten gibt es wenn der Arduino den aktiven Part übernimmt.
Der Arduino sollte dabei täglich einen neue Datei auf dem PC anlegen (.csv-Format) und dann zyklisch jeweils eine neue Zeile in diese Datei schreiben.
Welche Software wäre hierzu auf der PC-Seite möglich. Wie sieht die Gegenseite auf dem Arduino aus.
Die Übertragung sollte über LAN und nicht über USB erfolgen.

Welche Möglichkeiten gibt es wenn der Arduino den passiven Part übernimmt.
Der PC legt hierbei täglich eine neue Datei an und der PC fragt zyklisch den Arduino ab und schreibt die Daten in diese Datei (.csv-Format).
Welche Software wäre hierzu auf der PC-Seite möglich. Wie sieht die Gegenseite auf dem Arduino aus.
Die Übertragung sollte über LAN und nicht über USB erfolgen.

Ich habe http://www.gidf.de/ nun schon einen ganzen Tag bemüht und leider keine passende Lösung gefunden.
Vieleicht würden mir eine paar passende Stichworte oder Suchbegriffe schon helfen.

Viele Grüße
Peter

kleiner Nachtrag:
auf dem PC wo die Daten hin sollen läuft auch "wget"
Vielleicht macht das sie Sache einfacher :slight_smile:

Kleiner Statusbericht meinerseits.

Global betrachtet läuft die Sache inzwischen zufriedenstellend. Verbessern kann man immer was. :slight_smile:

Ich habe mich für die zweite Möglichkeit entschieden bei der ein PC den aktiven Teil übernimmt.

Die Teilnehmer:
PC (Win XP) der stündlich seine interne Uhr mit einen Zeitserver im Internet sychronisiert und “wget” zur kommunikation mit dem Master-Arduino.

Master Arduino ist ein Mega 2560 mit Ethernet-Shield über “SPI.h” und “Ethernet.h”, sowie einem RF433 Sender und einem RF 433 Empfänger über “VirtualWire.h”.

Slave Arduino ist derzeit ein Arduino Nano 328 mit einem RF433 Sender und einem RF 433 Empfänger über “VirtualWire.h”.
Sensoren am Slave:
2x Lichtsensor an Analogeingängen
2x Temperatursensor DS18B20 über “OneWire.h” und “<DallasTemperature.h>”
1x Feuchtesensor DHT22 über “DHT22.h”
1x Drucksensor BMP180 über “BMP085.h”
Der Slave Arduino kommt, wenn er mal ein Gehäuse gefunden hat, in den Garten als kleine Wetterstation.
Abhängig von den Messwerten der Lichsensoren soll er dann auch eine LED-Gartenbeleuchtung ein/ausschalten.

Der PC als Datenlogger:
Der Taskplaner ruft einmal pro Minute eine Batchdatei zum anfordern von Messwerten auf.
Die Batchdatei ruft alle 15 Sekunden “wget” mit Datum, Uhrzeit und einer Slavekennung als Parameter auf.
“wget” fragt dann über das Netzwerk beim Master Arduino die Messwerte an.
Der Master Arduino fordert über die Funkverbindung die Messwerte beim Slave Arduino an.
Dieser sendet dann über Funk einen kompletten Satz Messwerte an den Master Arduino.
Der Master Arduino baut jetzt eine Zeile im .csv Format zusammen welche den Timestamp und die Messwerte enthält.
Diese Zeile sendet er dann an “wget” zurück. “wget” schreibt die empfangene Zeile in eine Datei “temp.csv”.
Eine Batchfunktion kopiert die “temp.csv” dann zu einer Datei “tageswerte.csv” hinzu.
Die Datei “tageswerte.csv” wächst so alle 15 Sekunden um eine Zeile an.

Kurz vor Mittenacht, also nachdem die Datenabfrage von 23:59:45 Uhr beantwortet wurde, wird die Datei “tageswerte.csv” in “Garten_yyyy_mm_dd.csv” umbenannt und eine neue leere Datei “tageswerte.csv” angelegt.

Die Slavekennung in der Datenanforderung an den Master Arduino dient dazu gezielt mehrere Slaves abzufragen.
Derzeit ist die Wetterstation für den Garten der erste und einige Slave Arduino.

Zwei weitere Slaves sind noch angedacht.
Einer davon soll im Keller einige Messwerte sammeln. Er soll zwei eHZ-Stromzähler mit SML-Protokoll und OBIS-Kennzahlen auslesen. Zudem kann er mir dann auch noch ein paar Messwerte von der Heizungsanlage liefern.
Der zweite wird unter dem Dach montiert werden. Er soll mir Messwerte über die Sonneneinstrahlung, die Modultemperatur und die Lufttemperatur an meiner Photovoltaikanlage liefern.

Wahrscheinlich muss ich von den billigen RF433 Sende- und Empfangsmodulen weg, weil ich vermutlich damit keine Verbindung zum Keller hinbekomme. Wären dann die NRF24L01 Module eine mögliche Lösung?
Zwischen Master Arduino und Keller befinden sich 3 Betondecken. :0

Hast du nicht irgendwie die möglichkeit ein "kleines" 2Adriges geschirmtes Kabel vom Keller zu Dachboden zu bekommen?
Dann bietet sich eine RS485 verbindung an.
Gruß
Der Dani

volvodani:
Hast du nicht irgendwie die möglichkeit ein "kleines" 2Adriges geschirmtes Kabel vom Keller zu Dachboden zu bekommen?
Dann bietet sich eine RS485 verbindung an.

Danke für die Idee :slight_smile: :slight_smile:
Diese Möglichkeit habe ich und das ohne großen Aufwand.
Es liegt bereits ein cat5 Kabel vom Keller bis zum Dachboden worüber schon eine RS485 Verbindung für einen anderen Zweck mit 1200 Baud läuft.
Zudem wird in diesem Kabel noch ein S0-Zählimpuls und ein analoger Messwert übertragen.
Jedenfalls ist noch genau ein verdrilltes Adernpaar frei.
Bei einer Kabellänge von 30m sollte dort locker 115200 Baud über RS485 möglich sein.
Bidirektionale Kommunikation sollte mit den passenden Treiber IC's auch möglich sein.

Wenn alles nichts hilft habe ich auch noch ein Netzwerkkabel im Keller das ich nutzen könnte.
Dann muss ich dem Arduino dort halt noch ein Ethernet-Shield spendiren.

Die Frage nach Erfahrungen mit den NRF24L01 Modulen kam nur weil das insgesamt gesehen die einfachste Möglichkeit wäre und die teilweise recht günstig zu haben sind.

Gruß, Peter

Lies mal hier durch, da gehts darum über PC mit der Software Homeputer Studio den Arduino zu steuern.
Nette sache wenn man Windows nutzen will.