Forum: Mikrocontroller und Digitale Elektronik STM32 Ethernet Stack Webvisu & co


von er_drei (Gast)


Lesenswert?

Guten Tag,
ich beschäftige mich ein wenig mit den STM32.
Bis jetzt eher kleinere STM´s mit Can.
Nun gäbe es eine Anwendung wo ein Ethernet Stack von Vorteil wäre. Im 
Prinzip sollte ein Webserver drauf laufen um Messwerte und Zustände 
anzuzeigen.
Dazu wäre mir HTML5 und PHP sehr recht.
Außerdem wäre Modbus TCP  gut.
Gibt es brauchbare Libs eventuell auch kommerziell?
Gibt es gute Tools um schnell Webseiten zu erstellen wo Messdaten 
angezeigt werden.
Ich möchte die Seiten Lokal auf dem STM laufen haben.
Wie steht es mit den Mac Adressen? Sind auf den Ethernet STM`s bereits 
Mac Adressen vorhanden?
Danke für Eure Professionelle Hilfe.

von Jim M. (turboj)


Lesenswert?

er_drei schrieb:
> azu wäre mir HTML5 und PHP sehr recht.

PHP auf einem Cortex-M3? LOL, das wird so nix.

Da braucht man den "Dampf" (CPU+RAM) von mindestens einem Raspberry Pi.

von er_drei (Gast)


Lesenswert?

Jim M. schrieb:
> PHP auf einem Cortex-M3? LOL, das wird so nix.
>
> Da braucht man den "Dampf" (CPU+RAM) von mindestens einem Raspberry Pi.

und ohne PHP?
Hat man da Chancen?

von A.. P. (arnonym)


Lesenswert?

er_drei schrieb:
> Dazu wäre mir HTML5 und PHP sehr recht.

HTML5 ist nicht das Problem, es bleibt ja eine Textdatei. PHP kannst du 
dir eigentlich abschminken, denn das ist ja ein serverseitige Skript und 
für PHP wird dein STM32-Server einfach zu schlapp sein. Höchstens mit 
Server Side Includes kannst du da noch Dynamik reinbringen.

er_drei schrieb:
> Gibt es brauchbare Libs eventuell auch kommerziell?

Mit CycloneTCP habe ich sehr gute Erfahrungen gemacht. Ist super 
strukturiert und man findet sich schnell im Code zurecht, da fast jede 
Zeile (zum Erlernen des Stacks eigentlich super) kommentiert ist. Der 
Entwickler bietet auch unterschiedliche Lizenzen an und der Stack kommt 
auch mit einer ordentlichen Auswahl an Anwendungsprotokollen wie FTP, 
HTTP, MQTT u.a. daher. Dazu gibt es noch haufenweise Beispiele für 
verschiedenste Controller und Boards und dazu noch einige Schmankerl wie 
SD-Karten-Anbindung und auch eine tolle Crypto-Bibliothek.

er_drei schrieb:
> Gibt es gute Tools um schnell Webseiten zu erstellen wo Messdaten
> angezeigt werden.

Jeder Texteditor, der über die Fähigkeiten des einfachen Windows-Editors 
hinausgeht, genügt. Ich benutze gerne Sublime Text.

er_drei schrieb:
> Wie steht es mit den Mac Adressen? Sind auf den Ethernet STM`s bereits
> Mac Adressen vorhanden?

Soweit ich weiß, bringen die STMs keine MAC-Adressen mit, da ST mit den 
einfachen Controllern ja keine Netzwerktechnik in dem Sinne ausliefert. 
Da MAC-Adressen ja Geld kosten, überlassen die es dir, ob du mit deiner 
Anwendung Netzwerktechnik unter die Leute bringen möchtest. Dann mögest 
du eben auch deinen Block an MAC-Adressen beantragen. Für alles andere 
wäre das ja für ST rausgeschmissenes Geld (verständlich).
Wenn du nur zuhause damit rumspielst, kannst du dir ja einfach eine 
ausdenken, die nicht bereits ein anderes Gerät bei dir besitzt.

von A.. P. (arnonym)


Lesenswert?

er_drei schrieb:
> und ohne PHP?
> Hat man da Chancen?

Stellt sich die Frage, warum du denn unbedingt PHP auf einem Controller 
laufen lassen möchtest. Hast du etwa vor, da einen Webshop 
draufzupacken?

Wenn du nur ein paar Messwerte oder ähnlich einfache Dinge auf deiner 
Webseite anzeigen möchtest, dann ist deine Idee mit PHP sowieso 
unsinnig. Das ist wie mit einem Mercedes AMG zum nächsten Briefkasten 
fahren.

Bastel dir eine Webseite, die per Javascript regelmäßig die Werte von 
deinem Controller abfragt und dieser liefert die einfach in einem Format 
deiner Wahl (JSON bietet sich hier an) aus. Fertig. Braucht man nicht 
mal PHP für.

von A.. P. (arnonym)


Lesenswert?

Achja, zu CycloneTCP sollte ich noch sagen, dass du im Falle der STM32 
noch einen externen PHY-Chip benötigst, da die netzwerkfähigen STMs ja 
nur über eine (R)MII-Schnitstelle verfügen, über die die Ethernet-Frames 
an einen PHY weitergereicht werden. Ich habe damals für meine Zwecke den 
DP83848 genommen, weil es den schon auf einem praktischen Breakout-Board 
von Waveshare gab.

von Mark (Gast)


Lesenswert?

er_drei schrieb:
> ich beschäftige mich ein wenig mit den STM32.

> Gibt es brauchbare Libs eventuell auch kommerziell?

Wir haben wohl unterschiedliche Definitionen was "beschäftigen" 
bedeutet. Für mich gehört dazu auch mal nachzusehen, was der Hersteller 
und Partner anbieten:

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html

> Nun gäbe es eine Anwendung wo ein Ethernet Stack von Vorteil wäre.

Mit einem Ethernet-Stack kommst du nicht weit. Es wäre schon sehr 
günstig mindestens einen TCP/IP-Stack zu nehmen.

> Prinzip sollte ein Webserver drauf laufen

Z.B. AN3966 
http://www.st.com/resource/en/application_note/dm00036052.pdf

> Dazu wäre mir HTML5

Das hängt nur davon ab was du in deine Webseite schreibst.

> und PHP sehr recht.

...

> Außerdem wäre Modbus TCP  gut.

https://www.segger.com/products/connectivity/emmodbus/
https://www.freemodbus.org
https://github.com/luo4lu/STM32-modbus

von Schorsch X. (bastelschorsch)


Lesenswert?

Ich hab an einem STM32 einen Wiznet W5500 drangehängt. Kostet ähnlich 
wie ein PHY und hat das ganze Netzwerkgeraffel mit drin. Wenn es nicht 
absolute Topgeschwindigkeit sein muss, klappt das sehr gut. 8 sockets 
reichen in den meisten Fällen auch aus. Software dafür sehr einfach von 
Winznet zu verwenden.

von M.K. B. (mkbit)


Lesenswert?

Ich habe ein ähnliches Bastelprojekt.
Ein Webinterface soll regelmäßig Daten vom Mikrocontroller abfragen und 
darstellen. Bei mir läuft das ganze aber auf einem Infineon Controller 
(ARM).

Mein Setup:
- spezieller Code der Ethernet an lwip anbindet
- lwip TCP/IP stack
- http Server von lwip
- SD Karte mit statischen Webinhalten (könnte man aber auch in den Flash 
legen)

Beim http Server habe ich den Dateizugriff so angepasst, dass er je nach 
Pfad auf der SD Karte die Scripte, HTML-Dateien und Bilder lädt. Unter 
einem speziellen Pfad läuft stattdessen ein Stück Code (C++) der die 
aktuellen Werte abfragt und als JSON-Datei zurückliefert. Firefox 
formatiert JSON Dateien sogar, wenn man den richtigen Content-Type 
application/json zurückliefert.

Für die bessere Entwicklung habe ich auch noch einen FTP Server 
eingebaut, damit ich direkt auf dem Mikrocontroller die Scripte ändern 
kann, ohne immer die SD Karte wechseln zu müssen. Könnte man aber auch 
über einen Proxy lösen, der die Daten vom Controller und die statischen 
Inhalte von der Festplatte liest.

von Mr. Big (Gast)


Lesenswert?

Mach es besser per Websockets. Das frisst nicht unnötig Performance und 
ist ideal geeignet, immer aktuelle Zustände und Messwerte anzuzeigen.
Ausserdem bist Du dann nicht auf JSON-Bloatware festgelegt, sondern 
kannst Deine spezifischen Daten schön schlank übertragen.

von temp (Gast)


Lesenswert?

Mr. Big schrieb:
> Ausserdem bist Du dann nicht auf JSON-Bloatware festgelegt, sondern
> kannst Deine spezifischen Daten schön schlank übertragen.

Na das get ja wohl bei Json genauso. Gerade wenn es ums Ausliefern und 
nicht ums Parsen geht. Der Overhead den JSON z.b. bei einem 
Messwertarray benötigt ist verschwindend gering. Nur sollte man da nicht 
noch 20 tolle libs von irgendwoher einbauen sondern das JSON selbst mit 
ein paar wenigen Zeilen C/C++ erzeugen.

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.