sending array values to mysql database using T4.0 controller

Lavanya rajan

Well-known member
Hello All,

I'm attempting to send two arrays, each containing 512 elements, to a MySQL database table. However, upon inspection via the serial monitor, I noticed that only 160 values are being printed for both the 'xarray' and 'yarray'. I'm sending this array data as JSON to the MySQL database. Could someone kindly investigate and provide guidance on resolving this issue

Code:
#include <ArduinoJson.h>

String SSID = "xxx";
String PASSWORD = "xxx";
bool prntln = false;
String HOST_NAME = "xxxx";

unsigned long previousMillis = 0;
const long interval = 1000; // Send data every 1 second
StaticJsonDocument<5256> doc;
JsonArray xvalues = doc.createNestedArray("x");
JsonArray yvalues = doc.createNestedArray("y");

void sendCommand(String command, unsigned long timeout);

void setup() {
  Serial.begin(115200);
  Serial1.begin(115200);  // Use Serial1 for communication with the ESP8266
  delay(2000);
  flushSerial();
  delay(200);
  Serial.println(F("Started"));

  // Check communications with the ESP8266
  Serial.println("Checking ESP8266 Version...");
  sendCommand("AT+GMR", 5000);

  Serial.println("Checking AT...");
  sendCommand("AT", 5000);

  Serial.println("Checking CWMODE...");
  sendCommand("AT+CWMODE?", 5000);

  Serial.println("Set to Station Mode...");
  sendCommand("AT+CWMODE=1", 5000);

  Serial.println("Join WiFi....");
  String joinstring = "AT+CWJAP=\"";
  joinstring += SSID + "\",\"";
  joinstring += PASSWORD + "\"";
  sendCommand(joinstring, 7000);

  Serial.println("Get IP Address...");
  sendCommand("AT+CIFSR", 7000);

  doc["frequency"] = 120.5;
}

void loop() {
  datapopulate();
  postdata(doc);
}

void datapopulate() {
  // Clear the arrays before adding new data
 

  // Populate arrays with random values
   for (int i = 0; i < 512; i++) {
    // Add values to arrays
    xvalues.add(i); // Generate values from 0 to 511
    yvalues.add(random(500)); // Generate random values for y
  }
}

void postdata(StaticJsonDocument<5256> doc) {
  // Serialize JSON document
  String jsonPayload;
  serializeJson(doc, jsonPayload);

  // Print JSON payload
  Serial.println("JSON Payload:");
  Serial.println(jsonPayload);

  // Send HTTP request
  Serial.println("Connecting to xxxx...");
  sendCommand("AT+CIPSTART=\"TCP\",\"xxxx\",80", 10000);

  String data = "POST /esp32s3/json.php HTTP/1.1\r\n";
  data += "Host: " + HOST_NAME + "\r\n";
  data += "Content-Type: application/json\r\n";
  data += "Content-Length: " + String(jsonPayload.length()) + "\r\n\r\n";
  data += jsonPayload;

  Serial.println("HTTP Request:");
  Serial.println(data);

  // Send the HTTP request
  String sendRequest = "AT+CIPSEND=";
  sendRequest += String(data.length());
  sendCommand(sendRequest, 5000);
  sendCommand(data, 5000);
  delay(100); // Small delay between sending each array element
}

void sendCommand(String command, unsigned long timeout) {
  Serial1.println(command);  // Use Serial1 for communication with the ESP8266
  if (recFind("OK", timeout, true)) {
    Serial.println("Success");
  } else {
    Serial.println("Failed");
  }
}

void flushSerial() {
  while (Serial1.available() >= 1) {
    Serial1.read();
  }
}

bool recFind(String target, uint32_t timeout, bool prntln) {
  char rdChar = "";
  String rdBuff = "";
  unsigned long startMillis = millis();
  while (millis() - startMillis < timeout) {
    while (Serial1.available() > 0) {
      rdChar = Serial1.read();
      rdBuff += rdChar;
      if (prntln) {
        Serial.write(rdChar);
      }
      if (rdBuff.indexOf(target) != -1) {
        break;
      }
    }
    if (rdBuff.indexOf(target) != -1) {
      return true;
    }
  }
  return false;
}
 
How long is the jsonPayload? i.e. the Content-Length header?
this is the serial output


Code:
JSON Payload:

{"x":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162],"y":[430,191,415,372,261,341,110,337,98,441,94,280,426,396,310,288,159,305,484,14,326,213,83,154,187,341,46,337,153,219,360,451,154,478,94,376,191,456,460,294,262,380,7,437,266,490,407,412,458,426,426,40,214,236,245,414,499,345,87,220,346,318,297,275,12,128,303,371,396,311,3,129,112,52,331,383,292,322,268,65,253,173,476,294,491,76,491,479,161,343,318,363,74,203,329,450,36,259,269,295,22,332,155,376,409,104,135,408,227,333,144,157,229,114,308,466,326,99,27,61,475,86,334,190,499,482,440,154,14,235,413,392,323,259,47,462,465,30,207,374,295,171,237,301,41,145,143,117,342,341,275,6,411,91,29,24,215,478,7,452,484,239],"frequency":120.5}

Connecting to cmti-edge.online...

AT+CIPSTART="TCP","cmti-edge.online",80


CONNECT



OKSuccess

HTTP Request:

POST /esp32s3/json.php HTTP/1.1

Host: cmti-edge.online

Content-Type: application/json

Content-Length: 1187



{"x":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162],"y":[430,191,415,372,261,341,110,337,98,441,94,280,426,396,310,288,159,305,484,14,326,213,83,154,187,341,46,337,153,219,360,451,154,478,94,376,191,456,460,294,262,380,7,437,266,490,407,412,458,426,426,40,214,236,245,414,499,345,87,220,346,318,297,275,12,128,303,371,396,311,3,129,112,52,331,383,292,322,268,65,253,173,476,294,491,76,491,479,161,343,318,363,74,203,329,450,36,259,269,295,22,332,155,376,409,104,135,408,227,333,144,157,229,114,308,466,326,99,27,61,475,86,334,190,499,482,440,154,14,235,413,392,323,259,47,462,465,30,207,374,295,171,237,301,41,145,143,117,342,341,275,6,411,91,29,24,215,478,7,452,484,239],"frequency":120.5}



AT+CIPSEND=1300




OKSuccess
 
You know the clear arrays code is absent? Could that be the issue? Can't see anything obvious otherwise.
 
Back
Top