Optional direction of air inlet and outlet in order to adapt the different design
Specification
Operating Voltage: 5.0VDC
Active Current: 100 mA
Standby Current: ≤200 uA
Interface Level: L< 0.8V@3.3V ; H> 2.7V@3.3V
Particle Range of measurement: 0.3 ~ 1.0μm; 1.0 ~ 2.5μm; 2.5 ~ 10μm
Particle Counting Efficiency: 50%@0.3μm 98%@>=0.5μm
Particle Effective Range (PM2.5 standard): 0 ~ 500μg/m
Particle Maximum Range (PM2.5 standard): >0 ~ 2000ug / m3
Particle Resolution: 1ug / m3
Particle Maximum Consistency Error (PM2.5 standard data):
±10%@100~500μg/m3
±10μg/m3@0~100μg/m3
Particle Standard Volume: 0.1 L
Formaldehyde Effective Range: 0 ~ 1 mg / m3
Formaldehyde Maximum Range: 0 ~ 2 mg / m3
Formaldehyde Resolution: 0.001
Formaldehyde Maximum Consistency Error: <± 5%
Temperature Maximum Range: -10~50 °C
Temperature Resolution: 0.1 °C
Temperature Maximum Error: ± 0.5 °C
Humidity Maximum Range: 0 ~ 99%
Humidity Resolution: 0.1%
Humidity Maximum Error: ± 2%
Default Baud rate: 9600bps
Total Response time: ≤ 10s
Operating Temperature Range: -10 ~ +60 °C
Working Humidity Range: 0~99%
MTTF: ≥ 3 years
Dimension: 50x38x21 mm / 1.97x1.50x0.83 inches
Weight: 50g
#include <SoftwareSerial.h>
SoftwareSerial Serial1(10, 11); // Software RX, TX
char col;
unsigned int PMSa = 0,FMHDSa = 0,TPSa = 0,HDSa = 0,PMSb = 0,FMHDSb = 0,TPSb = 0,HDSb = 0;
unsigned int PMS = 0,FMHDS = 0,TPS = 0,HDS = 0,CR1 = 0,CR2 = 0;
unsigned char buffer_RTT[40]={}; //Serial buffer; Received Data
char tempStr[15];
void setup()
{
Serial.begin(115200);
Serial1.begin(9600);
}
void loop()
{
while(!Serial1.available());
while(Serial1.available()>0) //Data check: weather there is any Data in Serial1
{
for(int i=0;i<40;i++)
{
col =Serial1.read();
buffer_RTT[i]=(char)col;
delay(2);
}
Serial1.flush();
CR1 =(buffer_RTT[38]<<8) + buffer_RTT[39];
CR2 = 0;
for(int i=0;i<38;i++)
CR2 += buffer_RTT[i];
if(CR1 == CR2) //Check
{
PMSa=buffer_RTT[12]; //Read PM2.5 High 8-bit
PMSb=buffer_RTT[13]; //Read PM2.5 Low 8-bit
PMS=(PMSa<<8)+PMSb; //PM2.5 value
FMHDSa=buffer_RTT[28]; //Read Formaldehyde High 8-bit
FMHDSb=buffer_RTT[29]; //Read Formaldehyde Low 8-bit
FMHDS=(FMHDSa<<8)+FMHDSb; //Formaldehyde value
TPSa=buffer_RTT[30]; //Read Temperature High 8-bit
TPSb=buffer_RTT[31]; //Read Temperature Low 8-bit
TPS=(TPSa<<8)+TPSb; //Temperature value
HDSa=buffer_RTT[32]; //Read Humidity High 8-bit
HDSb=buffer_RTT[33]; //Read Humidity Low 8-bit
HDS=(HDSa<<8)+HDSb; //Humidity value
}
else
{
PMS = 0;
FMHDS = 0;
TPS = 0;
HDS = 0;
}
}
Serial.println("-----------------------uart--------------------------");
Serial.print("Temp : ");
sprintf(tempStr,"%d%d.%d",TPS/100,(TPS/10)%10,TPS%10);
Serial.print(tempStr);
Serial.println(" C"); //Serial pring Temperature
Serial.print("RH : ");
sprintf(tempStr,"%d%d.%d",HDS/100,(HDS/10)%10,HDS%10);
Serial.print(tempStr); //Serial print humidity
Serial.println(" %");
Serial.print("HCHO : ");
Serial.print(FMHDS);
Serial.println(" ug/m3"); //Serial print formaldehyde, unit: ug/m³
Serial.print("PM2.5: ");
Serial.print(PMS);
Serial.println(" ug/m3"); //Serial print PM2.5, unit: ug/m³
Serial.println();
}