|     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

____________________________

116.- Wemos D1 R32 ESP32. Cliente de un servidor web envío de datos. PHP.

- En este caso disponemos de un servidor web externo con PHP, le vamos a enviar datos y recibiremos una respuesta.

- El archivo PHP se encuentra en kio4.com/appinventor/php/respuesta.php

- Ese archivo contiene este código PHP

respuesta.php

<?php
$datos=$_GET;
echo "Hola ";
echo $datos['nombre'];
echo ", eres de ";
echo $datos['ciudad'];
?>

- Recibe mediante GET dos datos: el nombre y la ciudad.

- Los muestra en el cliente que ha conectado, mediante echo.

_____________________________________________________________
1.- El ESP32 actúa como cliente, envía datos a un servidor externo y recibe una respuesta.

cliente_php.ino

#include <WiFi.h>

const char* ssid     = "Nombre_de_tu_red_Wifi";
const char* password = "La_clave_de_tu_Wifi";

const char* host = "kio4.com";
const char* nombre = "Juan";
const char* ciudad = "Jerez";
// const char* ciudad = "Grazalema";

void setup()
{
    Serial.begin(115200);
    delay(10);

  // Conecta a la red wifi.
  Serial.println();
  Serial.print("Conectando con ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Conectado con WiFi.");

  // Esta es tu IP
  Serial.print("Esta es tu IP: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
}

void loop()
{
    delay(5000);

    Serial.print("Conectando con ");
    Serial.println(host);

    // Clase cliente
    WiFiClient client;
    const int httpPort = 80;
    if (!client.connect(host, httpPort)) {
        Serial.println("Fallo en la conexión.");
        return;
    }

    // Linea de petición
    String url = "/appinventor/php/respuesta.php";
    url += "?nombre=";
    url += nombre;
    url += "&ciudad=";
    url += ciudad;

    Serial.println(url);

    // Esto es lo que se enviará al servidor.
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                 "Host: " + host + "\r\n" +
                 "Connection: close\r\n\r\n");
    unsigned long timeout = millis();
    while (client.available() == 0) {
        if (millis() - timeout > 5000) {
            Serial.println(">>> Rebasado 5 segundos.");
            client.stop();
            return;
        }
    }

    // Lee todas las líneas que ha enviado el servidor.
    while(client.available()) {
        String lineas = client.readStringUntil('\r');
        Serial.print(lineas);
    }

    Serial.println();
    Serial.println("Conexión cerrada.");
}

_____________________________________________________________
3.- Comentarios.

- El dato que envíe no deberá tener acentos ni eñe ni espacios.

- Puedes solventar este tipo de caracteres utiliza código html.

- Por ejemplo, para enviar Jerez de la Frontera, enviaríamos: Jerez%20de%20la%20Frontera

- Este es solamente un ejemplo didáctico, podríamos complicarlo enviando datos a una Base de datos MySQL o tomando decisiones en el código PHP.

- Por ejemplo, este nuevo código:

respuesta_v2.php

<?php
$datos=$_GET;
echo "Hola ";
echo $datos['nombre'];
echo ", eres de ";
echo $datos['ciudad'];
if ($datos['ciudad'] == "Jerez" ) {echo ". En tu ciudad hacen vino. " ;}
if ($datos['ciudad'] == "Grazalema" ) {echo ". Muy bueno el queso payoyo. ";}
?>

- Según la ciudad sea "Jerez" o "Grazalema" mostrará una respuesta.

_______________________________

- 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