Problemas al Reportar datos por WIFI (ESP32)

Buenas tardes comunidad, me gustaría saber si alguien me podría ayudar con un problema con un ESP32, lo que pasa es que estoy intentando recibir los datos sensados por un acelerómetro en un celular android a través de una app de wifi serial, lo que pasa es que mi codigo funciona a la perfección como dataloger, pero haciendo mi ESP32 un server y conectando el celular a este, solo reporta un dato y la gracia de mi sensor es que reporta muchos datos por segundo, agradecería si alguien me podría ayudar con este error, ya que, el sensor de por si funciona espectacular.

#include <WiFi.h>
#include <Wire.h>
#include <RTClib.h>
#include <MPU9250_asukiaaa.h>
#include <SD.h>
#include <SPI.h>

#ifdef _ESP32_HAL_I2C_H_
#define SDA_PIN_1 21
#define SCL_PIN_1 22
#define SDA_PIN_2 21
#define SCL_PIN_2 22
#define SD_CS_PIN 5  // Pin CS del módulo MicroSD, puedes cambiarlo según tu conexión.
#endif
const char* ssid = "Server Acelerómetro";
const char* password = "12345678";
WiFiServer server(80);

RTC_DS3231 rtc; // Dirección de RTC es 0x57
MPU9250_asukiaaa mySensor(0x69);  // Dirección I2C del MPU9250 es 0x68

void setup() {
  Serial.begin(115200);
  // Configurar el ESP32 como punto de acceso
  WiFi.softAP(ssid, password);

  // Obtener la dirección IP del ESP32 en el punto de acceso
  IPAddress IP = WiFi.softAPIP();
  Serial.print("Dirección IP del AP: ");
  Serial.println(IP);

  // Iniciar el servidor
  server.begin();
  // Inicialización de I2C para el RTC
  Wire.begin(SDA_PIN_1, SCL_PIN_1);
  mySensor.setWire(&Wire);

  // Inicialización de I2C para el MPU9250
  Wire.begin(SDA_PIN_2, SCL_PIN_2);
  mySensor.setWire(&Wire);
  mySensor.beginAccel();

  // Inicialización del módulo MicroSD
  if (!SD.begin(SD_CS_PIN)) {
    Serial.println("Error al inicializar la tarjeta SD.");
    return;
  }

  if (!rtc.begin()) {
    Serial.println("No se pudo encontrar RTC");
    while (1);
  }
  if (rtc.lostPower()) {
    Serial.println("RTC perdió energía, seteando tiempo");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  DateTime now = rtc.now();

  int result;
  result = mySensor.accelUpdate();
  if (result == 0 ) {   
    float aX = mySensor.accelX();
    float aY = mySensor.accelY();
    float aZ = mySensor.accelZ();
    float aSqrt = mySensor.accelSqrt();

    // Imprimir en el monitor
    Serial.print(now.day());
    Serial.print('/');
    Serial.print(now.month());
    Serial.print('/');
    Serial.print(now.year());
    Serial.print(",");
    Serial.print(now.hour());
    Serial.print(':');
    Serial.print(now.minute());
    Serial.print(':');
    Serial.print(now.second());
    Serial.print(",");
    Serial.println(String(aX) + "," + String(aY) + "," + String(aZ) + "," + String(aSqrt));


    // Escribir en la tarjeta MicroSD
    File dataFile = SD.open("/datos.txt", FILE_APPEND);
    if (dataFile) {
      dataFile.print(now.day());
      dataFile.print('/');
      dataFile.print(now.month());
      dataFile.print('/');
      dataFile.print(now.year());
      dataFile.print(",");
      dataFile.print(now.hour());
      dataFile.print(':');
      dataFile.print(now.minute());
      dataFile.print(':');
      dataFile.print(now.second());
      dataFile.print(",");
      dataFile.println(String(aX) + "," + String(aY) + "," + String(aZ) + "," + String(aSqrt));
      dataFile.close();
    }
    else {
      Serial.println("Error al abrir el archivo en la tarjeta SD.");    
    }    
    WiFiClient client = server.available();
    while (client) {
      Serial.println("Cliente conectado");

      // Enviar datos al cliente
      client.println(String(aX) + "," + String(aY) + "," + String(aZ) + "," + String(aSqrt));

      // Esperar un breve momento para que el cliente reciba los datos
      delay(10);

      // Cerrar la conexión
      client.stop();
      Serial.println("Cliente desconectado");
    }

    delay(300);
  } else {
    Serial.println("Cannot read accel values " + String(result));
  } 
}

comprendo que el error debe estar en el codigo de la parte de wifi, pero igual me serviría de ayuda de alguie que tenga dominion en el tema, desde ya, muchas gracias.

Al momento de conectar el celular al ESP32 me printea lo siguiente el monitor serial:
image

Y esto es lo que me printea la app wifi serial monitor (como se puede apreciar es el ultimo dato antes de conectar el disp al ESP32):
image

En caso de que la categoría sea incorrecta, favor de modificar.

If you want help in spanish report your post to a moderator to move your post to the spanish sub-forum

Mira como se establece un servidor ESP32

Te falta el encabezamiento HTML

todavía este ejemplo se ajusta mas a tu necesidad. Olvida el primero

Ajusta las librerías y saldrá funcionando con algunos detalles.

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