The interfacing of PMS5003 with Arduino is pretty easy. You just need 4 connections. Connect PIN1 VCC of PMS5003 to Arduino 5V Pin and PIN2 ...
Share
Facebook
Twitter
LinkedIn
Pinterest
Reddit
Skype
Messenger
Messenger
WhatsApp
Telegram
ShareviaEmail
Print
Inthistutorial,welearnhowtointerfacePMS5003PM2.5AirQualitySensorwithArduino.WewillmakeasimpleArduinoCodeandmeasurethedustparticleconcentrationintheairwithsizeandquantityforPM1.0,PM2.5,andPM10.PMS5003isakindofdigitalanduniversalparticleconcentrationsensor,whichcanbeusedtoobtainthenumberofsuspendedparticlesintheair,i.e.theconcentrationofparticles,andoutputofthemintheformofdigitalinterface.
Checktheadvancedversionofthisprojecthere:IoTBasedAirPollution/QualityMonitoringwithESP8266
TableofContents1Overview2BillofMaterials3PMS5003AirQualitySensor3.1Overview3.2WorkingPrinciple3.3PM5003Pins4InterfacingPMS5003PM2.5AirQualitySensorwithArduino5SourceCode/Program6InterfacingPMS5003PM2.5AirQualitySensorwithArduino&LCDDsiplay7SourceCode/Program8VideoTutorial&Explanation
Overview
PM2.5andPM10refertoparticulatematterwithparticlediameterupto2.5micronsand10micronsrespectivelyandareamongthemostdangerousairpollutants.Duetotheirsmallsize,PM2.5particlescantraveldeepintothehumanlungandcauseavarietyofhealthissues;forinstance,bytriggeringasthmaattacksorcontributingtocardiovasculardisease.
HighconcentrationsofdustorPMisaserioushealthconcern.PM2.5islessthan2.5micronsindiameter,andPM10islessthan10micronsindiameter.ThismeansaPM10reportincludesPM2.5aswell.Boththeseparticlesaremuchsmallerthanahumanhair,whichisabout70micronsinwidth.
PM10:Operationssuchasstonecrushing,coalgrinding,rotarykilninginthecementindustry,anddustonroadstirredbymovingvehiclescanincreasePM10levels.PM10limitfor24-houraverageis150µg/m3.
PM2.5:Thisisaresultoffineparticlesproducedfromalltypesofcombustion,includingmotorvehicles,thermalpowerplants,residentialwoodburning,forestfires,agriculturalburning,andotherindustrialprocesses.PM2.5limitfor24-houraverageis35µg/m3.
SoformeasuringtheParticulateMattersizeofPM1.0,PM2.5&PM10weareusingPlantpowerPMS5003DustSensor.YoucanalsouseotherPlantpowerPMSx003SensorlikePMS1003,PMS3003,PMS5003,PMS6003&PMS7003.ThecodegivenbelowsupportsallthesemodelswithArduino.
BillofMaterials
Youneedtopurchasethefollowingcomponentsifyouwanttomakethisproject.AllthecomponentscanbesailypurchasedfromAmazon.
S.N.ComponentsDescriptionQuantity
1ArduinoBoardArduinoUNOR3DevelopmentBoard1https://amzn.to/2YQk9yA
2PM2.5/PM10SensorPMS50031https://amzn.to/2ILUDll
3LCDDisplayJHD204A20X4LCDDisplay1https://amzn.to/2YPGe07
4Potentiometer10K1https://amzn.to/3bmnZ5c
5ConnectingWiresJumperWires10https://amzn.to/2L8Xc1p
6Breadboard-1https://amzn.to/2YM6YyS
PMS5003AirQualitySensor
Overview
ThePlantowerPMS5003isalow-costlaserparticlecounter,oneofarangeofsensorsbyPlantowerthatalsoincludethePMS1003,PMS3003,andPMS7003.PMS5003isakindofdigitalanduniversalparticleconcentrationsensor,whichcanbeusedtoobtainthenumberofsuspendedparticlesintheair,i.e.theconcentrationofparticles,andoutputthemintheformofadigitalinterface.Thissensorcanbeinsertedintovariableinstrumentsrelatedtotheconcentrationofsuspendedparticlesintheairorotherenvironmentalimprovementequipmenttoprovidecorrectconcentrationdataintime.
WorkingPrinciple
Laserscatteringprincipleisusedforsuchsensor,i.e.producescatteringbyusingalasertoradiatesuspendingparticlesintheair,thencollectscatteringlightinacertaindegree,andfinallyobtainthecurveofscatteringlightchangewithtime.Intheend,equivalentparticlediameterandthenumberofparticleswithdifferentdiametersperunitvolumecanbecalculatedbymicroprocessor-basedonMIEtheory.
PM5003Pins
SomeofthePM2.5pinsarenumberedfromlefttorightas1,2,3……8.ButincaseofPM5003,thepinsarenamedfromrighttoleft.BecarefulwhileconnectingPM5003pinsasyoumightconnectitreversely.
Pin
Function
Description
Remarks
1
VCC
Supplyvoltage5V
4.5–5.5V
2
GND
Ground
3
SET
HIGHorSUSPENDED–workmode
LOW–sleepmode
3.3Vlogic
4
RXD
UART/TTLdatarecieve
3.3Vlogic
5
TXD
UART/TTLdatatransmit
3.3Vlogic
6
Reset
LOWtoreset
3.3Vlogic
7
NC
Notconnected
8
NC
Notconnected
SomeofthePMSx003Sensorscomeswithconnectorslikeshownbelow:
Incaseifyoudon’thavetheconnectorwithyou,thensimplyyoucancuttheconnectorwiththescissorsandsolderthehardwirethatcanbeinsertedeasilyonArduinoBoardorbreadboard.
InterfacingPMS5003PM2.5AirQualitySensorwithArduino
TheinterfacingofPMS5003withArduinoisprettyeasy.Youjustneed4connections.ConnectPIN1VCCofPMS5003toArduino5VPinandPIN2GNDtoGNDofArduino.TheUARTPin,i.ePIN4Rx&PIN5TxisconnectedtoArduinopin3&4respectivelyasshowninthefigurebelow.
ThePlantowersensorsoutputserialdataat9600baudthatcanbereadbymanycomputersandcanbeconnectedtoaPCviaaUSBadaptorsuchasthisUSB2.0toTTLUARTSerialConverterCP2102.
SourceCode/Program
ThesourcecodeforinterfacingPM2.5PMS5003withArduinoisgivenbelow.SimplycopythecodeanduploadtotheArduinoUNOBoard.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
#includeSoftwareSerialpmsSerial(2,3); voidsetup(){ //ourdebuggingoutput Serial.begin(115200); //sensorbaudrateis9600 pmsSerial.begin(9600);} structpms5003data{ uint16_tframelen; uint16_tpm10_standard,pm25_standard,pm100_standard; uint16_tpm10_env,pm25_env,pm100_env; uint16_tparticles_03um,particles_05um,particles_10um,particles_25um,particles_50um,particles_100um; uint16_tunused; uint16_tchecksum;}; structpms5003datadata; voidloop(){ if(readPMSdata(&pmsSerial)){ //readingdatawassuccessful! Serial.println(); Serial.println("---------------------------------------"); Serial.println("ConcentrationUnits(standard)"); Serial.print("PM1.0:");Serial.print(data.pm10_standard); Serial.print("\t\tPM2.5:");Serial.print(data.pm25_standard); Serial.print("\t\tPM10:");Serial.println(data.pm100_standard); Serial.println("---------------------------------------"); Serial.println("ConcentrationUnits(environmental)"); Serial.print("PM1.0:");Serial.print(data.pm10_env); Serial.print("\t\tPM2.5:");Serial.print(data.pm25_env); Serial.print("\t\tPM10:");Serial.println(data.pm100_env); Serial.println("---------------------------------------"); Serial.print("Particles>0.3um/0.1Lair:");Serial.println(data.particles_03um); Serial.print("Particles>0.5um/0.1Lair:");Serial.println(data.particles_05um); Serial.print("Particles>1.0um/0.1Lair:");Serial.println(data.particles_10um); Serial.print("Particles>2.5um/0.1Lair:");Serial.println(data.particles_25um); Serial.print("Particles>5.0um/0.1Lair:");Serial.println(data.particles_50um); Serial.print("Particles>10.0um/0.1Lair:");Serial.println(data.particles_100um); Serial.println("---------------------------------------"); }} booleanreadPMSdata(Stream*s){ if(!s->available()){ returnfalse; } //Readabyteatatimeuntilwegettothespecial'0x42'start-byte if(s->peek()!=0x42){ s->read(); returnfalse; } //Nowreadall32bytes if(s->available()<32){ returnfalse; } uint8_tbuffer[32]; uint16_tsum=0; s->readBytes(buffer,32); //getchecksumready for(uint8_ti=0;i<30;i++){ sum+=buffer[i]; } /*debugging for(uint8_ti=2;i<32;i++){ Serial.print("0x");Serial.print(buffer[i],HEX);Serial.print(","); } Serial.println(); */ //Thedatacomesinendian'd,thissolvesitsoitworksonallplatforms uint16_tbuffer_u16[15]; for(uint8_ti=0;i<15;i++){ buffer_u16[i]=buffer[2+i*2+1]; buffer_u16[i]+=(buffer[2+i*2]<<8); } //putitintoanicestruct:) memcpy((void*)&data,(void*)buffer_u16,30); if(sum!=data.checksum){ Serial.println("Checksumfailure"); returnfalse; } //success! returntrue;}
Oncethecodeisuploaded,youcanopentheserialmonitorandsetthebaudrateto9600.Youwillseethesensorstartcollectingthedata.Thesensorwillstartgivingthecorrectvalueafter30Secondsasitrequirestosometimestogetwarm.
InterfacingPMS5003PM2.5AirQualitySensorwithArduino&LCDDsiplay
TheinterfacingofPMS5003withArduinoandLCDDisplayisprettyeasy.Youjustneed4connections.ConnectPIN1VCCofPMS5003toArduino5VPinandPIN2GNDtoGNDofArduino.TheUARTPin,i.ePIN4Rx&PIN5TxisconnectedtoArduinopin3&4respectivelyasshowninthefigurebelow.For20x4LCDDisplay,connectpin1,3,16toGND&2,15toVCC5V.Connectpin4,6,11,12,13,14ofLCDtoArduino13,12,11,10,9,8Pin.Connect10Kpotentiometeratpin3ofLCDtoadjustthecontrast.
SourceCode/Program
ThesourcecodeforinterfacingPM2.5PMS5003AirQualitySensorwithArduinoandLCDDisplayisgivenbelow.SimplycopythecodeanduploadtotheArduinoUNOBoard.
ButbeforethatyouneedtoaddthelibraryforPMS5003Sensor.Sosimplyinstallthefollowinglibraryfromthelibrarymanager.
12345678910111213141516171819202122232425262728293031323334353637
#include"PMS.h"#include"SoftwareSerial.h"#includeLiquidCrystallcd(13,12,11,10,9,8); SoftwareSerialSerial1(2,3);//RX,TX PMSpms(Serial1);PMS::DATAdata; voidsetup(){ Serial1.begin(9600); lcd.begin(20,4); lcd.setCursor(0,0); lcd.print("Warmingup"); delay(4000); lcd.clear();} voidloop(){ if(pms.read(data)) { lcd.clear(); lcd.setCursor(0,0); lcd.print("DustConcentration"); lcd.setCursor(0,1); lcd.print("PM1.0:"+String(data.PM_AE_UG_1_0)+"(ug/m3)"); lcd.setCursor(0,2); lcd.print("PM2.5:"+String(data.PM_AE_UG_2_5)+"(ug/m3)"); lcd.setCursor(0,3); lcd.print("PM10 :"+String(data.PM_AE_UG_10_0)+"(ug/m3)"); delay(1000); }}
VideoTutorial&Explanation
PM2.5AirQuality/DustSensor&ArduinoInterfacingtutorialwithPMS5003WatchthisvideoonYouTube.
AdminLastUpdated:March26,20213513,6904minutesread
Share
Facebook
Twitter
LinkedIn
Pinterest
Reddit
Skype
Messenger
Messenger
WhatsApp
Telegram
ShareviaEmail
Print
Share
Facebook
Twitter
LinkedIn
Pinterest
Reddit
VKontakte
Skype
Messenger
Messenger
WhatsApp
Telegram
ShareviaEmail
Print
RelatedArticles
PasswordBasedDoorLockSecuritySystemUsingArduino&Keypad
May17,2019
HowtouseTM16374-digit7-segmentLEDdisplaywithArduino
September3,2021
InterfacingMultipleDS18B20TemperatureSensorstoMicrocontroller
January15,2019
BlindWalkingStickUsingArduino&UltrasonicSensorHC-SR04
July21,2019
35Comments
Hello,
I’mtryingtousethistutorialwithasimilarsensor(YEETCCP-15-A4-CG)andI2C-LCDscreen.Theproblemisthatthevaluesarealwaysdownto0,doyouknowifthereisanyothersimilartutorialformyspecificsensor.I’vetriedlookingforitontheinternetbutdidn’tfoundit…
Icansendyouthecomputercode,thecomponents,andhowiconnectthecomponentsifyouthinkyouwillbeabletodirectlyhelpme.
Yourssincerely
Loading...
Reply
Makesureyoursensorisgetting5Vpowersupply.Thesensorrequireshighcurrenttoo.
Isuggestyoutocheckoncebygiving5Vsupplyfromexternaladapter.
Loading...
Reply
HiAlex,triedthiswithnewerPMS7003sensorandgettingstrangeresults,mostare10XovervaluesfromPM5003.Ihaveadjustedpinstomatch5003andsoftwareisthesame.Doyouhaveanyexperiencewiththe7003?Thanks!
Loading...
Reply
Sendme1sampleofpms7003toindiaifyouhavemultiplesensor.Iwilldothecodingandletyouknow.
Loading...
Reply
Canyoutellmewhatarethedifferencesbetweenstandardandenvironmentvalues
andwhatdoes“Particles>2.5um/0.1Lair:xx”mean?
thankyou
Loading...
Reply
Hi,
WhenIrunthiscodebyitself,itworksfine.However,whenIcombinethiscodewithothersensorsandbreakoutboards(e.g.BME280,SDcardetc.)Ihaveachecksumfailureapprox.every5seconds.Pleasecouldyousuggestanyproblemswiththis?
Manythanks.
Loading...
Reply
Pleaseremovethedelayifyouareusinganydelayfunctioninthecode.Iwashavingthesameissue.
Loading...
Reply
Howcanwecheckifthesensorisconnected?IfnotIwouldliketoprintmessageonLCD.
Loading...
Reply
Fortheconcentrationvalues,itstatesthattheyarestandardandenvironmental.Isthereaspecificunitfortheconcentrationvalues?Thanks.
Loading...
Reply
microgrampercentimetercube.YouaremeasuringthePMconcentrationperunitvolume.
Loading...
Reply
ihavethesameproblem,illaddexternal5vandvaluesonmyarduinoleonardoarezeros:/
Loading...
Reply
Igetachecksumerror,anysuggestions?
Loading...
Reply
Cananyoneprovideamorein-depthexplanationofconnectingandinterfacingtheLCD+Breadboard+Arduino.Itisveryhardtofollowtheprovidedpictureandthevideoglancesoverthatpartoftheprocess.
Thankyouinadvance.
Loading...
Reply
Ihaveaproblemwiththecode.Itcan’trun.
“‘data’wasnotdeclaredinthisscope”
Loading...
Reply
Hello,
Thankyoufortheproject;actually,Iamnewtoarduino,soIdon’tunderstandmostofthepartrelatedto“Checksum”.But,IwasabletouseyourcodeandacquiredatafromthePlantowersensor.
But,IwouldliketoalsoconnectanotherPMsensor:ShinyeiPD42NSalongwiththePlantower,tomyArduino.WhenIamtryingtodothisIamnotabletoacquiredatafromPlantower.Canyoukindlyhelpmewiththis.
Thanks
VineethR
Loading...
Reply
Heybro,
Yourprojectlooksverygood.IhavegonethroughitandIdidn’tunderstandhowyouconvertedthenumberofsuspendedparticlestoweight.Canyoupleaseexplainthat.Didyoumultiplyitwithdensityconsideringalltheparticlesareinsphericalshape.?
thanksinadvancebro.
Loading...
Reply
hello,pleaze!!Iimnoob,anddon’tunderstandthisatall,canyoutellmehowtomake1relayturnonwhen70-100ppmparticlesaredetected,andthesecondrelayturnsonat100-150ppm?
Loading...
Reply
Hi,
YourcodeworksverynicewithanArduinoUnoorNano.ButonaMegaitdoesn’twork.DoyouhaveasolutionfortheMega?Thanksforyourtime
Loading...
Reply
WhenIopentheserialmonitor,allIseeisabunchofrandomlookingsymbols.Theylooklikethis:
K⸮⸮X[-⸮dT[⸮⸮⸮⸮⸮l⸮⸮ڣ⸮(|⸮⸮XG⸮Λ⸮,⸮⸮⸮[email protected]⸮⸮⸮K⸮l⸮⸮(ۛ⸮4>⸮Q⸮A⸮⸮k⸮⸮\’
7⸮p⸮ۛ⸮Kٛi⸮A⸮ۛX5=I(⸮K⸮K⸮⸮⸮⸮[F⸮⸮⸮⸮,⸮⸮l[-⸮dT[⸮⸮⸮⸮⸮l⸮⸮ڣ⸮(|⸮⸮XG⸮Λ⸮,⸮⸮⸮[email protected]⸮⸮⸮K⸮l⸮⸮(ۛ⸮4>⸮Q⸮A⸮⸮k⸮⸮\’
7⸮p⸮ۛ⸮Kٛi⸮A⸮ۛX5=I(⸮K⸮K⸮⸮⸮⸮[F⸮⸮⸮⸮,⸮⸮llқڣel⸮⸮X⸮Cl⸮⸮T⸮dZ;
⸮!ЂDD⸮ٛ⸮K⸮⸮\؛⸮⸮⸮=P(⸮K⸮K⸮⸮⸮⸮[F⸮⸮⸮⸮⸮,⸮⸮l⸮K⸮⸮⸮H⸮⸮⸮l⸮.IZ⸮⸮k*ɂ\”⸮⸮⸮Z⸮p⸮ۛ⸮⸮⸮l5⸮J)⸮ٛH8Z⸮⸮)⸮ۛ4⸮⸮fb!⸮d⸮⸮[email protected]ۛ⸮l⸮⸮$⸮”X
Canyouhelpme?Whatishapping?
Loading...
Reply
Checkthebaudrate.
Loading...
Reply
italsoworksonMegabutondifferentPINs.HaveacloserlookonSoftwareSerial-Library.I’musingA10andA11,anditworksfineforme.
Loading...
Reply
IguessthedifferencebetweenstandardandenvironmentisthatstandardisanormedvaluelikeICAOstandardatmosphere(15°C,1013,25hPa,…)Standardvalueisinterestingbecauseyoucancomparetwoormorevaluesondifferentplaces.
Loading...
Reply
Anyclueonwhyarduinoisnotgettinganydatafromthesensor?Icanhearthesensorrunning,butitdoesn’tcommunicateanydatatothearduino
Loading...
Reply
Isthereanywaytosavethedatainacsvinsteadofjustprintingit?
Loading...
Reply
HelloAllam,
Thankyouverymuchforthisproject,Iamtryingtobuildamultisensorairqualitymeter,Iusedyourexampleandnowitisdesplayingonly0,OthersensorsSCD30andBMP80areworkingcorrectly
ImaanewbieonArduiinosoyourhelpismuchappreciated,hereismycode:
//SCD30+bmp280+pms
#include
#include
SoftwareSerialpmsSerial(2,3);
Adafruit_SCD30scd30;
#include
#include
#include
#defineBMP_SCK(13)
#defineBMP_MISO(12)
#defineBMP_MOSI(11)
#defineBMP_CS(10;)
Adafruit_BMP280bmp;//I2C
voidsetup(void){
Serial.begin(115200);
while(!Serial)delay(10);
Serial.println(“AdafruitSCD30,BMP280Ypms”);
//Trytoinitialize!
if(!bmp.begin()){
Serial.println(F(“CouldnotfindavalidBMP280sensor,checkwiring!”));
while(1);
}
if(!scd30.begin()){
Serial.println(“FailedtofindSCD30chip”);
while(1){
delay(10);
}
if(!scd30.startContinuousMeasurement()){
Serial.println(“Failedtosetambientpressureoffset”);
while(1){
delay(10);
}
}
Serial.print(“Ambientpressureoffset:“);
Serial.print(scd30.getAmbientPressureOffset());
Serial.println(”mBar”);
}
Serial.println(“SCD30Found!”);
//if(!scd30.setMeasurementInterval(10)){
//Serial.println(“Failedtosetmeasurementinterval”);
//while(1){delay(10);}
//}
Serial.print(“MeasurementInterval:“);
Serial.print(scd30.getMeasurementInterval());
Serial.println(”seconds”);
};
structpms5003data{
uint16_tframelen;
uint16_tpm10_standard,pm25_standard,pm100_standard;
uint16_tpm10_env,pm25_env,pm100_env;
uint16_tparticles_03um,particles_05um,particles_10um,particles_25um,particles_50um,particles_100um;
uint16_tunused;
uint16_tchecksum;
};
structpms5003datadata;
voidloop(){
if(scd30.dataReady()){
Serial.println(“Dataavailable!”);
scd30.startContinuousMeasurement(bmp.readPressure()/100);
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
if(!scd30.read()){ Serial.println("Errorreadingsensordata"); return;}Serial.println("---------------------------------------");Serial.print("SCD30Temperature:");Serial.print(scd30.temperature);Serial.println("degreesC");Serial.print(F("BMP280Temperature="));Serial.print(bmp.readTemperature());Serial.println("*C");Serial.print("RelativeHumidity:");Serial.print(scd30.relative_humidity);Serial.println("%");Serial.print(F("Pressure="));Serial.print(bmp.readPressure()/100);Serial.println("mBar");Serial.print("CO2:");Serial.print(scd30.CO2,3);Serial.println("ppm");Serial.print(F("Approxaltitude="));Serial.print(bmp.readAltitude(1013.25));/*Adjustedtolocalforecast!*/Serial.println("m");Serial.print(scd30.getAmbientPressureOffset());Serial.println("mBar");Serial.println("ConcentrationUnits(standard)");Serial.print("PM1.0:");Serial.print(data.pm10_standard);Serial.print("\t\tPM2.5:");Serial.print(data.pm25_standard);Serial.print("\t\tPM10:");Serial.println(data.pm100_standard);Serial.println("ConcentrationUnits(environmental)");Serial.print("PM1.0:");Serial.print(data.pm10_env);Serial.print("\t\tPM2.5:");Serial.print(data.pm25_env);Serial.print("\t\tPM10:");Serial.println(data.pm100_env);Serial.print("Particles>0.3um/0.1Lair:");Serial.println(data.particles_03um);Serial.print("Particles>0.5um/0.1Lair:");Serial.println(data.particles_05um);Serial.print("Particles>1.0um/0.1Lair:");Serial.println(data.particles_10um);Serial.print("Particles>2.5um/0.1Lair:");Serial.println(data.particles_25um);Serial.print("Particles>5.0um/0.1Lair:");Serial.println(data.particles_50um);Serial.print("Particles>10.0um/0.1Lair:");Serial.println(data.particles_100um);Serial.println("---------------------------------------");
}
}
booleanreadPMSdata(Stream*s){
if(!s->available()){
returnfalse;
}
//Readabyteatatimeuntilwegettothespecial‘0x42’start-byte
if(s->peek()!=0x42){
s->read();
returnfalse;
}
//Nowreadall32bytes
if(s->available()<32){
returnfalse;
}
uint8_tbuffer[32];
uint16_tsum=0;
s->readBytes(buffer,32);
//getchecksumready
for(uint8_ti=0;i<30;i++){
sum+=buffer[i];
}
/*debugging
for(uint8_ti=2;i<32;i++){
Serial.print(“0x”);Serial.print(buffer[i],HEX);Serial.print(“,“);
}
Serial.println();
*/
//Thedatacomesinendian’d,thissolvesitsoitworksonallplatforms
uint16_tbuffer_u16[15];
for(uint8_ti=0;i<15;i++){
buffer_u16[i]=buffer[2+i2+1];
buffer_u16[i]+=(buffer[2+i2]<<8);
}
//putitintoanicestruct🙂
memcpy((void*)&data,(void*)buffer_u16,30);
if(sum!=data.checksum){
Serial.println(“Checksumfailure”);
returnfalse;
}
//success!
returntrue;
delay(2000);
};/*
*/
Heresiswhatthemonitorisshowing:
21:29:07.706->Dataavailable!
21:29:07.706->—————————————
21:29:07.706->SCD30Temperature:25.69degreesC
21:29:07.706->BMP280Temperature=24.28*C
21:29:07.706->RelativeHumidity:29.17%
21:29:07.706->Pressure=782.88mBar
21:29:07.706->CO2:1237.405ppm
21:29:07.706->Approxaltitude=2123.39m
21:29:07.706->782mBar
21:29:07.706->ConcentrationUnits(standard)
21:29:07.706->PM1.0:0PM2.5:0PM10:0
21:29:07.706->ConcentrationUnits(environmental)
21:29:07.706->PM1.0:0PM2.5:0PM10:0
21:29:07.706->Particles>0.3um/0.1Lair:0
21:29:07.706->Particles>0.5um/0.1Lair:0
21:29:07.753->Particles>1.0um/0.1Lair:0
21:29:07.753->Particles>2.5um/0.1Lair:0
21:29:07.753->Particles>5.0um/0.1Lair:0
21:29:07.753->Particles>10.0um/0.1Lair:0
21:29:07.753->—————————————
Loading...
Reply
Ihadthesameproblem.Youhavetoput115200baudlikeinthescreenshotandNOT9600.
Loading...
Reply
Hi.Didyoujustchangeitinthecodehere?
#include
SoftwareSerialpmsSerial(2,3);
voidsetup(){
//ourdebuggingoutput
Serial.begin(115200);
//sensorbaudrateis9600
pmsSerial.begin(9600);
}
Loading...
Reply
SirIamtryingthesamecodeusingsamesensorandsamepinconnectionbuticouldn’tseenanyvalueoranythingonscreenIalsochangebodeplotratebutcouldn’tgetanyvalue
Loading...
Reply
SiriusedA10A11butcouldn’tseenanyvalueforArduinomegaalsousedigitalbutsameproblemwhaticoulddo
Loading...
Reply
NotallthepinsofArduinomegacanbeusedassoftwareserial.Youcanonlyusethosepinswhichacceptsinterrupt.ChecktheArduinoMegadocumentationtofindoutwhichpinsupportsSoftwareSerialcommand.
Loading...
Reply
couldsomeonesendmethecodewiththei2cplease
Loading...
Reply
Thanksforthetutorial.supersimpleandeasytofollow.
IusetheEXP8266andlikemanyothers,gotnothing……
whatIASSUMEDistouseTX/DXofthemicrocontrollerandnotregulardigitaloutputpins.
then,IgotthatX[-⸮dT[⸮⸮⸮⸮⸮l⸮⸮ڣ⸮(|⸮nonsense……
changedthebaudrateontheterminalto112500,anditworkedperfectly!
asanote,IIamusingthe5voutputoftheESP8266,butIdonotknowifthathasenoughpowertodothatsafely.
Ichangedto:SoftwareSerialpmsSerial(D5,D6);
Thankyouagainforthegreattutorial
Loading...
Reply
Iwassuccessfulinfollowingthistutorial.thanks,itwasverywelldoneandeasytofollow.
Idohaveacoupleofquestions.
therearethreesectionsintheserialdisplay
data.pm10_standard
and
data.pm10_en
and
data.particles_10um
eachoutputsadifferentvalue.Idon’tunderstandthedifferencesandwhytheyarealldifferent.
Loading...
Reply
hi,thisSKfromwestbengal
siriamusingthiscodeformmyprojectonmyPMSA003-CPlantowerSensoritshowingnothingpleasehelpme
Loading...
Reply
hi,thisSKfromwestbengal
siriamusingthiscodeformmyprojectonmyPMSA003-CPlantowerSensoritshowingnothingpleasehelpme
Loading...
Reply
AskAQuestion.......Cancelreply
PopularRecent
IoTBasedPatientHealthMonitoringusingESP8266&Arduino
June11,2019
InterfacingMAX30100PulseOximeterSensorwithArduino
December18,2019
PasswordBasedDoorLockSecuritySystemUsingArduino&Keypad
May17,2019
IoTBasedElectricityEnergyMeterusingESP32&Blynk
November30,2020
InterfaceCapacitiveSoilMoistureSensorv1.2withArduino
November11,2019
ECGGraphMonitoringwithAD8232ECGSensor&Arduino
March7,2019
MeasureSoilNutrientusingArduino&SoilNPKSensor
November21,2020
TemperatureBasedFanSpeedControl&MonitoringWithArduino
June23,2019
Geo-fencewithGPSModule&NodeMCUESP8266
December16,2021
AquariumWaterQualityMonitorwithTDSSensor&ESP32
December9,2021
DIYIoTWaterpHMeterusingpHSensor&ESP32
December5,2021
CreateBluetoothLowEnergyProjectusingArduino&BleuIO
December2,2021
Barcode+QRCodeReaderusingArduino&QRScannerModule
November30,2021
ShenzhenHuaqiuElectronicsApproachforupgradingElectronicsIndustry
November28,2021
IndustrialProductCounterusingESP32CAM&OpenCV
November26,2021
DIYAICamerawithGoogleVision&ESP32CAMModule
November22,2021
RecentPosts
AquariumWaterQualityMonitorwithTDSSensor&ESP32
December9,2021
DIYIoTWaterpHMeterusingpHSensor&ESP32
December5,2021
CreateBluetoothLowEnergyProjectusingArduino&BleuIO
December2,2021
Barcode+QRCodeReaderusingArduino&QRScannerModule
November30,2021
ShenzhenHuaqiuElectronicsApproachforupgradingElectronicsIndustry
November28,2021
IndustrialProductCounterusingESP32CAM&OpenCV
November26,2021
Categories
555TimerProjects(11)
ArduinoProjects(131)
Articles(16)
BLEProjects(10)
ElectronicsCircuits(21)
ESP32MicroPython(7)
ESP32Projects(32)
ESP32-CAMProjects(9)
ESP8266Projects(56)
IoTProjects(94)
LoRaProjects(12)
MicrocontrollerProjects(6)
MicroPython(9)
Op-AmpCircuits(5)
PowerElectronics(14)
RaspberryPiPico(8)
STM32Projects(15)
Facebook
Twitter
LinkedIn
Messenger
Messenger
WhatsApp
Telegram
Backtotopbutton
Close
Searchfor:
FacebookTwitterPinterestYouTubeInstagram
Close
Searchfor
LoadingComments...
WriteaComment...
Email(Required)
Name(Required)
Website
%dbloggerslikethis: