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
  ESP8266 ESP12-E Webserver-Frage Claus_M 8 265 14.11.2016 22:02
Letzter Beitrag: Claus_M
  ESP8266 Server connect sowerum 1 174 21.10.2016 19:10
Letzter Beitrag: sowerum
  Webserver + Bild als Hintergrund ?! Marc2014 8 247 11.10.2016 21:39
Letzter Beitrag: Bitklopfer
  ESP8266 tuts nicht sowerum 7 396 19.09.2016 21:01
Letzter Beitrag: sowerum
  ESP8266 Webserver Programmieren HDT 11 778 23.08.2016 13:28
Letzter Beitrag: HDT
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 454 22.08.2016 08:07
Letzter Beitrag: b3ta
Question Webserver, Client, Loop Marc2014 6 369 29.07.2016 21:04
Letzter Beitrag: Marc2014
  Problem mit ESP8266 und EMail senden torsten_156 1 609 13.06.2016 21:14
Letzter Beitrag: torsten_156
  Wetterstation mit Vorhersage auf Webserver reimundko 8 598 05.06.2016 16:06
Letzter Beitrag: reimundko
  Webserver Textfeld jannis.f 15 1.950 15.05.2016 16:48
Letzter Beitrag: avoid

Gehe zu:


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