Anfänger Webserver mit Wiznet 5200

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Anfänger Webserver mit Wiznet 5200

      Hallo Zusammen,

      nach Monaten des "Schlafes" habe ich mein modifiziertes Projekt "Probier-Webserver" wieder ausgegraben. Das ist eine abgewandelte Variante des Beispielcodes von MCS, angereichert mit Ideen aus anderen Sprachen und von anderen Autoren zusammengetragen.

      Dazu verwende ich einen Mega 32 + dem Wiznet820 Modul (SPI, winzig) und das geht insoweit, als dass die Anfrage erkannt wird (GET + "/") und im Anschluss die Antwort ausgeliefert werden könnte... ja, das wird sie aber nicht, stattdessen schlägt der Browser (Firefox/IE) vor die Datei zu speichern.

      Ideen? Gerne werfe ich auch den Code in den Ring.

      Der Seiteninhalt bringt das:



      <head>
      <title>Atmega32 und Wiz5200</title>
      </head>
      <body>
      <center>
      <H1>Remote reboot</H1><p>MRELAIS1</p>
      <p>Your IP-number is: 192.168.1.21</p>
      <p>This server is online: DAY:HOUR:MINUTE:SECOND</p>
      <p>zottel-roki.de</p>
      </center>
      </body>
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • DANKE @Mechanic - der Header ist davor, aber das Detail das zum scheitern führt sieht so aus:

      Falsch: <DOCTYPE! html>
      Richtig <!DOCTYPE html>

      Und jetzt geht es auch ganz gut. Die festen Inhalte habe ich in "DATA"-Blöcke gepackt, dass geht ganz gut.
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Mache ich @Michael, davor würde ich erstmal den "Ballast" entfernen - ansonsten wirds es undurchsichtig. Aus meiner Sicht ist es für Einsteiger enorm wichtig, den Mechanismus darunter prinzipiell zu verstehen- ansonsten wird es Plug & Stay
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • monkye schrieb:

      Aus meiner Sicht ist es für Einsteiger enorm wichtig, den Mechanismus darunter prinzipiell zu verstehen- ansonsten wird es Plug & Stay
      Ja, klar, aber bei sowas komplexen, wie den Webserver tun sich Anfänger schwer, die Hintergründe zu verstehen. Da ist es manchmal leichter, wenn man ein kleines funktionierendes Codestück zum spielen hat.
      Ein kurzes Beispiel mit einem Button auf der Webseite und einer LED reicht ja.

      Gruß, Michael
    • So, die Demo ist weitgehend fertig - aber: Ich bekomme es einfach nicht hin, dass ganz simpel die Zeit von einem der vielen NTP-Server im Netz holt... Im Gegenteil: der Wiznet820 landet im Nirvana und ich weiß bisher noch nicht woran das liegen mag.

      Irgendjemand hatte dieses Problem auch schon mal, aber keine Ahnung wer/wo/was das ganz genau war.

      Habt Ihr Ideen oder Quellen zum "retschaschieren" ???

      Uwe
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Ja, Fritzboxen habe ich im Einsatz - sogar 2. Aber sobald ich den Versuch per SNTP() Funktion starte, dann ist der W5200 im Nirvana und weigert sich irgendwo etwas zu erlauschen.

      Beim Hersteller gibt es einen Hinweis auf ein Problem des Chips mit ARP, ausgelöst durch ein falsches Berechnen/Senden der Netzwerkmaske. Allerdings waren alle meine Versuche nicht von Erfolg gekrönt.

      Vielleicht gibt es hier erfahrene Techniker in dem Segment. Vermutlich muss ich jetzt erstmal Ping nachbauen um näher an die Ursachen zu kommen.
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Demo Webserver

      Die Demo verwendet einen ATMega32 und ein WIZNET820 Modul mit einem W5200 Chip.


      Das Ethernet-Modul verwendet die SPI-Anschlüsse des Prozessors und diese sind deshalb für eigene Zwecke nicht nutzbar.
      Achtung: Das Modul benötig 3,3V - ist aber an den Ein-/Ausgängen der Signale 5V-tolerant.


      Folgende Funktionen lassen sich vor dem Kompilieren einstellen:
      a) Cdebug: 1 = gibt die meisten Verarbeitungsschritte zum verfolgen an die serielle Schnittstelle aus (aktuell 19.200 Baud)
      b) Authenticate: 1 = mit einer einfachen Anmeldung per Benutzername und Kennwort (eingestellt sind Benutzername=test und Kennwort=test)
      c) LED an PortC.5 - LOW-aktiv, d.h. der Ausgang mus = LOW sein damit die LED leuchtet (der Pin kann beliebig gewählt werden)


      Allgemeines:
      Die DATA-Bereiche am Ende des Programms haben mir geholfen den Inhalt der Webseite (HTML-Code) vom Programm zu trennen.
      Beim Senden wird immer so vorgegangen:
      1) Senden des HTML-Status Codes (z.B. 200 OK -- oder 404 Document not found)
      2) Senden des Headers (Content-Type, Länge der eigentlichen Webseite)
      3) Senden der Webseite selbst


      Variable Inhalte kann man z.B. dadurch erreichen, indem in der DATA-Zeile ein bestimmter Name für die Variable (mit/ohn Prä-/Postfix) verwendet wird.
      Beim zusammenbauen der Seite über eine "DO LOOP UNTIL" Schleife werden diese erkannt und dann durch den gewünschten Wert ersetzt.
      Beispiel:
      Für die Webseite mit dem Button zum Licht EIN/AUS schalten wird die Variable "%Lightstatus%" durch "EIN" bzw. "AUS" ersetzt.


      Damit der Anwender auch mitbekommt dass ein anderer Anwender den Status des Schaltzustandes geändert hat, habe ich diese zwei (wenig eleganten) Zeilen eingebaut:
      i.) Data "<meta http-equiv='cache-control' content='no-cache'>"
      ii.) Data "<meta http-equiv='refresh' content='5'>"


      Die Zeile (i.) sorgt dafür, dass der Browser die Seite immer direkt vom Server holt und nicht aus dem eigenen Cache und die Zeile (ii.) sorgt dafür, dass alle 5 Sekunden ein Update erfolgt.


      Ist nicht optimal geschrieben, aber da können ja ALLE mithelfen die Qualität zu verbessern.


      Danke an alle Ideengeber.


      Uwe
      Dateien
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Und hier noch ein Bild vom "Drahtverhau" - bitte nicht wundern, so viel es es garnicht. Links ist das Wiznet820-Modul, oben die (leuchtende) LED, in der Mitte der ATMega32 und rechts die Stromversorgung für 5V/3,3V.

      Unten der Kram ist nur für die serielle Schnittstelle, irgenwie muss man sich ja auch bewegen können :-).
      Dateien
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • katipefendi schrieb:

      ich möchte die Schnittstelle von meinem Laufschrift von USB auf Ethernet umrüsten

      katipefendi schrieb:

      Kennt jemand von euch, wo ich so ein fertiges 5200 Modul günstig erwerben kann?
      Das W5200 Modul ist schon recht teuer gegenüber den ESP8266 Modulen (WLan). Aber du könntest das Ganze auch über Bluetooth ansteuern, dann hättest du auch noch eine gute Möglichkeit die Anzeige über mobile Geräte zu steuern.
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.