Arduino als Fileserver

OP #5582660
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
Gast
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.
Gast
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.
Gast
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.
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
OP
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
Gast
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.
Gast
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.
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.
Gast
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.
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.
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...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.