Forum: Mikrocontroller und Digitale Elektronik kleiner Webserver gesucht Rs232 -> Ethernet


von Tubie (Gast)


Lesenswert?

Hallo,

bei den ganzen Webserver Projekten hier im Forum weiß man garnicht wo 
man suchen soll. Desshalb eine ganz direkte Frage:

Ist es bei diesen Webservern generell möglich per UART, SPI, I2C eine 
Datei reinzuladen (ins RAM) und diese dann, wenn der Server per Browser 
angesprochen wird, diese Datei anzuzeigen. Das Update erfolgt alle 10 
Sec.

Hintergrund:
Ich habe hier meine Heizungssteuerung, diese läuft über einen RS-485 
Bus. Der Master besitzt einen Mega128 hat also genug RAM + Flash. Jetzt 
möchte ich gerne verschiedene Temperaturen, Schaltzustände, Timer, ... 
in eine zuvor mit Word generierte .html Datei schreiben und dann in den 
Webserver laden. Evtl. wenn möglich sogar eine ganze Homepage mit 
verschiedenen Seiten und Grafiken. Da wäre es jetzt cool, wenn ich vom 
Mega128 diese Dateien erzeugen kann und der Webserver stellt sie dann 
online. Ich möchte keine Einstellungen über das Webinterface vornehmen - 
soll also eine reine Info Anzeige für unterwegs werden. Einstellungen 
werden direkt auf dem RS485-Bus oder am Gerät direkt vorgenommen.

Da das Ganze Projekt jetzt langsam dem Ende zugeht, möchte ich mich 
jetzt schonmal über die machbarkeit dieser Erweiterung informieren.

Da ich leider kein C kann, ist es für mich sehr sehr schwierig diese 
Webserver zu verstehen und dann ggf. eine Codeänderung vorzunehmen.


Würde mich riesig über Antworten freuen!

Gruß,
Tubie

von STK500-Besitzer (Gast)


Lesenswert?

Guck dir mal den Siteplayer-Webserver an.

von Marco B. (earlyperl)


Lesenswert?

Weder UART noch SPI währen ein Problem,
alles möglich.

Gibt es denn eine andere Programmiersprache,
die dir näher liegt als C?

von Tubie (Gast)


Lesenswert?

> Gibt es denn eine andere Programmiersprache,
die dir näher liegt als C?

Ich programmiere eigentlich alles in AVR-ASM. Kann aber auch Turbo 
Pascal und ganz ganz früher mal Basic (Z80 zeitalter).

Diese Web Server auf AVR Basis sind doch schon recht komplex. Da wird es 
schwierig sein, die Stelle im Programm zu finden, welche die Dateien von 
der Flash Karte liest und dann an den ENC... Chip sendet. Dann müßte ja 
noch ein Ram Drive hinzu -> Feste Daten, Grafiken + Bilder werden von 
der Flash Karte geladen und der Rest aus dem Ram. Alternativ eine kleine 
Statik RAM Bank 128k - 256k und die wird beim Start einmal von meinem 
Master Gerät beschrieben (Hat einen USB-Stick als Datenlogger und Setup 
Daten Speicher). Wenn was aktualisiert wird, werden die Daten erneut ins 
RAM geschrieben. Nur benötige ich halt den Part, welcher die vorhandenen 
Daten auf die Ethernet Schnittstelle schreiben kann bzw. beim Aufruf der 
IP-Adresse über den Browser die Web Site anzeigt.


Habe auch schon an eine auf Linux umgebaute Fritzbox gedacht, die ist ja 
eh immer an und am USB Port könnte man dann einen USB->RS232 Wandler 
stecken. Pascal Compiler soll es ja auch für Linux geben. Dazu muß ich 
mich aber auch erst einlesen...
Da habe ich aber ehrlich gesagt wieder angst, wenn das Teil nach 3 
Jahren ersetzt wird, läuft garnix mehr. Und ich möchte nicht einen 2. 
"Großverbraucher" am Netz lassen um ab und zu mal nach dem rechten zu 
schauen.

Gruß,
Tubie

von holger (Gast)


Lesenswert?

>Ich programmiere eigentlich alles in AVR-ASM. Kann aber auch Turbo
>Pascal und ganz ganz früher mal Basic (Z80 zeitalter).

>Diese Web Server auf AVR Basis sind doch schon recht komplex. Da wird es
>schwierig sein, die Stelle im Programm zu finden, welche die Dateien von
>der Flash Karte liest und dann an den ENC... Chip sendet.

Sowas macht man ja auch nicht in ASM.
Lern C!

von Tubie (Gast)


Lesenswert?

> Lern C!

Dann ist aber wieder ein Jahr rum und das Ding läuft immer noch nicht. 
Ein Webserver ist ja nicht unbedingt das "Hello World" Programm zum 
einsteigen. Wenn die ganze Steuerung am laufen ist, werde ich mich auf 
jeden Fall mal wieder etwas kleineren Sachen zuwenden und diese 
versuchen in C zu programmieren.

Es ist halt gerade am Anfang sehr schwer fremden Code zu lesen.

Gruß,
Tubie

von Ekschperde (Gast)


Lesenswert?

Guck dir mal den XPort von Lantronix an.
Der wurde u.a. mal in einem ct-Projekt verwendet.
Bausätze gibts bei Segor: Com2Lan-Adapter.
Eine Projektseite bei der ct sollte es auch noch geben.

Mit dem SDK kann man in C auch dynamisch Webseiten generieren, so ala 
CGI-Script. Ohne SDK geht das leider nur mit Java-Geraffel.

Eine serielle Schnittstelle (3,3V, bis 1 MBaud) steht beim XPort-AR 
neben 3 GPIO-Anschlüssen auch zur Verfügung.

von STK500-Besitzer (Gast)


Lesenswert?

>Ein Webserver ist ja nicht unbedingt das "Hello World" Programm zum
>einsteigen.

Nö, deswegen gibt es ja auch "Add-on"-Webserver, die sich um den ganzen 
Web-Kram kümmern und man ihnen nur noch die anzuzeigenden Daten 
rüberschiebt.
Als TCP/IP-Interface kann man entweder den XPORT von Lantronix benutzen, 
wo sich dann der "Server-Controller" (in deinem Fall der Mega128) um den 
kompletten Inhalt der Website und die HTTP-Kommunikation kümmern darf, 
oder wie oben schon geschrieben einen Siteplayer von netmedia.com, der 
sich auch um das HTTP-Geraffel kümmert. Dessen Websites kann man so 
gestalten, dass man über die serielle Schnittstelle Parameter/Werte 
schicken kann, so dass eine "dynamische" HTML-Seite entsteht.
Ich habe das Ding damals in meiner Diplomarbeit verwendet, die widerum 
nur 3 Monate gedauert hat.

von Tubie (Gast)


Lesenswert?

Den XPort habe ich schon sehr lange im Auge ;) der hat ja die wunderbare 
Eigenschaft auf dem Ziel PC einen Virtuellen COM-Port zur verfügung zu 
stellen. Dann könnte ich die Anzeige über ein Terminal Programm machen. 
Ist halt dann wirklich nur was für daheim :(

Warum Dynamische Web Seiten? Kann man nicht alle x Sekunden einfach eine 
neue Datei hochladen? Werden die im Ram oder Flash gespeichert?

von holger (Gast)


Lesenswert?

>> Lern C!

>>Dann ist aber wieder ein Jahr rum und das Ding läuft immer noch nicht.
>>Ein Webserver ist ja nicht unbedingt das "Hello World" Programm zum
>>einsteigen. Wenn die ganze Steuerung am laufen ist, werde ich mich auf
>>jeden Fall mal wieder etwas kleineren Sachen zuwenden und diese
>>versuchen in C zu programmieren.

>>Es ist halt gerade am Anfang sehr schwer fremden Code zu lesen.

Webserver ca. 8kB Binärcode eher mehr, je nach Anforderungen.
SD Karte nochmal 8kB Binärcode eher mehr mit FAT.

Wie lange dauert es bei dir also mindestens 16000
Instruktions in Assembler zu programmieren?
Die Fehlersuche mal ganz weggelassen.
10 Jahre?

von STK500-Besitzer (Gast)


Lesenswert?

>Warum Dynamische Web Seiten? Kann man nicht alle x Sekunden einfach eine
>neue Datei hochladen?

Der Siteplayer ist ein Philips-8051er mit angedocktem RTL-Netzwerkchip 
auf der zweiten Platinenseite.
Die Website wird im Flash des 8051 abgelegt. Das passiert über eine 
TFTP-Verbindung, und da das Flash nicht unendlich oft beschreibbar ist, 
sollte man das auch nicht machen.
Über die serielle Schnittstelle kann man Speicherzellen im Siteplayer 
beschreiben und dort Werte hinterlegen, die der Webserver dann auf der 
Webpage anzeigt (etwas rechnen kann er auch...).
Wenn man sich nicht um den ganzen Netzwerk-Kram kümmern will, ist das 
eine Sache (finde ich zumindest)...

von Tubie (Gast)


Lesenswert?

@STK500-Besitzer
Habe die Dokumentation zum Siteplayer jetzt gefunden. Sieht ja auf den 
ersten Blick wirklich nicht verkehrt aus. Werde mir das Dingens mal 
genauer anschauen. Wenn es erstmal hier auf dem Schreibtisch liegt, und 
ich ein bischen damit gespielt habe wird es denke ich keinen Weg mehr 
zurück geben...

Gruß,
Tubie

von Ekschperde (Gast)


Lesenswert?

Warum dynamisch erzeugte Webseiten?

Mit dem SDK ist der XPort ähnlich komfortabel programmierbar
wie ein PC. Im XPort-AR werkelt z.B. eine 88 MHz 80186-CPU.

Der XPort braucht über die serielle Schnittstelle eigentlich
nur Rohwerte, die man dann in seine Webseite einbauen kann.

Statische Inhalte lassen sich natürlich im Flash ablegen.

Aber man kann auch mit einer MCU (MSP430, AVR, ...) die Webseite 
erzeugen und im RAM ablegen.
Soweit ich mich richtig erinnere, wäre die Ausgabe dann aber auch nur 
mit Hilfe eines mit dem SDK erstellten Programms möglich.

von Tubie (Gast)


Lesenswert?

@ Holger

Meine Steuerung hat jetzt 14k an Code + 4k an Daten im Master Gerät,
sie hat 16k im Slave (Mischer Steuerung) + 4k an Daten. Alles ist 
komplett in ASM geschrieben sicherlich kann man die eine oder andere 
Routine noch verbessern aber es läuft alles zu meiner Zufriedenheit. 
Entwicklungszeit ca. 1 Jahr meistens nach Feierabend + Wochenende und 
wenn lust + zeit. Auch wenn ich mich jetzt total geoutet habe:

Für dieses Projekt lerne ich kein C mehr !!

Allerdings will ich meine nächsten Projekte mal klein in C angehen.


Gruß,
Tubie

von Thilo M. (Gast)


Lesenswert?

@ Ekschperde:
ich habe den XPORT grade unter der Fuchtel.
Was mich stört ist die Übergabe der Werte von RS232 auf die HTML-Page in 
Java. Viele Zugänge (z.B. bei uns im Geschäft) lassen Java nicht zu, 
also ist dieser Weg sinnlos.
Hast du irgendwelche Beispiele, wie man die Werte in reinem HTML 
ausgeben kann?

von Ekschperde (Gast)


Lesenswert?

Beispiele wie man das mit dem XPort macht, gibt es als Demos reichlich 
im SDK.

Stichwort: Callback-Funktionen. Der XPort-Firmware, wird eine Liste von 
(Teil-)URLs als Strings übergeben.
Bei einer Übereinstimmung von angefragter URL und hinterlegter URL wird 
die entsprechende Funktion von der XPort-Firmware gestartet.
In der Funktion kann dann die Webseite dynamisch erzeugt werden.

Meinen Code kann ich hier leider nicht posten, da im gewerblichen 
Einsatz.

von Tubie (Gast)


Lesenswert?

> Mit dem SDK ist der XPort ähnlich komfortabel programmierbar
> wie ein PC

Ist das hier mit SDK gemeint?
http://de.wikipedia.org/wiki/Software_Development_Kit

gibt es also beim X-Port eine Entwicklungsumgebung ähnlich dem 
AVR-Studio dazu? Wenn das so ist dann wird wohl die Programmiersprche 
wieder C sein?

Dann ist es wohl wirklich am besten erstmal alles über den Virtuellen 
COM Port zu machen und dann nach und nach einzusteigen...

Über ein Terminal Programm lassen sich ja schließlich auch schöne Bunte 
Werte anzeigen und ggf. einstellen. Log Daten kann man problemlos vom 
USB-Stick laden und in Excel weiterverarbeiten.

Gruß,
Tubie

von Ekschperde (Gast)


Lesenswert?

Das XPort-SDK wird von Lantronix CPK genannt.
Entwickelt wird in Borland-C 5.XX für 16 bit-X86-CPUs.

Für die Kommunikation mit der Außenwelt:
- IP (TCP/UDP), httpd, telnet, reverse telnet,
  tcp/udp-Talker, tcp/udp-Listener
- Serial, GPIOs
- Betriebssystemfunktionen:
  Taskverwaltung für ein kooperatives Multitasking, Timer, ...
steht eine Library zur Verfügung die gut dokumentiert ist, einen 
schnellen Einstieg ermöglicht und sich gut handhaben lässt.

Für Firmen war (ist?) das CPK kostenlos unter einem NDA erhältlich.
Ob es auch an Privatpersonen abgegeben wird entzieht sich meiner 
Kenntnis.

von Tubie (Gast)


Lesenswert?

So...
Vielen Dank erstmal das war mehr info als ich erwartet habe. Werde mir 
jetzt mal in aller ruhe den X-Port und den Site-Player anschauen und mir 
dann einen der beiden zulegen.

Gibt es evtl. auch Bezugsquellen in .de ?

Gruß,
Tubie

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

> Gibt es evtl. auch Bezugsquellen in .de ?
http://www.sphinxcomputer.de

Hier gibt es auch eine Übersicht über "Winzig kleine Webserver":
Miniwebserver

Die WIZnet Chips und Module haben ebenfalls den Ethernetstack im Chip 
und sind daher auch relativ einfach zu handhaben.

von Ekschperde (Gast)


Lesenswert?

@Tubie:
Entwickeln mit dem XPort macht nur Spaß, wenn man das SDK/CPK
und den Borland-Compiler zur Verfügung hat.
Vor irgendwelchen Bestellungen sollte man das geklärt haben.

Bei der Typbezeichnung habe ich mich übrigens vertan :-(
Ich meine den XPort ohne -AR.
In Deutschland sollte man den u.a. bei Transtec kaufen können.
Segor hat wie oben schon geschrieben, auch einen Bausatz im Angebot.
Der XPort war/ist dort aber verhältnismässig teuer.

von Mensch_Z (Gast)


Lesenswert?

Siteplayer !
in die 48K kann man 4-5 (auch mehr) Http-Seiten reinpacken.
Habe viele Produkte in der Industrie am Laufen...24h/24h !
Bist du in der Lage einen x-beliebigen Mikrokontroller in Assembler 
(oder anderer x-beliebiger Sprache)zu programmieren dann kann er ueber 
die Uart als CoProzessor fuer den WebServer SP1 (siteplayer von 
Netmedia)wirken.
Ist sehr stark das Teil und legt die U.Radig Sache weit in den Schatten.

Entwicklungsumgebung ,Sitelinker,serial Tester alles free zum download.
Super dokumentiert. Verstehe nicht warum das Teil noch nicht weiter 
verbreitet ist....lohnt sich mal reinzuschauen !

von Ekschperde (Gast)


Lesenswert?

Meine XPorts laufen auch 24 x 7 x X :-)

XPort: 512 KB Flash und 256 KB SRAM und das im handlichen RJ45-Package.
Die Teile sind schon nicht üpel.

Vom Flash und vom SRAM wird natürliches einiges bereits durch OS und 
Library belegt, aber das macht ja gerade den Komfort aus.

von Tubie (Gast)


Lesenswert?

Habe mir mal die Demo Software für den Site Player runtergeladen. Ist ja 
echt ein Super Teil. Ich denke damit kann ich mich anfreunden.

Mit dem Site Linker stimmt noch was nicht aber ich denke, das ist nur 
eine Einstellungssache. Beim öffnen Einer Datei "RCVR.SPD" mimmt er es 
an wenn ich dann Make Download File drücke kommt die Meldung:

$SitePath Error:
Path C:\Programm Files\SitePlayer\SP_Root Nt Found

wenn ich den Site Player in "c:\Programm Files" anstatt in 
"c:\Programme" installiere bekomme ich die Meldung:

$SitePath Error:
Path C:\Programme\SitePlayer\SP_Root Nt Found


irgend etwas ist hier verdreht...


Gruß,
Tubie

von Tubie (Gast)


Lesenswert?

es soll heißen

$SitePath Error:
Path C:\Programm Files\SitePlayer\SP_Root Not Found

und


$SitePath Error:
Path C:\Programme\SitePlayer\SP_Root Not Found

von Tubie (Gast)


Lesenswert?

so... Habe es hinbekommen.

Das Programm muß unter c:\Program Files" installiert werden. Die Datei 
muß über den File Open Dialog neu geöffnet werden dann klappt's

Sehe ich das richtig, das der SitePlayer über die RS-232 gesteuert 
werden kann und auf gesendete Commandos an der UART reagiert bzw. Daten 
von einstellungen auf die UART sendet. Der SitePlayer Telnet ist 
lediglich eine Virtuelle COM Schnittstelle???

Wenn das so ist, ist der normale SitePlayer das richtige Gerät für mich. 
Sieht ja recht interessant aus, wenn man im normalen .html Code einfach 
^Label schreibt und dann der Wert von ^Label der zuvor über UART 
empfangen wurde dann da Steht ;)

Bevor ich das Dingens jetzt bestelle noch eine Frage:

Ich kann ja in meiner FritzBox 7050 eine Eingabe für dyndns vornehmen, 
somit wird ja dann duch Eingabe einer festen IP-Adresse/Name von irgend 
einem beliebigen Rechner im WWW dann direkt auf den SitePlayer 
geschaltet. Ist das richtig?

Ich glaube, das wird richtig gut!


Gruß,
Tubie

von STK500-Besitzer (Gast)


Lesenswert?

>Gibt es evtl. auch Bezugsquellen in .de ?

http://www.Lascar.de

oder

http://www.Lascar.com

>Sieht ja recht interessant aus, wenn man im normalen .html Code einfach
>^Label schreibt und dann der Wert von ^Label der zuvor über UART
>empfangen wurde dann da Steht ;)
^Label wird vorher in der SPD-Datei noch einer Adresse zugewiesen, die 
man dann über die serielle Schnittstelle beschreiben und lesen kann.

>Ich kann ja in meiner FritzBox 7050 eine Eingabe für dyndns vornehmen,
>somit wird ja dann duch Eingabe einer festen IP-Adresse/Name von irgend
>einem beliebigen Rechner im WWW dann direkt auf den SitePlayer
>geschaltet. Ist das richtig?

Das nennt sich Port-Forwarding und müsste funktionieren, sollte aber 
eher ein Problem des Routers und nicht des Servers sein, wenn man den 
Server im Intranet bedienen kann.
Bei meinem "Kunden" funktioniert es sogar über Putty mit SSH-Tunnel...

>Der SitePlayer Telnet ist lediglich eine Virtuelle COM Schnittstelle???
Könnte man so sagen.

>Ist sehr stark das Teil und legt die U.Radig Sache weit in den Schatten.

Das ist ja auch was anderes...

von STK500-Besitzer (Gast)


Lesenswert?

Noch was vergessen:
Ich habe mir letztens mal wieder ein Angebot schicken lassen.
Der Siteplayer Webserver kostet mit Ethernet-Dose (integrierte 
Übertrager) ca. 60 Euronen inkl Porto per Vorkasse, wenn man Privatkunde 
ist.
Der Server alleine 35 Euro + 19% Märchensteuer (Versandkosten 8Euro 
netto).

von Tubie (Gast)


Lesenswert?

35€ sind doch für sowas ganz ok. ich würde mir nur die kleine Platine 
bestellen und Ethernet Dose + Übertrager von einer alten Netzwerkkarte 
verwenden. Sind die Ethernet Übertrager alle gleich? Oder gibt es da 
unterschiede sodas ich auf die fertige Lösung zurückgreifen sollte.

Aber selbst die 60€ sind eigentlich nicht zu teuer wenn man überlegt wie 
lange es dauert, bis nan selbst soetwas gestrickt hat.

Gibt's die Dinger wirklich nur in USA oder hat die Firma Lascar 
Electronics in Eutingen die den Siteplayer Telnet vertreiben auch die 
SP1 Module. Werde am besten am Montag mal anrufen...


Gruß,
Tubie

von Tubie (Gast)


Lesenswert?

Boaaah!

>Gibt's die Dinger wirklich nur in USA oder hat die Firma Lascar
>Electronics in Eutingen die den Siteplayer Telnet vertreiben auch die
>SP1 Module. Werde am besten am Montag mal anrufen...

habe den ersten Teil Deines Postinhgs gelesen aber nicht gespeichert 
sozusagen ins WOM geschrieben. Werde trotzdem mal anrufen...

Gruß,
Tubie

von STK500-Besitzer (Gast)


Lesenswert?

>Werde trotzdem mal anrufen...
Dann frage bitte noch nach dem Preis und der Lieferzeit für das STK.
Sonst bastel ich mir doch noch eine Platine...

von Tubie (Gast)


Lesenswert?

Klar, mach ich...

von Tubie (Gast)


Lesenswert?

so... habe mir heute den SitePlayer bestellt. Kostet 35€, die Ethernet 
Buchse incl. Übertrager kostet 7€.

Das STK ist in .de nicht lieferbar. Die Nachfrage ist zu gering.

Gruß,
Tubie

von Tubie (Gast)


Lesenswert?

ES GEHT!

Habe den SitePlayer die Woche bekommen und gleich mal eine Platine 
geätzt. Die RJ45 Stecker passen ja nicht auf normale Lochraster Platten 
;( Dazu gleich ein kleines Netzteil (7805) + MAX232. Saft drauf und er 
hat auf anhieb funktioniert. Ist echt eine Super Sache das Teil!

Jetzt habe ich mir ein paar Gedanken über den Aufbau der Website 
gemacht. Grafiken (Bilder) sind ja mit 48k schlecht möglich. Ich würde 
diese Dateien auf meiner Homepage (beim DSL-Provider) speichern und dann 
über einen Link auf der Seite des SitePlayers anzeigen lassen. Ist das 
Rechtlich überhaupt zulässig? Ist ja nur ein Link...

Wie ist das mit dem Impressum? Habe ja schon oft gehört, das Seiten, 
welche keines haben schon oft eine kostenintensive Abmahnung kassiert 
haben. Ich möchte aber nicht unbedingt, das mein kompletter Name + 
Anschrift im Web veröffentlicht wird.

Wenn die Seite keiner bzw. eine kleine gruppe von Leuten kennt und über 
ein vorher vereinbartes Passwort geschützt ist, sollte es doch möglich 
sein, oder? Geht sowas mit dem SitePlayer? Es geht hier nicht um Geheime 
Infos (sehen darf es eigentlich jeder), sondern nur darum nicht einem 
Abmahnungsjäger in die Lappen zu gehen.

So, nun eine Letzte Frage:
Warum speichert OpenOffice bei .html Files für jede geschriebene Zeile 
die kompletten Informationen für Schriftart & Typ ab? Das werden ja 
riesen Dateien! Wenn ich das alles rausnehme ist die .html Datei 
'leserlicher' und wird auch im Explorer richtig angezeigt. Wenn ich dann 
zur Grafik ansicht wechsele, schmeißt er mir im Text-File dann alles 
wieder durcheinander.

So... Fragen über fragen aber ich möchte auf nummer sicher gehen

Gruß,
Tubie

von Tubie (Gast)


Lesenswert?

nach oben hol...

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.