Práctica 7

Envió PHP.

Regresar a Laboratorio

Descripción

En esta práctica se busca poder modificar los datos guardados en un servidor mediante un script en PHP, este debe de ser accesible desde el navegador como desde el NodeMCU ESP32 para poder realizar programas que accedan al servicio y hagan modificaciones. Este servicio se alojará en una red local y en un servicio proporcionado por Replit.

Instrucciones PDF
...

Descargar página servidor php
Ejemplos en red local con xampp

El video muestra la creación de un servidor php para recibir datos mediante el uso de xampp para levantar un servidor local. Este contempla el uso de un navegador web y posteriormente con el NodeMCU ESP32

Ejemplos en servicio web con Replit

El video muestra la creación de un servidor php para recibir datos mediante el servicio de Replit para enviarlos a internet. Este contempla el uso de un navegador web y posteriormente con el NodeMCU ESP32.

Código ESP32

//ENVIO DE DATOS A UN SERVIDOR PHP
#include <WiFi.h>
#include <HTTPClient.h>

// Configuración de la red WiFi
const char* ssid = "SSID";          // Reemplaza con el SSID de tu red WiFi
const char* password = "Password";  // Reemplaza con la contraseña de tu red WiFi

// URL del servidor PHP en tu localhost con XAMPP
const char* serverUrl = "http://192.168.68.114?apikey=123";

String valueA = "";
String valueB = "";
bool waitingForA = true;

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

  // Conectar a la red WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Conectando a WiFi...");
  }
  Serial.println("Conectado a WiFi");

  // Solicitar el valor de A
  Serial.println("Ingrese el valor de A:");
}

void loop() {
  if (Serial.available()) {
    String input = Serial.readStringUntil('\n');
    input.trim();

    if (waitingForA) {
      valueA = input;
      waitingForA = false;
      Serial.println("Ingrese el valor de B:");
    } else {
      valueB = input;

      // Construir la URL con los valores de A y B
      String url = String(serverUrl) + "&A=" + valueA + "&B=" + valueB;

      Serial.println("URL: " + url);

      // Hacer la solicitud HTTP
      if (WiFi.status() == WL_CONNECTED) {
        HTTPClient http;
        http.begin(url);
        int httpCode = http.GET();
        if (httpCode > 0) {
          Serial.printf("Código de respuesta HTTP: %d\n", httpCode);
          //String payload = http.getString();
          //Serial.println("Respuesta: " + payload);
        } else {
          Serial.printf("Error en la solicitud HTTP: %s\n", http.errorToString(httpCode).c_str());
        }
        http.end();
      } else {
        Serial.println("WiFi no está conectado");
      }

      // Reiniciar para pedir los valores nuevamente
      waitingForA = true;
      Serial.println("Ingrese el valor de A:");
    }
  }
}