Forum: Mikrocontroller und Digitale Elektronik suche Webfrontend als Bedienung für STM32 Controller


von Richter (Gast)


Lesenswert?

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

von Jim M. (turboj)


Lesenswert?

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.

von Meister Propper (Gast)


Lesenswert?

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...

von Dieter Graef (Gast)


Lesenswert?

Meister Propper schrieb:
> Ein 32Bit Cortex ist damit hoffnungslos
> unterfordert...

Nicht wenn sein " STM32 Controllerboard " auf dem STM32L011 basiert.

von Uli (Gast)


Lesenswert?

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?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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.

von Uli (Gast)


Lesenswert?

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

von Max M. (maxmicr)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

"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.

von hp-freund (Gast)


Lesenswert?

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.

von Georg (Gast)


Lesenswert?

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

von hp-freund (Gast)


Lesenswert?

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)

von Dennis X. (Gast)


Lesenswert?

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.

von Oberlehrer (Gast)


Lesenswert?

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

von Uli (Gast)


Lesenswert?

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

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.