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;
}
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);
}
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.
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 </>