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
ESP8266 Webserver
30.07.2016, 20:15
Beitrag #1
ESP8266 Webserver
Hey Leute Wink

Es geht um einen "Webserver" mit ESP8266 Wifi Modul + 433Mhz Sender.

Ich habe soweit alles am laufen wie ich es brauche.
Bis auf den Teil der Statusanzeige.

Hier ist der Code:

Code:
// Homecontrolserver Webpage Zentrale Seite


byte unterProgramm = 0;                                                    // Merker für Unterprogram.



#include <ESP8266WiFi.h>






const char* ssid = "SSID";
const char* password = "Passwort";





unsigned long ulReqcount;
unsigned long ulReconncount;







int hb_state = LOW;                                                       // led_hb status

unsigned long previousMillis = 0;                                        

const long interval_hb = 500;                                             // interval für led_hb  

const int ledc = 16;                                                      // Led ( grün ) zeigt eine bestehende Verbindung zum Router an.
const int led_r = 5;                                                      // Led ( blau ) zeigt eine aktive Datenverbindung zwischen Client und ESP8266 an.
const int led_hb = 4;                                                     // Led ( rot ) program läuft


#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();



WiFiServer server(99);                                                     // Server PORT (99)   BSP: 192.168.4.1:99





//################################################################################​########---SETUP---################################################################################​##############################

void setup() {


  
  ulReqcount=0;
  ulReconncount=0;
  
  WiFi.mode(WIFI_STA);
  WiFiStart();
  
  Serial.begin(115200);                                                    // BAUD RATE ( Standart: 115200 )

  mySwitch.enableTransmit(2);                                              // 2 = Pin D4

  pinMode(ledc,OUTPUT);
  pinMode(led_r,OUTPUT);
  pinMode(led_hb,OUTPUT);
  
  
  
}




void WiFiStart()
{
  ulReconncount++;
  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    digitalWrite(ledc,LOW);
  }
  Serial.println("");
  Serial.println("WiFi connected");
  digitalWrite(ledc,HIGH);
  
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}











//################################################################################​###########----LOOP-----################################################################################​######################


void loop() {

  
  unsigned long currentMillis = millis();



if (currentMillis - previousMillis >= interval_hb) {
    
    previousMillis = currentMillis;

    
    if (hb_state == LOW) {
      hb_state = HIGH;
    } else {
      hb_state = LOW;
    }

    
    digitalWrite(led_hb, hb_state);
  }





  

  // Serial.println(unterProgramm);

  // check if WLAN is connected
  if (WiFi.status() != WL_CONNECTED)
  {
    WiFiStart();
  }
  
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client)
  {
    digitalWrite(led_r,LOW);
  
    return;
  }
  
  // Wait until the client sends some data
  Serial.println("new client");
  digitalWrite(led_r,HIGH);
  unsigned long ultimeout = millis()+250;
  while(!client.available() && (millis()<ultimeout) )
  {
    delay(1);
  }
  if(millis()>ultimeout)
  {
    Serial.println("client connection time-out!");
    return;
  }
  
  // Read the first line of the request
  String sRequest = client.readStringUntil('\r');
  //Serial.println(sRequest);
  client.flush();
  
  // stop client, if request is empty
  if(sRequest=="")
  {
    Serial.println("empty request! - stopping client");
    client.stop();
    return;
  }
  
  // get path; end of path is either space or ?
  // Syntax is e.g. GET /?pin=MOTOR1STOP HTTP/1.1
  String sPath="",sParam="", sCmd="";
  String sGetstart="GET ";
  int iStart,iEndSpace,iEndQuest;
  iStart = sRequest.indexOf(sGetstart);
  if (iStart>=0)
  {
    iStart+=+sGetstart.length();
    iEndSpace = sRequest.indexOf(" ",iStart);
    iEndQuest = sRequest.indexOf("?",iStart);
    
    // are there parameters?
    if(iEndSpace>0)
    {
      if(iEndQuest>0)
      {
        // there are parameters
        sPath  = sRequest.substring(iStart,iEndQuest);
        sParam = sRequest.substring(iEndQuest,iEndSpace);
      }
      else
      {
        // NO parameters
        sPath  = sRequest.substring(iStart,iEndSpace);
      }
    }
  }
  
  ///////////////////////////////////////////////////////////////////////////////
  // output parameters to serial, you may connect e.g. an Arduino and react on it
  ///////////////////////////////////////////////////////////////////////////////
  if(sParam.length()>0)
  {
    int iEqu=sParam.indexOf("=");
    if(iEqu>=0)
    {
      sCmd = sParam.substring(iEqu+1,sParam.length());
      Serial.println(sCmd);
    }
  }
  
  
  ///////////////////////////
  // format the html response
  ///////////////////////////
  String sResponse,sHeader;
  
  ////////////////////////////
  // 404 for non-matching path
  ////////////////////////////
  if(sPath!="/")
  {
    sResponse="<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p></body></html>";
    
    sHeader  = "HTTP/1.1 404 Not found\r\n";
    sHeader += "Content-Length: ";
    sHeader += sResponse.length();
    sHeader += "\r\n";
    sHeader += "Content-Type: text/html\r\n";
    sHeader += "Connection: close\r\n";
    sHeader += "\r\n";
  }
  ///////////////////////
  // format the html page
  ///////////////////////
  else
  {
    ulReqcount++;
    sResponse  = "<html><head><title>Homecontrolserver</title></head><body>";
    sResponse += "<font color=\"#000000\"><body bgcolor=\"#FFFFFF\">";
    sResponse += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">";
    sResponse += "<h1>Homecontrolserver</h1>";
    sResponse += "<h1></h1>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<FONT SIZE=+2>";
    sResponse += "<p>Schalter 1     <a href=\"?pin=a_ein\"><button>Ein</button></a>&nbsp;<a href=\"?pin=a_aus\"><button>Aus</button></a></p>";
    sResponse += "<p>Schalter 2     <a href=\"?pin=b_ein\"><button>Ein</button></a>&nbsp;<a href=\"?pin=b_aus\"><button>Aus</button></a></p>";
    sResponse += "<p>Schalter 3     <a href=\"?pin=c_ein\"><button>Ein</button></a>&nbsp;<a href=\"?pin=c_aus\"><button>Aus</button></a></p>";
    sResponse += "<p>Schalter 4     <a href=\"?pin=d_ein\"><button>Ein</button></a>&nbsp;<a href=\"?pin=d_aus\"><button>Aus</button></a></p>";
    sResponse += "<p>Schalter 5     <a href=\"?pin=e_ein\"><button>Ein</button></a>&nbsp;<a href=\"?pin=e_aus\"><button>Aus</button></a></p>";
    sResponse += "<p>Schalter 6     <a href=\"?pin=f_ein\"><button>Ein</button></a>&nbsp;<a href=\"?pin=f_aus\"><button>Aus</button></a></p>";
    sResponse += "<p>Alle An        <a href=\"?pin=g_ein\"><button>Ein</button></a>&nbsp;<a href=\"?pin=g_aus\"><button>Aus</button></a></p>";
    
    //////////////////////
    // react on parameters
    //////////////////////
    if (sCmd.length()>0)
    {
      // write received command to html page
      sResponse += "INFO: " + sCmd + "<BR>";
      
      // switch GPIO
      
      if(sCmd.indexOf("a_ein")>=0)
      {

      Serial.println("a_ein");  
    
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1000, 24);
      
      }
      else if(sCmd.indexOf("a_aus")>=0)
      {
        
      Serial.println("a_aus");
    

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1, 24);
    
        
      }


      if(sCmd.indexOf("b_ein")>=0)
      {
      Serial.println("b_ein");
  
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(2000, 24);
        
      
      }
      else if(sCmd.indexOf("b_aus")>=0)
      {

      Serial.println("b_aus");
    
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1, 24);
        
      
     } else if(sCmd.indexOf("c_ein")>=0)
    
      {

      Serial.println("c_ein");
      

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(3000, 24);

      } else if(sCmd.indexOf("c_aus")>=0)
    
      {

      Serial.println("c_aus");
    

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1, 24);

      } else if(sCmd.indexOf("d_ein")>=0)
    
      {

      Serial.println("d_ein");
    
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(4000, 24);

      } else if(sCmd.indexOf("d_aus")>=0)
    
      {

      Serial.println("d_aus");
    

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1, 24);

      } else if(sCmd.indexOf("e_ein")>=0)
    
      {

      Serial.println("e_ein");
      
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(5000, 24);

      } else if(sCmd.indexOf("e_aus")>=0)
    
      {

      Serial.println("e_aus");
      

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1, 24);
      
       } else if(sCmd.indexOf("f_ein")>=0)
    
      {

      Serial.println("f_ein");
      

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(6000, 24);

       } else if(sCmd.indexOf("f_aus")>=0)
    
      {

      Serial.println("f_aus");
      

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1, 24);

      } else if(sCmd.indexOf("g_ein")>=0)
    
      {

      Serial.println("g_ein");
      

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(2000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(3000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(4000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(5000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(6000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(7000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(8000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(9000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(10000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(11000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(12000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(13000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(14000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(15000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(16000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(17000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(18000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(19000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(20000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(21000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(22000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(23000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(24000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(25000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(26000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(27000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(28000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(29000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(30000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(31000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(32000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(33000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(34000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(35000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(36000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(37000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(38000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(39000, 24);
      delay(100);
      mySwitch.setRepeatTransmit(15);
      mySwitch.send(40000, 24);
      delay(100);






      
       } else if(sCmd.indexOf("g_aus")>=0)
    
      {

      Serial.println("g_aus");
      

      mySwitch.setRepeatTransmit(15);
      mySwitch.send(1, 24);


      }
      




      
    }
    
    sResponse += "<FONT SIZE=-2>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>";
    sResponse += "<BR>Aufrufz&auml;hler = ";
    sResponse += ulReqcount;
    sResponse += " - Verbindungsz&auml;hler = ";
    sResponse += ulReconncount;
    sResponse += "<BR>";
    sResponse += "<BR>";
  
    sResponse += "</body></html>";
    
    sHeader  = "HTTP/1.1 200 OK\r\n";
    sHeader += "Content-Length: ";
    sHeader += sResponse.length();
    sHeader += "\r\n";
    sHeader += "Content-Type: text/html\r\n";
    sHeader += "Connection: close\r\n";
    sHeader += "\r\n";
  }
  
  // Send the response to the client
  client.print(sHeader);
  client.print(sResponse);
  
  // and stop the client
  client.stop();
  Serial.println("Client disonnected");

  
}


Ich sende per Webpage einfach Funksignale an meine 433-Mhz Empfänger, das klappt auch. Ich würde jedoch gerne auf der Webpage sehen was AN und was AUS ist, um auch später mal Funk Sensoren anzuzeigen.

Wie ich das im Programm machen will weis ich schon boolean tür1 = false; einfach mit Merkern, die ich dementsprechend setze und abfrage das bekomme ich hin.

Aber wie kann ich mir das als zb. Led Indikator ( Kreis: grün , rot) oder als text zb. Tür1 Status: offen / zu ... anzeigen lassen ?

Ich hab leider 0 -> sehr wenig Ahnung von HTML und dem ganzen. Hat jemand ein simples ( kleines ) BSP wie ich das mache ? also mir geht es nur um den Teil des anzeigen's auf der HP nicht der Code zum vergleich Tür: offen / zu.


Über Hilfe bin ich Dankbar Wink


Gruß Marc

Shy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  arduino uno und esp8266-01 kardors 27 605 14.01.2017 16:01
Letzter Beitrag: renid55
  Messdatenausgabe auf Webserver über NanoESP RivaDynamite 10 275 10.01.2017 15:49
Letzter Beitrag: renid55
  ESP8266 ESP12-E Webserver-Frage Claus_M 8 399 14.11.2016 22:02
Letzter Beitrag: Claus_M
  ESP8266 Server connect sowerum 1 264 21.10.2016 19:10
Letzter Beitrag: sowerum
  Webserver + Bild als Hintergrund ?! Marc2014 8 317 11.10.2016 21:39
Letzter Beitrag: Bitklopfer
  ESP8266 tuts nicht sowerum 7 469 19.09.2016 21:01
Letzter Beitrag: sowerum
  ESP8266 Webserver Programmieren HDT 11 994 23.08.2016 13:28
Letzter Beitrag: HDT
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 501 22.08.2016 08:07
Letzter Beitrag: b3ta
Question Webserver, Client, Loop Marc2014 6 422 29.07.2016 21:04
Letzter Beitrag: Marc2014
  Problem mit ESP8266 und EMail senden torsten_156 1 736 13.06.2016 21:14
Letzter Beitrag: torsten_156

Gehe zu:


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