PM-G7(compatible PMS7003) Laser PM2.5 DUST SENSORHigh-precision laser dust concentration sensor digital dust particles G7 (Inculd cable)
Laser PM2.5 DUST SENSOR PM-G7 Thin shape Laser digital PM2.5 sensor (Inculd transfer board + cable)
Main characteristics
Zero false alarm rate
Real-time response
Correct data
Minimum distinguishable particle diameter :0.3 micrometer
High anti-interference performance because of the patent structure of six
sides shielding
Optional direction of air inlet and outlet in order to adapt the different
design
Very Slim
Overview
PM-G7 is a kind of digital and universal particle concentration sensor,
which can be used to obtain the number of suspended particles in the air,
i.e. the concentration of particles, and output them in the form of digital
interface. This sensor can be inserted into variable instruments related to
the concentration of suspended particles in the air or other environmental
improvement equipments to provide correct concentration data in time.
*
https://aqicn.org/sensor/pms5003-7003/https://github.com/fu-hsi/PMShttps://github.com/MartyMacGyver/PMS7003-on-Particlehttps://github.com/MartyMacGyver/PMS7003-on-Particle/blob/master/pms7003-photon-demo-1/pms7003-photon-demo-1.ino*



#include "PMS.h"
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
#include "SoftwareSerial.h"
SoftwareSerial mySerial(10, 11); // RX, TX
LiquidCrystal_I2C lcd27(0x27,20,4);
long int counter = 1;
//PMS pms(Serial);
PMS pms(mySerial);
PMS::DATA data;
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
lcd27.begin();
// Print a message to the LCD.
lcd27.backlight();
lcd27.home ();
//-------- PCF8574T
lcd27.setCursor(1,0);
lcd27.print("PM2.5 PM-G7/PMS7003");
lcd27.setCursor(0,1);
lcd27.print("LCD 0x27");
}
void loop()
{
if (pms.read(data))
{
lcd27.setCursor(0,0);
lcd27.print("PM1.0 (ug/m3): "); lcd27.print(data.PM_AE_UG_1_0);
lcd27.setCursor(0,1);
lcd27.print("PM2.5 (ug/m3): ");lcd27.print(data.PM_AE_UG_2_5);
lcd27.setCursor(0,2);
lcd27.print("PM10.0(ug/m3): "); lcd27.print(data.PM_AE_UG_10_0);
lcd27.setCursor(0,3);
lcd27.print("counter : "); lcd27.print(counter);
counter++;
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 "Wire.h"
#include "LiquidCrystal_I2C.h"
#include "SoftwareSerial.h"
SoftwareSerial mySerial(10, 11); // RX, TX
LiquidCrystal_I2C lcd27(0x27,20,4);
#define BUZZER 8
long int counter = 1;
//PMS pms(Serial);
PMS pms(mySerial);
PMS::DATA data;
void LCD_clear(uint8_t line)
{
lcd27.setCursor(0,line);
// ("12345678901234567890");
lcd27.print(" ");
lcd27.setCursor(0,line);
}
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
pms.passiveMode(); // Switch to passive mode
pinMode(BUZZER, OUTPUT);
digitalWrite(BUZZER, HIGH);
lcd27.begin(); lcd27.backlight();
lcd27.home ();
LCD_clear(0); lcd27.print("PM-G7,PMS7003/5003");
LCD_clear(1); lcd27.print("LCD ADDRESS 0x27");
LCD_clear(3); lcd27.print("C:");
}
void loop()
{
Serial.println("Waking up, wait 30 seconds for stable readings...");
pms.wakeUp();
digitalWrite(BUZZER, LOW); delay(150); digitalWrite(BUZZER, HIGH);
lcd27.setCursor(12,3); lcd27.print(" ");
for(uint8_t i =0; i<30; i++) {
delay(1000);
Serial.print(".");
lcd27.setCursor(12,3); lcd27.print("Wait: " +String(i) );
}
Serial.println();
Serial.println("Send read request...");
pms.requestRead();
Serial.println("Wait max. 1 second for read...");
//if (pms.read(data))
if (pms.readUntil(data))
{
LCD_clear(0);
lcd27.print("PM1.0:" + String(data.PM_AE_UG_1_0) + " (ug/m3)");
LCD_clear(1);
lcd27.print("PM2.5:" + String(data.PM_AE_UG_2_5) + " (ug/m3)");
LCD_clear(2);
lcd27.print("PM10 :" + String(data.PM_AE_UG_10_0) + " (ug/m3)");
LCD_clear(3);
lcd27.print("C:" + String(counter) );
counter++;
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();
} else {
Serial.println("No data.");
LCD_clear(2);
lcd27.print("------No data------");
}
Serial.println("Going to sleep for 60 seconds.");
pms.sleep();
lcd27.setCursor(12,3); lcd27.print(" ");
for(uint8_t i =0; i<60; i++) {
lcd27.setCursor(12,3); lcd27.print("Sleep:" +String(i) );
Serial.print(".");
delay(1000);
}
Serial.println();
}
//------------------------------------------------------------------------------------------------------------------