Do you want to see your data displayed in the following format? If yes, upload the sketch given below. This sketch looks for the header (0x424D) and then accepts the remaining incoming data bytes.

Sketch
#include<SoftwareSerial.h>
SoftwareSerial SUART(4, 5); //SRX=DPin-4, STX=DPin-5
bool flag1 = false;
bool flag2 = false;
byte rxData[30];
void setup()
{
Serial.begin(9600);
SUART.begin(9600);
}
void loop()
{
byte n = SUART.available();
{
if (n != 0)
{
if (flag2 == false)
{
if (flag1 == false)
{
byte x = SUART.read();
if (x == 0x42)
{
flag1 = true;
}
}
else
{
byte x = SUART.read();
if (x == 0x4D)
{
flag2 = true;
}
}
}
else
{
byte m = SUART.readBytesUntil('\n', rxData, 30);
Serial.print("Standard Smoke CV1: "); Serial.println(rxData[2]<<8|rxData[3]);
Serial.print("Standard Smoke CV2: "); Serial.println(rxData[4]<<8|rxData[5]);
Serial.print("Standard Smoke CV3: "); Serial.println(rxData[6]<<8|rxData[7]);
Serial.println();
Serial.print("Enviorment CV1: "); Serial.println(rxData[8]<<8|rxData[9]);
Serial.print("Enviorment CV2: "); Serial.println(rxData[10]<<8|rxData[11]);
Serial.print("Enviorment CV3: "); Serial.println(rxData[12]<<8|rxData[13]);
// for (int i = 0; i < m; i++)
// {
// Serial.print(rxData[i], HEX);
// Serial.print(' ');
// }
memset(rxData, 0x00, 30);
flag1 = false;
flag2 = false;
Serial.println();
Serial.println("==================================");
}
}
}
}
Dust Sensor Simulation Codes using NANO
#include<SoftwareSerial.h>
SoftwareSerial SUART(4, 5); //SRX=DPin-4, STX=DPin-5
byte txData[] =
{
0x42, 0x4D, 0x00, 0x1C, 0x00, 0x1F, 0x00, 0x22,
0x00, 0x25, 0x00, 0x21, 0x00, 0x24, 0x00, 0x27,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x01, 0x89
};
void setup()
{
Serial.begin(9600);
SUART.begin(9600);
}
void loop()
{
SUART.write(txData, sizeof(txData));
delay(1000);
}
