Actividad 10

 

Servidor Web con ESP32

Esta actividad consiste en conectar el ESP32 a una red WiFi y crear un servidor web al que poder conectarse desde un navegador para ver información enviada de la placa NodeMCU. Solamente se necesita la Placa NodeMCU y una red WiFi con acceso a las credenciales.

    Nota importante

Ten en cuenta que para acceder al servidor web generado por el ESP32 hay que utilizar un navegador web como Google Chrome desde otro dispositivo conectado a la misma red WiFi y colocar la IP y el puerto en la que esté conectado la NodeMCU.

Por ejemplo: 192.168.1.1:3000. Si usamos el puerto 80 no es necesario poner en la búsqueda :80.

// Incluir librerías necesarias
#include <WiFi.h>

// Creamos un Servidor Web en el puero 80
WiFiServer servidor(80);

// Credenciales de la red WiFi donde conectarse
const char* ssid = "NombreDeTuWiFi";
const char* pawd = "ClaveDeTuWiFi";

// Variable para guardar la petición HTTP
String header;

void setup() {

    // Inicializamos el monitor serial
    Serial.begin(9600);

    // Iniciamos la conexión WiFi
    WiFi.begin(ssid, pawd);

    // Esperamos que el ESP32 se conecte al WiFi
    Serial.print("Conectando");

    while(WiFi.status() != WL_CONNECTED) {

        Serial.print(".");
        delay(500);

    }

    // Mostramos por serial la IP donde accederemos
    Serial.println();
    Serial.print("Conectado a: ");
    Serial.println(ssid);
    Serial.print("Dirección IP: ");
    Serial.println(WiFi.localIP());

    // Inicializamos el servidor web
    servidor.begin();

}

void loop() {

    // Verificamos clientes conectados
    WiFiClient cliente = servidor.available();

    // Comprobamos si hay clientes conectados
    if(cliente) {

        Serial.println("Nuevo cliente");
        String lineaActual = "";

        // Esperamos que el cliente haga una petición
        while(cliente.connected()) {
            if(cliente.available()) {

                // Preparar variables para leer petición del cliente
                char c = cliente.read();
                Serial.write(c);
                header += c;

                // Si el byte es un caracter de salto de línea
                if (c == '\n') {

                    if(lineaActual.length() == 0) {

                        // Enviamos respuesta al cliente
                        cliente.println("HTTP/1.1 200 OK");
                        cliente.println("Content-type: text/html");
                        cliente.println("Connection: close");
                        cliente.println();
                        cliente.println("<!DOCTYPE html>");
                        cliente.println("<html>");
                        cliente.println("<head>");
                        cliente.println("<title>ESP32 Server</title>");
                        cliente.println("</head><body>");
                        cliente.println("<h1>Hola desde NodeMCU!</h1>");
                        cliente.println("</body></html>");
                        cliente.println();
                        break;

                    } else {

                        lineaActual = "";

                    }

                // Cuando llega un retorno de carro, agregamos a la línea actual
                } else if (c != '\r') {

                    lineaActual += c;

                }

            }

        }

        // Desconectamos al cliente
        cliente.stop();
        Serial.println("Cliente desconectado");

    }

}
Vistas
0 Número de vistas
0 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.