ESP32-Web Server-Control Outputs

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

INSTITUTO TECNOLÓGICO DE

PUEBLA

SISTEMAS INTELIGENES EN IOT

PRACTICA
ESP32 WEB SERVER-CONTROL
OUTPUTS

Profesor(a):
GRISELDA SALDAÑA GONZÁLEZ

Presentan:
NC: 15221395 WALTER MANUEL RUIZ NARANJO
NC: 15221391 JORGE ROMERO SANTAMARIA
NC: 15221384 ISRAEL RODRIGUEZ CUAUTLE

30/10/2020
ESP32 WEB SERVER-CONTROL OUTPUTS

1. Introducción
En esta sección, veremos el ESP32 como servidor web. Crearemos un servidor web para controlar
de forma remota las salidas a través de la web y también le mostraremos cómo puede mostrar las
lecturas de los sensores en una página web. Después de crear el servidor web, le mostraremos
cómo puede agregar más resultados y lecturas de sensores para satisfacer sus necesidades, y
cómo puede personalizar la apariencia de su página web. Finalmente, protegerá su servidor web
con una contraseña y aprenderá cómo hacer que su servidor web sea accesible desde cualquier
lugar. En esta unidad, aprenderá qué es un servidor web y cómo funciona un servidor web ESP32..
Solicitud-respuesta. Solicitud-respuesta es un patrón de intercambio de mensajes, en el que un
solicitante envía un mensaje de solicitud a un sistema de respuesta que recibe y procesa la
solicitud y devuelve un mensaje en respuesta.

2. Objetivos

En esta práctica, aprenderemos a crear un servidor web simple con el ESP32 para
controlar las salidas. Se puede acceder al servidor web que se creará con cualquier
dispositivo como navegador: teléfono inteligente, tableta, computadora portátil, en la
red local.

3. Equipo y Materiales
-ESP32
-Protoboard
-2 x 330 homs resistencias
-2 Leds de 5mm
-Jumpers

4. Desarrollo
Codigo fuente:

#include <WiFi.h>

//------------------Servidor Web en puerto 80---------------------

WiFiServer server(80);

//---------------------Credenciales de WiFi-----------------------

const char* ssid     = "-----";


const char* password = "-----";
//---------------------VARIABLES GLOBALES-------------------------
int contconexion = 0;

String header; // Variable para guardar el HTTP request

String estadoSalida = "off";

const int salida = 2;

//------------------------CODIGO HTML------------------------------
String pagina = "<!DOCTYPE html>"
"<html>"
"<head>"
"<meta charset='utf-8' />"
"<title>Servidor Web ESP32</title>"
"</head>"
"<body>"
"<center>"
"<h1>Servidor Web ESP32</h1>"
"<p><a href='/on'><button
style='height:50px;width:100px'>ON</button></a></p>"
"<p><a href='/off'><button
style='height:50px;width:100px'>OFF</button></a></p>"
"</center>"
"</body>"
"</html>";

//---------------------------SETUP--------------------------------
void setup() {
 Serial.begin(115200);
 Serial.println("");
 
 pinMode(salida, OUTPUT);
 digitalWrite(salida, LOW);

 // Conexión WIFI


 WiFi.begin(ssid, password);
 //Cuenta hasta 50 si no se puede conectar lo cancela
 while (WiFi.status() != WL_CONNECTED and contconexion <50) {
   ++contconexion;
   delay(500);
   Serial.print(".");
 }
 if (contconexion <50) {
     //para usar con ip fija
     //IPAddress ip(192,168,1,180);
     //IPAddress gateway(192,168,1,1);
     //IPAddress subnet(255,255,255,0);
     //WiFi.config(ip, gateway, subnet);
     
     Serial.println("");
     Serial.println("WiFi conectado");
     Serial.println(WiFi.localIP());
     server.begin(); // iniciamos el servidor
 }
 else {
     Serial.println("");
     Serial.println("Error de conexion");
 }
}

//----------------------------LOOP----------------------------------

void loop(){
 WiFiClient client = server.available();   // Escucha a los clientes
entrantes

 if (client) {                             // Si se conecta un nuevo


cliente
   Serial.println("New Client.");          //
   String currentLine = "";                //
   while (client.connected()) {            // loop mientras el cliente
está conectado
     if (client.available()) {             // si hay bytes para leer
desde el cliente
       char c = client.read();             // lee un byte
       Serial.write(c);                    // imprime ese byte en el
monitor serial
       header += c;
       if (c == '\n') {                    // si el byte es un caracter
de salto de linea
         // si la nueva linea está en blanco significa que es el fin del
         // HTTP request del cliente, entonces respondemos:
         if (currentLine.length() == 0) {
           client.println("HTTP/1.1 200 OK");
           client.println("Content-type:text/html");
           client.println("Connection: close");
           client.println();
           
           // enciende y apaga el GPIO
           if (header.indexOf("GET /on") >= 0) {
             Serial.println("GPIO on");
             estadoSalida = "on";
             digitalWrite(salida, HIGH);
           } else if (header.indexOf("GET /off") >= 0) {
             Serial.println("GPIO off");
             estadoSalida = "off";
             digitalWrite(salida, LOW);
           }
           
           // Muestra la página web
           client.println(pagina);
           
           // la respuesta HTTP temina con una linea en blanco
           client.println();
           break;
         } else { // si tenemos una nueva linea limpiamos currentLine
           currentLine = "";
         }
       } else if (c != '\r') {  // si C es distinto al caracter de
retorno de carro
         currentLine += c;      // lo agrega al final de currentLine
       }
     }
   }
   // Limpiamos la variable header
   header = "";
   // Cerramos la conexión
   client.stop();
   Serial.println("Client disconnected.");
   Serial.println("");
 }
}

4.1. Simulación del Diseño

Comprobacion de el funcionamiento de el ESP32

5. Resultados
6. Conclusiones

En esta practica pudimos aprender como es que funciona el codigo en arduino para hacer
que funcione el ESP32 desde como conectarlo a la red wifi y también como diseñar la
pagina web y enlazar los botones a las salidas del esp32.
7. Referencias

Learn ESP32 with Arduino IDE V1_4.pdf

También podría gustarte