|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Tutorial del Internet de las Cosas y Bluetooth con el ESP32
Juan Antonio Villalpando

Volver al índice del tutorial

____________________________

195.- Wemos D1 R32 ESP32. Servidor web Asíncrono.

________________________________
22.- Servidor web con conexión asíncrona. (I)

p62D_esp32_asincrono.aia

- Este es otro tipo de servidor web, es Asíncrono.

- Observa que la parte del servidor no está en el loop {}

- En este código el módulo se conectar a nuestro Router Wifi.

- Escribimos un número en la aplicación, ese número irá al módulo ESP32, se mostrará en el Monitor Serie y se devolverá a la aplicación.

- La variable es mi_valor

- Aquí están las dos librerías necesarias para trabaja en Asíncrono, descomprime este archivo y copia las dos carpetas en la carpeta libraries de Arduino:

AsyncTCP.zip

___________________________________________________
- Diseño.

___________________________________________________
- Bloques.

___________________________________________________
- Código.

wervidor_asincrono.ino

// Juan A. Villalpando.
// KIO4.COM

#include "WiFi.h"
#include "ESPAsyncWebServer.h"
 
const char* ssid = "Nombre_de_tu_Red_Wifi.";
const char* password = "Clave_WiFi";
 
AsyncWebServer server(80);
String mi_valor = "23.00";
 
void setup(){
  Serial.begin(115200);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
 
  Serial.println(WiFi.localIP());

  server.on ("/app", HTTP_GET, [] (AsyncWebServerRequest *request)
             {
                if(request->hasHeader("mi_valor")){
                AsyncWebHeader* h = request->getHeader("mi_valor");
                request-> send (200, "text/plain", h->value().c_str());
                Serial.printf("Mi valor: %s\n", h->value().c_str());
                }
             });
 
  server.begin();
}
 
void loop(){}

_________________________________
22.- Servidor web con conexión asíncrona. Punto de Acceso. (II)

- El mismo código anterior, pero como Punto de Acceso.

- En esta ocasión nuestro módulo no está conectado al Router, es independiente. Nuestro módulo crea la red 192.168.4.X

- Debes cambiar la red WiFi del móvil a "Juan" con contraseña "12345678"

- Es conveniente instalar la aplicación para comprobar su funcionamiento y cambiar en "Ajustes" la red Wifi a la creada por el ESP32.

- Si tienes el MIT Companion en 192.168.1.5 y la nueva es es 192.168.4.1, no se verá una a otra.

- Puedes utilizar la misma aplicación de App Inventor que hemos visto en el apartado anterior cambiando la IP: 192.168.4.1

- En la aplicación de App Inventor debes poner:

http://192.169.4.1/app

wervidor_asincrono_punto_acceso.ino

// Juan A. Villalpando.
// KIO4.COM

#include "WiFi.h"
#include <WiFiAP.h>
#include "ESPAsyncWebServer.h"
 
// Set these to your desired credentials.
const char* ssid     = "Juan";
const char* password = "123456789";
 
AsyncWebServer server(80);
String mi_valor = "23.00";
 
void setup(){
  Serial.begin(115200);
  Serial.println();
  Serial.println("Configuring access point...");
  // You can remove the password parameter if you want the AP to be open.
  WiFi.softAP(ssid, password);
  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);
  server.begin();

  Serial.println("Server started");

  server.on ("/app", HTTP_GET, [] (AsyncWebServerRequest *request)
             {
                if(request->hasHeader("mi_valor")){
                AsyncWebHeader* h = request->getHeader("mi_valor");
                request-> send (200, "text/plain", h->value().c_str());
                Serial.printf("Mi valor: %s\n", h->value().c_str());
                }
             });
 
  server.begin();
}
 
void loop(){}

_________________________________
22.- Servidor web con conexión asíncrona. Página web. Número aleatorio. (III)

- En este ejemplo el módulo se conecta a nuestro Router.

- Se puede utilizar la aplicación de App Inventor que hemos visto anteriormente modificando y ampliando algunos bloques.

- Si en un navegador web escribimos http://192.168.1.11/pag saldrá una página web [los Botones no realizan ningún enlace]

- Si en un navegador web escribimos http://192.168.1.11/ale saldrá un número aleatorio del 0 al 100 con dos decimales.

- Si en la app de App Inventor ponemos http://192.168.1.11/app con mi_valor obtendremos ese valor en el Monitor Serie y en retorno.

- En el loop {} en vez de crear números aleatorios, puedes conectar un potencíómetro a una entrada Analógica del módulo y transmitir su valor.

servidor_asincrono_punto_acceso.ino

// Juan A. Villalpando.
// KIO4.COM
// Noviembre 2018

#include "WiFi.h"
#include "ESPAsyncWebServer.h"
 
const char* ssid = "Nombre_de_tu_Wifi";
const char* password = "Clave_Wifi";

String aleato;
String mi_valor = "23.00";
String paginaweb = "<!DOCTYPE HTML><html><head><meta charset=utf-8>" 
"</head><body><font face='Arial'><center><h1>Servidor web con NodeMCU.</h1>"
"<h2><font color='#009900'>KIO4.COM - Juan A. Villalpando</font></h2>"
"<h3>Página web.</h3>"
"<br><br>"
"<img src='http://iesromerovargas.com/kio42.png'><br>"
"<a href='/a'><button>Juan Antonio </button></a>"
"<a href='/b'><button>KIO4.COM </button></a>"
"<a href='/c'><button>Buen tiempo. </button></a>"
"<a href='/d'><button>Puerto Real </button></a>"
"<p><font face='Arial'>Esto es un ejemplo de página web.</font></p>"
"<p><font face='Arial'><a href='http://kio4.com'>kio4.com</a></p>"
"</font></center></body></html>";

AsyncWebServer server(80);

void setup(){
Serial.begin(115200);
  delay(10);
 
  // Conecta a la red wifi.
  Serial.println();
  Serial.println();
  Serial.print("Conectando con ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("Conectado con WiFi.");
  // Esta es la IP
  Serial.print("Esta es la IP para conectar: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");

  server.on ("/pag", HTTP_GET, [] (AsyncWebServerRequest *request)
             {request-> send (200, "text/html", paginaweb);});

   server.on ("/ale", HTTP_GET, [] (AsyncWebServerRequest *request)
             {request-> send (200, "text/plain", aleato);});

  server.on ("/app", HTTP_GET, [] (AsyncWebServerRequest *request)
             {
                if(request->hasHeader("mi_valor")){
                AsyncWebHeader* h = request->getHeader("mi_valor");
                request-> send (200, "text/plain", h->value().c_str());
                Serial.printf("Mi valor: %s\n", h->value().c_str());
                }
             });
 
  server.begin();
}
 
void loop(){
  float aleatorio = random(0, 10000)/ 100.0;  
  aleato = (String) aleatorio;
  }			

https://github.com/me-no-dev/ESPAsyncWebServer/blob/master/README.md

_______________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información