Arduino programming uses esp8266 as the TCP client and python programming as the TCP server,the transmission will be stuttered every once in a while

sometimes some empty packets and incomplete data are received, and the most importantly the data transmission will be stuttered every once in a while,,which greatly affects the experimental data acquisition.please help me.
image

#include <JY901.h>
#include <ESP8266WiFi.h>                        // ESP8266WiFi library
/*
Test on Uno R3.
JY901   UnoR3
TX <---> 0(Rx)
*/
const char* ssid     = "zzz";                // WiFi ssid
const char* password = "12345678";             // password

void setup() 
{
  Serial.begin(9600);
	JY901.attach(Serial);
  WiFi.mode(WIFI_STA);                          // Set the Wifi working mode to STA, and the default is AP+STA mode
  WiFi.begin(ssid, password);                   // connect to WIFI
  Serial.print("\r\nConnecting to ");           // The serial monitor outputs network connection information
  Serial.print(ssid); Serial.println(" ...");   // 
  
  int i = 0;                                    // 
  while (WiFi.status() != WL_CONNECTED)         // 
  {                                             // 
    delay(1000);                                // check WiFi.status() return value every 1 second
    Serial.print("waiting for ");                          
    Serial.print(i++); Serial.println("s...");       
  }                                             
                                               
  Serial.println("");                           // WiFi connected successfully
  Serial.println("WiFi connected!");            // 
  Serial.print("IP address: ");                 // 
  Serial.println(WiFi.localIP());               // 
}

const char* host = "192.168.111.167";
const uint16_t port = 7788;

void loop() 
{
  /* create a new WiFiClient as TCP client */
  JY901.receiveSerialData();
  WiFiClient tcpclient;

  /* Establish a TCP connection */
  if (!tcpclient.connect(host, port)) {
    Serial.println("connection failed");        // if connection failed,print info 
    return;
  }
  /*connect success,send data*/
  if (tcpclient.connected()) {
    /*send to server-----acceleration*/
    Serial.println("connection succeed");
    tcpclient.print("Acc:");
    tcpclient.print(JY901.getAccX());
    tcpclient.print(" ");
    tcpclient.print(JY901.getAccY());
    tcpclient.print(" ");
    tcpclient.print(JY901.getAccZ());
    tcpclient.print("\n");
    /*send to server-----angular velocity*/
    tcpclient.print("Gyro:");
    tcpclient.print(JY901.getGyroX());
    tcpclient.print(" ");
    tcpclient.print(JY901.getGyroY());
    tcpclient.print(" ");
    tcpclient.print(JY901.getGyroZ());
    tcpclient.print("\n");
    /*send to server-----angle*/
    tcpclient.print("Angle:");
    tcpclient.print(JY901.getRoll());
    tcpclient.print(" ");
    tcpclient.print(JY901.getPitch());
    tcpclient.print(" ");
    tcpclient.print(JY901.getYaw());
    tcpclient.print("\n");
  }

}

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