7 in 1 soil sensor problems

I have a problem regarding my 7 in 1 soil sensor but i dont know if this is product defect or in coding itself. To understand further about my problem please watch my video till end so you can see my serial monitor output (2023-09-07 02-13-02.mkv - Google Drive)

Here is the code i used

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);  // RX, TX

void setup() {
  Serial.begin(9600);
  mySerial.begin(4800); // NPK communicates at 4800 bps
}

void loop()
{
  byte queryData[] {0x01,0x03,0x00,0x00,0x00,0x07,0x04,0x08};
  byte receivedData[19];
  mySerial.write(queryData,sizeof(queryData)); // send query data to NPK
  delay (1000);
 if (mySerial.available() >= sizeof(receivedData)) {  // Check if there are enough bytes available to read
    mySerial.readBytes(receivedData, sizeof(receivedData));  // Read the received data into the receivedData array

  // Print the received data in HEX format
for (int i = 0; i < sizeof(receivedData); i++) {
      Serial.print(receivedData[i], HEX);
      Serial.print(" ");
    }
    Serial.println();
  }
}

im not sure also if all 7 in 1 soil sensors from different manufacturers have the same inquiry frame especially for those branded 7 in 1 soil sensor and imitation. Also the output from the youtuber that i used as reference of the code is having good output (https://www.youtube.com/watch?v=nGvaAZSIQaA). I hope someone can help me

which one?

try this

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);  // RX, TX

void setup() {
  Serial.begin(9600);
  mySerial.begin(4800); // NPK communicates at 4800 bps
  while (mySerial.available() > 0)mySerial.read();
}

void loop(){
  const byte nineteen=19;
  const byte queryData[] {0x01, 0x03, 0x00, 0x00, 0x00, 0x07, 0x04, 0x08};
  static byte receivedData[nineteen];

  mySerial.write(queryData, sizeof(queryData)); // send query data to NPK

  while (mySerial.available() < nineteen);  // Check if there are enough bytes available to read

  mySerial.readBytes(receivedData, nineteen);  // Read the received data into the receivedData array
  while (mySerial.available() > 0)mySerial.read();

  // Print the received data in HEX format
  for (int i = 0; i < nineteen; i++) {
    Serial.print(receivedData[i], HEX);
    Serial.print(" ");
  }
  Serial.println();

}