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
Weder UART noch SPI währen ein Problem, alles möglich. Gibt es denn eine andere Programmiersprache, die dir näher liegt als C?
> 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
>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...
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.