The use of the ESP8266 in the world of IoT

User avatar
By Settings
#80100 Hello, I am new here and in 8266, I come here with a problem with my website, I will attach a video so that it is understood, my website is repeated, watch the video and I hope you can help me know what my problem is In the code. Es in Spanish because I am from Argentina :mrgreen:

https://youtu.be/tEOij8N2qys

Code: Select all//LIBRERIAS//
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <SoftwareSerial.h>
MDNSResponder mdns;

//CONECCIONES//
const char* ssid = "";           // SSID.
const char* password = "";      // CONTRASEÑA

//const char* ssid = "";           // SSID.
//const char* password = "";      // CONTRASEÑA

ESP8266WebServer server(80);

//VARIABLES//
String webPage = "";
String respuesta;
String respuesta_web;
int dato= random(10);
char A;
char B;

//HANDLE ROOT//PAGINA WEB//
void handleRoot() 
{
  //PAGINA WEB//
  webPage += "<body>";
  webPage += "<h1>Nodemcu - Bienvenido. Rev:0.1 </h1>";
  webPage += "<h3>Temperaturas: </h3>";
  webPage += "<h3>Corrientes de las fases: </h3>";
  webPage += "<h3>Pulsadores: </h3>";
  webPage += "<p><a href=\"socketA\"><button styl><br><br>RELAY #0<br><br><br></button></a>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<a href=\"socketB\"><button><br><br>RELAY #1<br><br><br></button></a></p>";
  webPage += "</body>";
  //FIN DE LA PAGINA WEB//
 
  server.send(200, "text/html", webPage); //ENVIO EL SITIO WEB EN EL STRING "WEBPAGE".
}

//RELAY0//
void Relay0()
{
  Serial.println('A');                      //ENVIO POR SERIAL LA LETRA "A"..
  //respuesta_web = Serial.read();            //LEO LA RESPUESTA SERIE. (POSIBLEMENTE SE ELIMINE ESTO).
  server.sendHeader("Location","/");        //AGREQUE UN ENCABEZADO PARA IR CON UNA NUEVA UBICACION QUE EL QUE NAVEGADOR ME LLEVE A LA PAGINA DE INICIO NUEVAMENTE.
  server.send(303);                         //LA NUEVA UBICACION.   
}

//RELAY1//
void Relay1()
{
  Serial.println('B');                      //ENVIO POR SERIAL LA LETRA "A".
  //respuesta_web = Serial.read();            //LEO LA RESPUESTA SERIE. (POSIBLEMENTE SE ELIMINE ESTO).
  server.sendHeader("Location","/");        //AGREQUE UN ENCABEZADO PARA IR CON UNA NUEVA UBICACION QUE EL QUE NAVEGADOR ME LLEVE A LA PAGINA DE INICIO NUEVAMENTE.
  server.send(303);                         //LA NUEVA UBICACION.   
}


void setup(void)
{
  //Serial.begin(115200);                   //CONECCION A 115200BAUDS.
  Serial.begin(9600);                       //CONECCION A 9600BAUDS, ANDA MEJOR CON ESTE QUE CON 155200.
  WiFi.begin(ssid, password);               //INGRESA EL SSID Y LA CONTRASEÑA.
  Serial.println("");                       //SALTO EN BLANCO.

  //ESPERANDO CONECCION.
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }

  //MUESTRO INFORMACION DE LA CONECCION//
  Serial.println("");
  Serial.print("Conectado a: ");     
  Serial.println(ssid);               //MUESTRO LA SSID.
  Serial.print("IP: ");
  Serial.println(WiFi.localIP());     //MUESTRO LA IP.
 
  if (mdns.begin("esp8266", WiFi.localIP()))  //VERIFICO QUE SE INICIEN LOS DNS DEL SERVIDOR.
  {
    Serial.println("MDNS responder started");
  }
  else                                        //EN CASO DE QUE NO SE INICIE.
  {
    Serial.println("Error al configurar el respondedor MDNS!");
  }
 
  server.on("/", HTTP_GET, handleRoot);         //LLAMO A VOID HANDLEROOT.
  server.on("/socketA",Relay0);               //RELACION ENTRE EL BOTON SOCKETA Y EL VOID RELAY0.
  server.on("/socketB", Relay1);              //RELACION ENTRE EL BOTON SOCKETB Y EL VOID RELAY0.
 
  server.begin();                               //INICIALIZO EL SERVIDOR, SIN ESTO NO HAY WEB.
  Serial.println("HTTP server started");        //INDICO QUE SE INICIO EL SERVER.
}
void loop(void)
{
  server.handleClient();                        //DETECTA NUEVOS CLIENTES EN LA WEB.
}

void handleNotFound()
{
  server.send(404, "text/plain", "404: Not found");       //ENVIA AVISO DE ERROR 404.
}
User avatar
By rudy
#80223 Every time you go through handleRoot you were adding another copy to the webPage string. I added a line to clear it out at the beginning.

Code: Select allvoid handleRoot() 
{
  //PAGINA WEB//
  webPage = "";                 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  webPage += "<body>";
  webPage += "<h1>Nodemcu - Bienvenido. Rev:0.1 </h1>";
  webPage += "<h3>Temperaturas: </h3>";
  webPage += "<h3>Corrientes de las fases: </h3>";
  webPage += "<h3>Pulsadores: </h3>";
  webPage += "<p><a href=\"socketA\"><button styl><br><br>RELAY #0<br><br><br></button></a>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<a href=\"socketB\"><button><br><br>RELAY #1<br><br><br></button></a></p>";
  webPage += "</body>";
  //FIN DE LA PAGINA WEB//
 
  server.send(200, "text/html", webPage); //ENVIO EL SITIO WEB EN EL STRING "WEBPAGE".
}