Software servidores

Hola, como puedo conectarme a un servidor remoto con el ESP8266 0 el ESP32, trato de hacerlo usando este código pero no se conecta
void loop() {

delay(5000);

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

// Clase cliente
WiFiClient client;

if (!client.connect(host, httpPort)) {
    Serial.println("Fallo en la conexión.");
    return;
}

}

cuando te refieres a un cliente, ¿te refieres a conectarte a un punto de acceso wifi?
Si es así creo que necesitas mirar cualquier tutorial dado que en ningún momento estás haciendo el "connect".
https://www.google.com/search?client=firefox-b-d&q=google+tutorial+wifi+es8266#ip=1

Moderador:
Tu publicación fue MOVIDA a su ubicación actual Microcontroladores porque es más adecuada.
Todo lo que no sea ATMEL o AVR va en esta sección.

No, lo que quiero es conectarme al servidor, donde se alojan los archivos php y la base de datos. Hasta ahora lo he intentado de muchas maneras pero ha sido imposible.

Este es el código actual y arroja que no puede conectarse al servidor:
//Lo primero que debemos hacer es definir las credenciales de nuestra red WiFi y la dirección IP del servidor remoto:

#include <ESP8266WiFi.h>

const char* ssid = "vvvvvvv";
const char* password = "1234566";
const char* server = "http://192.168.1.140/";
const int port = 80;

//Luego, debemos crear un objeto WiFiClient para establecer la conexión con el servidor:

WiFiClient client;

void setup() {
if (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
}
//enviarDatos();
delay(5000);
}
//A continuación, podemos crear una función que nos permita enviar una solicitud POST al servidor con los valores numéricos que deseamos solicitar:
void enviarDatos() {
Serial.begin(9600);
if (client.connect(server, port)) {
String postData = "valor1=123&valor2=456"; // valores numéricos que se enviarán al servidor
client.println("POST /NodeMCU_Get_Database/GetData.php/1.1");
client.println("Host: " + String(server) + ":" + String(port));
client.println("Content-Type: application/x-www-form-urlencoded");
client.println("Content-Length: " + String(postData.length()));
client.println();
client.println(postData);
}
else {
Serial.println("Error al conectar con el servidor");
}
delay(5000);
}

void loop(){
enviarDatos();
}

Te paso varias recomendaciones y puntos a mirar:

Creo que con esta sentencia:

Te intentas conectar a cierta IP pero la variable que pones en server contiene el protocolo y barras. Intuyo que eso está mal. server debería ser algo como "192.168.1.140" quitando barras, protocolo y demás que pudieras meter.
Aquí tienes cómo se utiliza esa clase:
https://www.arduino.cc/reference/en/libraries/wifi/wificlient/

Después intentas crear la cabecera de la petición html directamente, si bien a primera vista parece correcta, yo optaría por usar un constructor más acorde con lo que vas a hacer.
Mira esto por ejemplo:
https://randomnerdtutorials.com/esp32-esp8266-mysql-database-php/

Donde verás que usa métodos como
int httpResponseCode = http.POST(httpRequestData);
que creo que es bastante más limpio que montar la cabecera poco a poco.

También existe la posibilidad de atacar directamente a mysql sin pasar por PHP aunque esto por LAN (red local) sería correcto, no lo aconsejaría por WAN (internet) por temas de seguridad.
https://forum.arduino.cc/t/arduino-does-not-connect-to-mysql-database/580123/2

Y asegúrate que no tengas problemas de firewall en el servidor que tiene PHP. Esto lo puedes probar desde otro equipo.

Moderador:
Por favor, lee las Normas del foro y edita tu código/error del post#5 usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>


Muchas gracias lo voy a intentar y luego te diré como quedó.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.