Forum: Mikrocontroller und Digitale Elektronik rtos gui webinterface


von fragso (Gast)


Lesenswert?

Hallo,

es gibt noch nicht viele Informationen:
Es handelt sich um ein Echtzeitsystem (rtos) auf einem Mikrocontroller. 
Am besten wäre es wenn man ein GUI aufrufen kann wenn man sich mit dem 
µC verbindet als Client. Wenn das rtos genug Ressourcen, wie 
Arbeitsspeicher hat könnte das doch gehen oder ?
Wenn nicht, gibt es die Möglichkeit, dass das rtos nur rohdaten an einen 
pc oder server sendet und der für das webinterface sorgt ?

Danke sehr !

von Cyblord -. (cyblord)


Lesenswert?

fragso schrieb:
> Hallo,
>
> es gibt noch nicht viele Informationen:
> Es handelt sich um ein Echtzeitsystem (rtos) auf einem Mikrocontroller.
> Am besten wäre es wenn man ein GUI aufrufen kann wenn man sich mit dem
> µC verbindet als Client. Wenn das rtos genug Ressourcen, wie
> Arbeitsspeicher hat könnte das doch gehen oder ?
> Wenn nicht, gibt es die Möglichkeit, dass das rtos nur rohdaten an einen
> pc oder server sendet und der für das webinterface sorgt ?
>
> Danke sehr !

Nennt sich Webserver.

Braucht in jedem Fall genug Platz (Flash) für die Seiten selbst 
(HTML+CSS+JavaScript) und genug Ram um die bei einem Request 
auszuliefern.

Man kann viel an Logik an den Client (PC) via JavaScript auslagern. 
Datenaustausch dann z.B. via JSON. Wenn die Ressourcen reichen. Sonst 
halt Binär.

von A. S. (Gast)


Lesenswert?

Ja.
Ja.

Beides geht.

von fragso (Gast)


Lesenswert?

Kann man denn den Speicher so erweitern, dass man z.B. ein Webinterface 
von 100 Mb ( evtl. übertrieben.. je nachdem) speichern kann ?
Oder kann der µC das nicht so schnell verarbeiten ?
Irgendwie funktioniert das ja bei einem PC auch xD.

Danke

von A. S. (Gast)


Lesenswert?

Ja.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

fragso schrieb:
> Kann man denn den Speicher so erweitern, dass man z.B. ein Webinterface
> von 100 Mb ( evtl. übertrieben.. je nachdem) speichern kann ?
> Oder kann der µC das nicht so schnell verarbeiten ?

Kommt auf den ungenannten µC an. Es gibt µCs, die schaffen es gerade mal 
so, irgendein Webinterface zusammenzustoppeln, und es gibt µCs, die 
langweilen sich dabei und gucken im Hintergrund noch Netflix ...

von Pandur S. (jetztnicht)


Lesenswert?

Ich hab einen Webserver fuer einen Mega32 geschrieben. Ohne RTOS. Die 
Seiten waren auf einem externen Flasch. Bedeutet man kommt mit sehr 
wenig Resourcen durch.

Was soll der webserver denn koennen ? Du lieferst ja die Seiten. 
Allenfalls kann man dem client Rechenleistung anhaengen, und nicht auf 
dem Server rechnen lassen.

von BeastyK (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> und es gibt µCs, die langweilen sich dabei und gucken im Hintergrund
> noch Netflix ...

Ja, die haben auch ne KI und wissen was "Industrie 4.0" ist.
Kommt halt drauf an was man wirklich vor hat. Rufus, das liest sich gut!

Gruß
Beast

von fragso (Gast)


Lesenswert?

Hi danke für die Antworten !
Ist schonmal hilfreich!

Dann wäre die Frage:

Externer Flash Speicher: Flash Speicher könnte ja eine SD Karte sein.
Also wo liegt denn das Problem, wenn man mit einem µC eine SD Karte 
verbindet die einen Webserver installiert hat ? Dauert der Zugriff zu 
lange ?


Hier hat jmd. auch so ein ähnliches Thema
Beitrag "Externer Flash-Baustein - Grundlegende Fragen"

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Computer, welche Web-GUI's einfach & komfortabel ausliefern können, gibt 
es viele - vom R-PI bis zum PC. Die Frage ist, warum du das auf einem µC 
brauchst, bzw. welcher Teil deiner Anwendung nach einem µC verlangt.

Wenn du nur ein paar Pins langsam schalten möchtest, wäre vielleicht ein 
R-PI o.ä. geeignet - dort einen "richtigen" Webserver wie Apache zu 
installieren ist sehr einfach, und Pins zu schalten ebenso.

Wenn du parallel zur Web-GUI eine richtige (hart-)echtzeitfähige 
Steuerung brauchst, helfen vielleicht die Echtzeit-Erweiterungen für 
Linux, oder ein Prozessor mit Echtzeit-Koprozessor wie Beaglebone, oder 
einfach eine Kombination aus Linux-fähigem Prozessor/Computer mit 
Mikrocontroller, verbunden über UART, USB, I²C, ...

Sag mal mehr zu deinen Anforderungen, damit man das besser einschätzen 
kann.

fragso schrieb:
> Also wo liegt denn das Problem, wenn man mit einem µC eine SD Karte
> verbindet die einen Webserver installiert hat ?

Es ist relativ kompliziert.

fragso schrieb:
> Dauert der Zugriff zu
> lange ?
Nicht unbedingt, je nach Art der Ansteuerung. R-PI & Konsorten nutzen ja 
auch SD-Karten. Für schnelle Zugriffe/Abläufe braucht es Caches und 
Nebenläufigkeit, wofür es viel Speicher braucht, was am Besten auf 
großen Prozessoren geht, wo wir wieder bei der Größenordnung des R-PI 
sind. Vor allem wenn man mehrere Anfragen gleichzeitig verarbeiten 
können möchte.

von Johnny B. (johnnyb)


Lesenswert?

fragso schrieb:
> Am besten wäre es wenn man ein GUI aufrufen kann wenn man sich mit dem
> µC verbindet als Client.

Wenn der uC zu wenig Resourcen hat, kann man auch einfach ein LAN-Modul 
dranpappen per UART oder I2C und dann dessen Webserver verwenden.
Beispielsweise mit den Modulen von AK-Nord geht das rel. einfach und es 
gibt ein fertiges Beispiel um einen per I2C angeschlossenen 
Temperatursensor auszulesen und den Messwert auf einer Webseite 
anzuzeigen:
https://www.ak-nord.de/XT-Nano-SXL-56.html

von Proletikus (Gast)


Lesenswert?

Allenfalls genuegt es ja auch den Webserver per Serial anzubinden ? Ein 
Ethernet ist nicht zwingend. Dann geht's auch mit einem Mega8, oder 
Tiny.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Johnny B. schrieb:
> Wenn der uC zu wenig Resourcen hat, kann man auch einfach ein LAN-Modul
> dranpappen per UART oder I2C und dann dessen Webserver verwenden.

Wobei dann die Frage ist, warum man einen zu schwachen Mikrocontroller 
nimmt, nur um dann einen stärkeren (welcher sich im LAN-Modul befindet) 
extern anzubinden, den man dann auch nicht mehr frei programmieren kann.

Es gibt genug Mikrocontroller, welche genug Leistung für einen Webserver 
haben und so ziemlich alles können, was ein ATmega kann. Das trifft z.B. 
auf viele STM32 zu. Das Nucleo-767ZI-Board beispielsweise enthält einen 
solchen Controller und die zugehörige Ethernet-Hardware, und 2MB Flash 
direkt im Controller:
https://www.st.com/en/evaluation-tools/nucleo-f767zi.html

Das STM32F746 Discovery enthält ebenfalls Ethernet-Hardware, 
microSD-Slot, 1+16 MByte Flash, 8 MByte RAM:
https://www.st.com/en/evaluation-tools/32f746gdiscovery.html

Das wäre genug Leistung für eine ordentliche Web-Oberfläche. Auf der 
SD-Karte kann man auch noch mehr Daten ablegen. Mit z.B. FreeRTOS, lwIP 
und FAT-Library kann man sich darauf dann einen Webserver bauen.

Auf einem R-PI oder Beaglebone o.ä. einen Webserver zu installieren 
dürfte aber deutlich einfacher sein.

Proletikus schrieb:
> Allenfalls genuegt es ja auch den Webserver per Serial anzubinden ? Ein
> Ethernet ist nicht zwingend. Dann geht's auch mit einem Mega8, oder
> Tiny.
Und wie ruft man das dann vom PC auf? Wo kommt TCP ins Spiel?

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.