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
> 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
>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!
> 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
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.
>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.
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?
>> 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?
>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)...
@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
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.
@ 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
@ 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?
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.
> 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
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.
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
> 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.
@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.
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 !
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.
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
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
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
>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...
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).
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
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
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
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