Forum: Mikrocontroller und Digitale Elektronik mit AVR Dateien hochladen


von Stefan S. (engi)


Lesenswert?

Hi, ich habe heute mal eine recht einfache Frage. Ist es möglich mit AVR 
und Bascom auch einen Dateiupload durchzuführen? Hintergrund ist der, 
dass der direkte Zugriff durch einen Router verhindert wird. Daher die 
Überlegung das der Atmega die Daten als komplette Datei per FTP 
hochlädt. Basis des ganzen wird das Pollin "AVR Net IO". Ich habe zum 
Thema schon ausgiebig gegoogled, aber nur Lösungen mittels Direktzugriff 
gefunden.

Anwenundungsgebiet soll der automatische Upload der Wetterdaten werden. 
Funktionsfähiger Empfänger und Dekoder für meine WS2500 Sensoren 
existiert inzwischen. Um nicht immer den PC laufen lassen zu müssen, 
wäre es cool, die Daten direkt ins Netz laden zu können ohne den Umweg 
über den stromgierigen Computer.

von Chris L. (kingkernel)


Lesenswert?

Wo genau möchtest du sie denn hochladen?
Wäre es nicht sinnvoller, sie auf dem NET-IO zu lassen und dort über 
einen Webserver bereitzustelen? Oder meintest du mit nicht direkt 
zugreifbar, dass das NET-IO nicht direkt zugreifbar ist? Kannst du die 
einstellungen des Routers ändern?
Ansonsten ist dies möglich, du braucht bloß einen FTP-Client auf dem 
NET-IO zu entwickeln, vielleicht gibt es aber auch schon etwas fertiges.

Eine weitere möglichkeit wäre ein PHP-Script auf einem Server, das du 
mit entsprechenden (GET oder POST)-Parametern aufrufst und somit deine 
Werte übermittelst. Damit hättest du die wenigste arbeit.

von Dominik S. (dasd)


Lesenswert?

Chris L. schrieb:
> Wo genau möchtest du sie denn hochladen?

Auf einen Webspace vermutlich.

Stefan S. schrieb:
> Hintergrund ist der,
> dass der direkte Zugriff durch einen Router verhindert wird.

Chris L. schrieb:
> Wäre es nicht sinnvoller, sie auf dem NET-IO zu lassen und dort über
> einen Webserver bereitzustelen? Oder meintest du mit nicht direkt
> zugreifbar, dass das NET-IO nicht direkt zugreifbar ist? Kannst du die
> einstellungen des Routers ändern?

Er will vermutlich vom Internet aus auf die Daten zugreifen.
Auf den NetIO kommt er von außen aber dank Router nicht.
port-forwarding kann man natürlich einrichten. Ich mag es aber auch 
nicht sonderlich wenn ich es vermeiden kann.
Zugriffe von extern->intern sind immer ein Sicherheitsrisiko.

von Stefan S. (engi)


Lesenswert?

@Dominik, genau so ist es.

Ich will Sicherheitsrisiken vermeiden und daher keine Ports im Router 
nach aussen freigeben. Die Sache mit dem PHP Script allerdings klingt 
klasse. Dort könnte ich dann meine Daten in eine Datenbank speichern und 
das Ganze letztlich gar noch grafisch darstellen lassen (Später mal. 
Noch ist PHP und SQL absolutes Neuland für mich). Im Wetterstationen 
Forum hatte vor kurzem erst jemand ein kleines Tutorial zu diesem Thema 
geschrieben. Dann wäre nur noch die Frage, wie die Parameter vom AVR 
über Netzwerkcontroller an die Datenbank übermitteln.

von Rolf Magnus (Gast)


Lesenswert?

Dominik S. schrieb:
> port-forwarding kann man natürlich einrichten. Ich mag es aber auch
> nicht sonderlich wenn ich es vermeiden kann.
> Zugriffe von extern->intern sind immer ein Sicherheitsrisiko.

Ob sich wirklich jemand die Mühe macht, den AVR zu hacken? Ich weiß 
nicht...

von Georg G. (df2au)


Lesenswert?

Wenn es nicht unbedingt der AVR-NetIO sein muss, ist die Himbeere eine 
gute Alternative. Sie ist unwesentlich teurer und bietet dir ein 
komplettes Linux mit allem Zubehör.

Mit dem ATMega32 im NetIO musst du viele Kompromisse eingehen, weil das 
RAM doch sehr begrenzt ist. Mit einem ATMega128 wird es entspannter, 
aber die üblichen IP-Stacks bieten für deine Anwendung wenig Komfort.

von Stefan S. (engi)


Lesenswert?

Georg G. schrieb:
> Wenn es nicht unbedingt der AVR-NetIO sein muss, ist die Himbeere eine
> gute Alternative.

Die Himbeere? Raspberri PI? Wäre auch ne Idee. Ich denke mal, vom 
Stromverbrauch her, auch nicht wesentlich höher als Netzwerkkontroller 
und Atmega.

Allerdings habe ich mich jetzt auf die Datenübergabe per URL 
eingeschossen. Also diese Get http Methode. Da müsste der Atmega nur als 
String die Adresse der PHP-Datei mit hinten angehangenen Datensatz 
senden (z.B. http://www.beispiel.de/test.php?Temp2m=17,4) . Das PHP 
Script würde dann die empfangenen Daten in die Datenbank schreiben.

Da bräuchte ich dann nur ein Beispielprojekt, welches ähnliches tut und 
in Bascom geschrieben ist. Das PHP Script sollte nicht das riesen 
Problem werden. Da gibt es ja auch genug Demoprojekte im Netz.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.