Hallo,
ich möchte auf meinem STM32 Controllerboard über einen Web-Browswer
zugreifen welcher mir dann eine Informationsseite zum Bedienen anzeigt.
Im Prinzip wie bei der Fritzbox. Nur möchte ich noch dynamische
grafische Element wie z.B. Balken Skalen usw. anzeigen. Das ganze sollte
auch funktionieren, ohne das ich die Seite immer aktualisisern muss.
Jemand eine Idee wie man so etwas realisieren kann, ggf. auch mit
externe Tools?
Gruß
R.Richter
Das geht IMHO mit grundlegenden HTML Elementen, ist aber auf einem µC
relativ aufwändig zu programmieren.
Ich würde den µC nur Werte an einen Server (z.B. PC, RPi oder Fritzbox)
schicken und diesen dann die Webseite generieren lassen. Auf dem Server
hat man die Ressourcen für moderne Webtechniken, auf dem µC eher nicht.
Jim M. schrieb:> Das geht IMHO mit grundlegenden HTML Elementen, ist aber auf einem> µC> relativ aufwändig zu programmieren.>> Ich würde den µC nur Werte an einen Server (z.B. PC, RPi oder Fritzbox)> schicken und diesen dann die Webseite generieren lassen. Auf dem Server> hat man die Ressourcen für moderne Webtechniken, auf dem µC eher nicht.
So ein Quark.
Heutzutage nimmt man dafür Javascript und macht die GUI und Berechnung
der Graphik clientseitig, die Kommunikation zwischen Browser und µC
läuft per Websockets. Ein 32Bit Cortex ist damit hoffnungslos
unterfordert...
Meister Propper schrieb:> Ein 32Bit Cortex ist damit hoffnungslos> unterfordert...
Nicht wenn sein " STM32 Controllerboard " auf dem STM32L011 basiert.
Wie man das Problem richtig löst würde mich auch interessieren. Ich will
Parameter eingeben und Echtzeit Daten als Grafik anzeigen.
Gibt es irgendwo eine Beispiel Lösung?
Also google spuckt mit "STM32 Webserver" viele passende Dinge und
Beispiele aus.
Was willste denn jetzt genau wissen?
In HTML5 gibt es das canvas Element, damit lässt sich per Javascipt
drinne rummalen -> http://smoothiecharts.org/
daten per ajax/websocket im Hintergrund laden.
Was Jim m. Machen will wird nur erst sagen können.
Ich habe mich noch nicht genau informiert wie man so ein webfrontend
bauen kann.
Fange ehrlich gesagt auch erst in ca 5. Wochen an mit dem Projekt.
ich brauche eine Visualisierung von Echtzeitdaten (Temperatur,Druck,
Spannung, Strom, ...). Das ganze dann als Grafik dargestellt. Der
Messungs Intervall wird als Parameter eingestellt. Damit es noch mehr
spass macht soll man die werte durch scrollen können.
Wollte dafür erst ein Programm schreiben, aber ein Web System ist meiner
Meinung für mein Problem das beste.
Vg, uli
Ich bin auch gerade dabei für mein ESP-Projekt einen Webserver zu
basteln der dann (erstmal nur) die Werte eines analogen
Temperatursensors vom ESP entgegennimmt und in einer MySQL Datenbank
speichert.
Ich denke, es macht relativ wenig Sinn, alles (also Sensoren auslesen
und noch ein Webserver obendrauf der dann die Website bereitstellt) auf
einem kleinen µC laufen zu lassen.
"Früher" musst man Diagramme auf dem Server als Bilddatei erstellen und
vom Browser abholen lassen.
Mittlerweilen gibt es dazu das Canvas Objekt in Javascript, so dass man
das Zeichnen dem Browser überlassen kann.
https://wiki.selfhtml.org/wiki/JavaScript/Canvas> Ich denke, es macht relativ wenig Sinn, alles... auf> einem kleinen µC laufen zu lassen.
Sehe ich auch so. Ein Raspberry Pi oder ähnlicher Rechner ist für sowas
eher geeignet und viel einfacher zu programmieren.
Die neuen Nucleo144 Boards haben LAN auf der Platine.
Unter den Codebeispielen ist auch ein Web-Server.
Hab es zwar nicht selbst probiert, aber wenn ich an das F7 Discovery
denke bei dem sogar VNC möglich ist, dann ist sicher damit auch schon
etwas anzufangen.
Uli schrieb:> Wollte dafür erst ein Programm schreiben, aber ein Web System ist meiner> Meinung für mein Problem das beste.
Schon, aber auch browserbasiert musst du programmieren, nur eben in HTML
und Javascript (mindestens). Und wegen der Eigenheiten des Webdesigns
ist der Aufwand meiner Meinung nach deutlich höher als eine
Windows-Applikation zusammenzuklicken, dafür läuft dann das Ergebnis
auch überall, ob Handy/Tablett/Mac oder PC, und egal ob iOS, Android,
Windows, Linux oder sonstwas.
Nur ein Beispiel: aus Sicherheitsgründen darf ein Browser nicht auf die
Festplatte des Systems zugreifen wie ein Windowsprogramm, daher ist die
Speicherung von Daten deutlich aufwändiger.
Wenn du eine Website fertig hast, die anzeigt was du dir vorstellst, ist
es relativ unwichtig ob die jetzt auf dem µController oder woanders
gespeichert ist, du musst nur Zugriff auf die Daten des Controllers
haben. Dazu reicht aber die Übertragung per Netzwerk oder auch einfach
per serieller Übertragung.
Das ist nur eine Kurzfassung.
Georg
Zum NUCLEO-F207ZG Beispiel aus der readme.txt:
This application guides STM32Cube HAL API users to run a http server
application
based on Netconn API of LwIP TCP/IP stack
The communication is done with a web browser application in a remote PC.
this HTTP server contains two html pages:
+ the first page (home page) is static, it gives information about
STM32F2
and LwIP stack.
+ the second page is dynamically refreshed (every 1 s), it shows the
RTOS
statistics in runtime
If a DHCP server is available, a dynamic IP address can be allocated by
enabling
the DHCP process (#define USE_DHCP in main.h)
Meister Propper schrieb:> So ein Quark.> Heutzutage nimmt man dafür Javascript und macht die GUI und Berechnung> der Graphik clientseitig, die Kommunikation zwischen Browser und µC> läuft per Websockets. Ein 32Bit Cortex ist damit hoffnungslos> unterfordert...
Speichert man dann die Messwerte in eine CSV oder andere Art von Datei
und hält beispielsweise eine index.html bereit, sodass der Browser dann
eine Seite mit den immer aktuellen Messwerten bekommen?
Würde sowas auch gerne mal auf einem STM32F4 durchführen. Ich bin mir
nur noch nicht sicher, mit welchem Modul ich die WiFi Anbindung
realisieren soll. Reicht hier einer dieser einfachen ESP8266 Module mit
der richtigen Firmware?
Danke schonmal.
Dennis X. schrieb:> Meister Propper schrieb:>> So ein Quark.>> Heutzutage nimmt man dafür Javascript und macht die GUI und Berechnung>> der Graphik clientseitig, die Kommunikation zwischen Browser und µC>> läuft per Websockets. Ein 32Bit Cortex ist damit hoffnungslos>> unterfordert...>> Speichert man dann die Messwerte in eine CSV oder andere Art von Datei> und hält beispielsweise eine index.html bereit, sodass der Browser dann> eine Seite mit den immer aktuellen Messwerten bekommen?> Würde sowas auch gerne mal auf einem STM32F4 durchführen. Ich bin mir> nur noch nicht sicher, mit welchem Modul ich die WiFi Anbindung> realisieren soll. Reicht hier einer dieser einfachen ESP8266 Module mit> der richtigen Firmware?> Danke schonmal.
Die Daten hälst Du im Ram vor und lieferst immer die aktuellen Daten
aus, die dann entsprechend dem Protokoll "on the fly" zusammengebaut
werden. Die Grundstruktur der Seite samt Javascript steht schon im
Flash.
Auf der IT-Seite für Doofe gab es mal einen kleinen Artikel. Lies den
mal zuerst:
http://www.golem.de/news/bluetooth-low-energy-und-websockets-raspberry-pi-als-schaltzentrale-fuers-haus-1407-107899.html
Das man mit HTML und JavaScript was bauen muss ist doch klar.
Das war indirekt meine frage nach einem Beispiel.
Sicher baue ich zb mit qt schnell ein Programm, aber ich habe länger
nachgedacht und denke das ein unabhängiges System besser für mein
Projekt ist.
Der Einwand mit dem speichern könnte allerdings meine Pläne zunichte
machen wenn das nicht geht.
Weil ich schon gerne die Daten Speichern würde und wen es geht diese
sogar wieder mir anzeigen lassen würde. Aber letzteres kann auch ein
normales Programm machen.
Vg, Uli