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.
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.
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?
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.
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.
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.
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
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.