Forum: Mikrocontroller und Digitale Elektronik Arduino als Fileserver


von Paul S. (techpaul)


Lesenswert?

Guten Abend allerseits!
Ich hätte eine kurze Frage bezüglich des Arduino Ethernets + SD Shields. 
Ist es möglich ein File (Bild, Worddatei...) via einer html/php Seite 
auf die sd karte des arduinos zu uploaden?
Ich wäre das ganze jetzt mit einem Drag and Drop Feld angegangen, jedoch 
wie bekomme ich php auf dem Arduino zum laufen, braucht man davor nicht 
einen PHP Interpreten?
Freu mich auf die antworten,
Danke an alle,
Alles Liebe

von Einer K. (Gast)


Lesenswert?

PHP wird auf den wenigsten Arduinos laufen.....


Du suchst wohl einen Raspberry, oder so...

von Paul S. (techpaul)


Lesenswert?

Hallo,
vielen vielen Dank für deine rasche Antwort.
Ah das wäre eine Idee ;)
Wie könnte ich den raspberry dann als drag&Drop server konfigurieren?
Ginge das mit einem C Programm oder ist das im Terminal zu machen?
Lg

von Karl M. (Gast)


Lesenswert?

Hallo,

sicherlich kann man auf einen RaPi über das SSH-Protokoll auf eine Shell 
zugreifen, um dort eine Apache+PHP Spripten zu administrieren.

Ich denke Du musst erst mal lernen, wie man Daten per GET und POST 
übergibt.
Dann noch, was das mit PHP als Scriptsprache auf sich hat und wie die 
Interaktion mit der Aussenwelt (Dateisystem) aussehen kann.

von Paul S. (techpaul)


Lesenswert?

Hallo,
ja diese begriffe sind mir wirklich noch unbekannt, ich werde mir das 
mal genauer anschauen ;)
Danke für die Antwort es ist sehr hilfreich ;)
Alles Gute&Liebe,
Paul

von yesitsme (Gast)


Lesenswert?

PHP auf einem Arduino? Vermutlich eher nicht.

Für einen Dateiupload musst du HTTP-POST und das MIME 
multipart/form-data anhand der RFCs implementieren. Das geht auch in C. 
(Oder eine Bibliothek finden, die du nur noch anpassen musst)

Das dazugehörige <form> kannst du als statische HTML-Seite ausliefern.

von Harry L. (mysth)


Lesenswert?

Raspberry Pi & Nextcloud

https://nextcloud.com/

von Paul S. (techpaul)


Lesenswert?

Danke,
gibt es eigentlich für Arduino einen Interpreten mit dem man eine html 
homepage auf dem tft screen darstellen kann?
Lg

von Stefan F. (Gast)


Lesenswert?

Paul S. schrieb:
> Danke,
> gibt es eigentlich für Arduino einen Interpreten mit dem man eine html
> homepage auf dem tft screen darstellen kann?
> Lg

Mit Sicherheit nicht. Schau mal nach, wie viel Speicher dein Web Browser 
gerade belegt.

von Paul S. (techpaul)


Lesenswert?

Ok...das packt der Arduino mit seinem mini Speciherchen nie ;(
Danke auf jeden Fall

von Michael U. (amiga)


Lesenswert?

Hallo,

"Arduino" ist für mich längst der Name für ein Konzept geworden.
Wenn Du bestimmte Hardwarevorstellungen hast, nenne die einfach.
Auf einem Mega328 (UNO, Nano usw.) kann man sinnvoll nichts von dem 
realisieren. Auf einem der ARM-Arduinos geht merklich mehr, genauso wie 
auf ESP8266/ESP32 in der ArduinoIDE.

Versuche mal, Deine Pläne und Absichten etwas konkreter zu beschreiben,
mir ist z.B. im Moment völlig unklar, warum ich eine Datei auf eine 
SD-Karte am Arduino per Webseite zu befördern.

Gruß aus Berlin
Michael

von Paul S. (techpaul)


Lesenswert?

Hi Michael,
ich arbeite bei einer Bühnentechnikfirma. Wir haben leider ziemlich 
vielen verschiedenen Rechnern im ganzen Haus verstreut. Da ich viele 
Datein auf allen Rechnern im Haus bräuchte habe ich an eine einfache 
Cloudlösung mit Drag&Drop gedacht. Dass ich jetzt keine iCloud oder so 
verwende ist eher weil es mir hier auch bist ums tüfteln und basteln 
geht wollte ich mich selber dransetzten. Arduino hatte ich deshalb vor 
weil ich schon lange damit dinge wie DMX Mischpulte, CAN-Bus controller 
für Kamerakräne etc baue...
Als "Mainboard" hätte ich mir jetzt den Arduino Due vorsgesellt,der auf 
einem 32-bit ARM Prozessor basiert.
Hättest du hierzu eine Idee?
Danke,
Alles Liebe Paul

: Bearbeitet durch User
von NichtWichtig (Gast)


Lesenswert?

Besorg Dir einen MiniITX Rechner mit Linux und Du hast etwas 
funktionierendes.
Du willst Deine Daten doch bei der Arbeit nutzen und nicht ann allen 
Ecken und Kanten feststellen das Deine Bastellösung nicht funktionert.

Murphy sagt das Du immer dann NICHT an die Files dran kommst wenn es am 
wichtigsten ist.

von Stefan F. (Gast)


Lesenswert?

Paul S. schrieb:
> Als "Mainboard" hätte ich mir jetzt den Arduino Due vorsgesellt,der auf
> einem 32-bit ARM Prozessor basiert.

Du hast anscheinend noch keine Ahnung von Web-Programmierung. Solche 
kleinen Mikrocontroller sind 20x aufwändiger in der Programmierung, als 
PC basierte Sachen mit PHP, NodeJS, Java, .NET und so weiter.

Zum Entwickeln nutzt du besser erstmal deinen ganz normalen PC/Laptop 
auf dem Schreibtisch. Später kann das fertige Programm auf einen 
kleineren Raspberry Pi übertragen werden. Vergiss Mikrocontroller.

Ich empfehle Dir, mit PHP anzufangen. Da kommt man ohne Vorkenntnisse 
meiner Meinung nach am schnellsten rein. Du musst Dich aber auch mit 
HTML, CSS und dem HTTP Protokoll beschäftigen.

Drag&Drop ist übrigens ein besonders problematisches Thema. Das musst du 
für jeden Browser etwas anders implementieren, da dies eigentlich gar 
nicht vorgesehen ist. Vorgesehen ist, dass man in einem Formular auf 
einen Durchsuchen-Button klickt, um ein einzelne Datei hochzuladen. Mach 
das erstmal für den Anfang. Drag&Drop kannst du dann später als Lekkerli 
oben drauf bauen.

Im Übrigen halte ich nicht viel von der ganzen Idee, weil das Web primär 
für das Betrachten von Texten gedacht ist. Das wirst du beim Entwickeln 
noch merken. Für das Ablegen von Dateien verwendet man FileServer. In 
Windows ist einer unter dem Namen "Freigabe" enthalten. In Linux heißt 
das Windows kompatible Gegenstück "Samba". Läuft auch auf einem 
Raspberry Pi und funktioniert out of the Box, ganz ohne Programmierung.

Unter dem Namen NAS kannst du fertige Boxen kaufen, wo Festplatte, 
Fileserver und eventuell sogar ein Web Interface fix und fertig 
kombiniert sind.

Außerdem enthalten viele Internet/WLAn Router bereits die von Dir 
gesuchte Funktion. Ich habe zu diesem zweck z.B. einen USB Stick an 
meine Fritzbox gesteckt. Da habe ich jetzt ein paar GB gemeinsam 
nutzbaren Speicherplatz mit richtigem Fileserver (wird also als Laufwerk 
in Windows und Linux eingebunden) und mit Webinterface für die 
Smartphones.

von Einer K. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Im Übrigen halte ich nicht viel von der ganzen Idee, weil das Web primär
> für das Betrachten von Texten gedacht ist.
Nee, oder...

Die ersten beiden Anwendungen im "Web" waren FTP und ein MTA

von Veit D. (devil-elec)


Lesenswert?

Hallo,

im Grunde wurde schon alles einzeln genannt. Wenn es nur um den Zugriff 
auf Dateien geht im lokalen Netzwerk, dann nimm den aktuellen Raspi oder 
besser einen kleinen Mini PC mit Linux (Ubuntu LTS), darauf samba über 
den Paketmanager installieren, Freigaben konfigurieren, fertig. Dann 
kannste mit jedem PC im Netzwerk bequem im Dateimanager auf die 
Freigaben zugreifen inkl. Drag and Drop.

von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Stefanus F. schrieb:
>> Im Übrigen halte ich nicht viel von der ganzen Idee, weil das Web primär
>> für das Betrachten von Texten gedacht ist.
> Nee, oder...
>
> Die ersten beiden Anwendungen im "Web" waren FTP und ein MTA

Ich meine natürlich den Web-Browser.

von Mario M. (thelonging)


Lesenswert?

Das drag-and-drop passiert komplett im Web-Browser.
https://wiki.selfhtml.org/wiki/JavaScript/File_Upload

Der Arduino braucht nur einen Web-Server, der den Upload von Dateien 
beherrscht.
https://github.com/ovidiucp/TinyWebServer

von Paul S. (techpaul)


Lesenswert?

Ok ich versuche einmal die genannten Vorschläge.
Herzlichen Dank, Paul

von Stefan F. (Gast)


Lesenswert?

Mario M. schrieb:
> Das drag-and-drop passiert komplett im Web-Browser.

Das ist schön. Diesen Punkt fand ich immer ein bisschen doof.
Mit den Neuerungen HTML5 bin ich noch nicht so vertraut. habe bisher nur 
die Features zum Zeichnen von Diagrammen verwendet.

von Sven K. (quotschmacher)


Lesenswert?

also ich würde dafür auch ganz klar einen raspberry (oder ähnliches), 
eine externe festplatte und nextcloud empfehlen. für nextcloud gibt es 
auch desktopanwendungen und man kann das ganze ähnlich einer dropbox 
laufen lassen. eine weboberfläche, mit der man dateien hochladen kann 
gibt es auch. im internet ist alles haarklein erklärt.

von Jan L. (ranzcopter)


Lesenswert?

Paul S. schrieb:
> Ist es möglich ein File (Bild, Worddatei...) via einer html/php Seite
> auf die sd karte des arduinos zu uploaden?

möglich: ja! Zumindest wenn man "Arduino" als IDE für einen ESP32 
versteht, dann kann man da sogar auf Fertiges zurückgreifen:
Hardware:
https://de.aliexpress.com/item/ESP32-ESP-WROOM-32-SD-Karte-FT231-USB-WiFi-Bluetooth-Modul-F-r-Arduino/32893879028.html

Software:
https://github.com/G6EJD/ESP32-8266-File-Upload

sinnvoll: eher nein, siehe Vorredner - mit einem Pi aufwärts (NUC, 
Mini-ITX)  geht das sicher besser. Der ESP32 ist über HTTP auch eher 
lahm, und mit der SD-Karte kann es schonmal hakeln.
Hängt natürlich auch von den benötigten "Dateigrössen" ab, irgendwann 
kann auch der Pi mit seinem lahmen USB nerven - oder mit einer 
zerschossenen SD-Karte...

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.