INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite
21.08.2016, 18:26
Beitrag #9
RE: Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite
Ja bin dabei. Brauch nur bissle länger um es zu verstehen. Setz mich gleich mal hin und versuche es umzusetzen. Danke dir
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.08.2016, 22:17 (Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2016 22:24 von ardu_arne.)
Beitrag #10
RE: Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite
Wenn alles nur im lokalen Netzwerk angewendet wird gibt es eine Lösung mit folgenden Merkmalen.
Ich unterlasse es mal die Merkmale als positiv oder negativ zu bewerten. Das sei dir selbst überlassen weil du dein lokales Netzwerk am besten kennst.

Der statische Teil der Webseite liegt als HTML-Datei nicht auf dem Arduino sondern auf dem PC, Laptop oder Smartphone auf dem der Browser läuft.
Der statische Teil der Webseite kann auch auf irgendeinem freigegebenen Netzlaufwerk liegen das immer erreichbar ist, zentral für alle in Frage kommenden Browser (Clients).
Auf dem Arduino läuft ein Webserver mit statischer IP-Adr.
Der Arduino liefert nur die dynamischen Teile der Webseite (Variablen) mit Formatierung aus.
Es wird kein PHP, AJAX oder sonstiger "Schnickschnak" benötigt.
Der Webbrowser fordert beim Aufbau der Webseite zur Laufzeit die Variablen per Javascript vom Arduino an.
Der Seitenaufbau im Browser ist blitzschnell weil vom "langsamen Arduino" nur die Variablen kommen und nicht der gesamte statische Webseitencode.
Automatischer Refresh der Webseite ist möglich und wird im statischen HTML-Code hinterlegt.
Eine SD-Karte am Arduino braucht man nicht.
Den statischen Teil der Webseite kann man am PC entwickeln und sofort im Browser testen ohne ihn erst auf eine SD-Karte kopieren zu müssen.


Eine Anleitung dazu gibt es im Nachbarforum.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.08.2016, 07:29 (Dieser Beitrag wurde zuletzt bearbeitet: 22.08.2016 07:35 von Corvus.)
Beitrag #11
RE: Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite
Ungetestet, aber so in etwa könnte eine Lösung deines Problems aussehen:
Code:
#if ARDUINO > 18
#include <SPI.h> // Für Arduino Version größer als 0018
#endif
#include <Ethernet.h>
#include <TextFinder.h>
#include <SD.h>
#include <DHT.h>

#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);

byte mac[] = { 0x5A, 0xA2, 0xDA, 0x0D, 0x56, 0x7A }; // MAC-Adresse des Ethernet-Shield
byte ip[]  = { 192, 168, 2, 102 };                   // IP zum aufrufen des Webservers
byte sdPin = 4;                                      // Pin der SD-Karte

EthernetServer server(80);                           // Server port

File webFile;

void setup()
{  
  Ethernet.begin(mac, ip); // Client starten
  server.begin();          // Server starten
  Serial.begin(9600);
  Serial.println("ARDUINO - STEUERUNG");

  Serial.println("Initialisiere SD-Karte...");
  if (!SD.begin(sdPin))
  {
    Serial.println(" - Initialisierung der SD-Karte fehlgeschlagen!");
    return;
  }
  Serial.println(" - SD-Karte erfolgreich initialisiert.");

  if (!SD.exists("index.htm"))
  {
    Serial.println(" - Datei (index.htm) wurde nicht gefunden!");
    return;
  }
  Serial.println(" - Datei (index.htm) wurde gefunden.");

  Serial.println();
  Serial.println("Verbraucher schalten");
}

void loop()
{
  EthernetClient client = server.available(); // Auf Anfrage warten

  if(client)
  {
    /*****************************************
      Ausgänge über das Webformular steuern  *
    *****************************************/
    TextFinder finder(client);

    if(finder.find("GET"))
    {
      while(finder.findUntil("pin", "\n\r"))
      {
        char typ = client.read();
        int  pin = finder.getValue();
        int  val = finder.getValue();

        if(typ == 'D')
        {
          pinMode(pin, OUTPUT);
          digitalWrite(pin, val);
          Serial.print(" - D"+String(pin));
        }
        else if(typ == 'A')
        {
          analogWrite(pin, val);
          Serial.print(" - A"+String(pin));
        }
        else Serial.print(" - Falscher Typ");

        if(val==1) Serial.println(" ein"); else Serial.println(" aus");
      }
    }

    /************************
      Webformular anzeigen  *
    ************************/
    boolean current_line_is_blank = true;       // eine HTTP-Anfrage endet mit einer Leerzeile und einer neuen Zeile

    while (client.connected())
    {
      if (client.available())                   // Wenn Daten vom Server empfangen werden
      {
        char c = client.read();                 // empfangene Zeichen einlesen
        if (c == '\n' && current_line_is_blank) // wenn neue Zeile und Leerzeile empfangen
        { // Standard HTTP Header senden
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println();

          // Website von SD-Karte laden
          webFile = SD.open("index.htm");  // Website laden
          if (webFile)
          {
            while(webFile.available())  // Website an Client schicken
            {
              byte ch = webFile.read();
              if ( ch == '$' )
              {
                ch = webFile.read();
                switch(ch)
                {
                  case '$':               //"$$" in webfile gefunden
                    client.write('$');    // ersetze es durch "$"
                    break;
                  case 't':                              //"$t" in webfile gefunden
                    client.print(dht.readTemperature()); // ersetze es durch die Temperatur
                    break;
                  case 'h':                                //"$h" in webfile gefunden
                    client.print(dht.readHumidity());      // ersetze es durch die Luftfeuchtigkeit
                    break;
                  default:                                // bei allen anderen zeichen die auf ein $ folgen
                    Serial.print("Undefinierte Variable: $"); // Fehlemeldung
                    Serial.println(ch);
                }
                  
              }  
              else
              {
                client.write(ch);
              }
            }
            webFile.close();
          }
          break;
        }
        if (c == '\n')
        {
          current_line_is_blank = true;
        }
        else if (c != '\r')
        {
          current_line_is_blank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}
Aus deiner HTML-Datei wird dann, beim Ausliefern an den Client, die Zeichenfolge "$t" durch den Wert der Temperatur ersetzt. Und aus "$h" wird der Wert der Luftfeuchtigkeit. Da das Zeichen "$" als Escape-Character dient, musst du "$$" in der HTML-Datei schreiben wenn es nicht substituiert werden soll.

Ich hoffe, ich habe da jetzt keine Fehler reingepfuscht.
gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.08.2016, 08:07
Beitrag #12
RE: Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite
Danke an alle vor allem am an Corvus es funktioniert so wie ich es wollte.

nur ohne automatische Aktualisierung was ich aber auch nicht wirklich brauche.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP8266 ESP12-E Webserver-Frage Claus_M 8 245 14.11.2016 22:02
Letzter Beitrag: Claus_M
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 120 14.10.2016 21:40
Letzter Beitrag: hotsystems
  Webserver + Bild als Hintergrund ?! Marc2014 8 246 11.10.2016 21:39
Letzter Beitrag: Bitklopfer
Sad Ich brauche Hilfe Prosac 4 233 09.10.2016 18:39
Letzter Beitrag: Prosac
  Bluetooth refresh der Seite kaimaik 7 219 01.10.2016 22:05
Letzter Beitrag: kaimaik
  at24c256 Hilfe Gandalf 6 249 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 285 27.08.2016 18:23
Letzter Beitrag: Binatone
  ESP8266 Webserver Programmieren HDT 11 765 23.08.2016 13:28
Letzter Beitrag: HDT
  Programmierer gesucht (einfaches Uni-Projekt) grt35a 2 269 12.08.2016 11:36
Letzter Beitrag: grt35a
  ESP8266 Webserver Marc2014 0 348 30.07.2016 20:15
Letzter Beitrag: Marc2014

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste