Sensor response interface protocol
#include "PMS.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(12, 13); //Uno Rx Tx (12 13) = SoftwareSerial
PMS pms(mySerial);
PMS::DATA data;
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
if (pms.read(data))
{
Serial.println("Data:");
Serial.print("PM 1.0 (ug/m3): ");
Serial.println(data.PM_AE_UG_1_0);
Serial.print("PM 2.5 (ug/m3): ");
Serial.println(data.PM_AE_UG_2_5);
Serial.print("PM 10.0 (ug/m3): ");
Serial.println(data.PM_AE_UG_10_0);
Serial.println();
}
}
#include "PMS.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(12, 13); //Uno Rx Tx (12 13) = SoftwareSerial
PMS pms(mySerial);
PMS::DATA data;
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
pms.passiveMode(); // Switch to passive mode
}
void loop()
{
Serial.println("Wake up, wait 30 seconds for stable readings...");
pms.wakeUp();
delay(30000);
Serial.println("Send request read...");
pms.requestRead();
Serial.println("Wait max. 10 seconds for read...");
if (pms.read(data, 10000))
{
Serial.println("Data:");
Serial.print("PM 1.0 (ug/m3): ");
Serial.println(data.PM_AE_UG_1_0);
Serial.print("PM 2.5 (ug/m3): ");
Serial.println(data.PM_AE_UG_2_5);
Serial.print("PM 10.0 (ug/m3): ");
Serial.println(data.PM_AE_UG_10_0);
}
else
{
Serial.println("No data.");
}
Serial.println("Going to sleep for 60 seconds.");
pms.sleep();
delay(60000);
}