Package: pypms
Serial Air Quality SensorsData acquisition and logging for Air Quality Sensors with UART interfaceInstallationThis package can be pip installed.
Please visitproject sitefor detailed instructions.Command Line ToolsThis package provides tools for requesting new measurements from the sensors
and print them on different formats, save them to a CSV file,
or push them to an external service such as an MQTT or InfluxDB server.
MQTT or InfluxDB server support requires additional packages.
Please visitproject sitefor details.Particulate Matter SensorsSensor--sensor-modelPM1PM2.5PM4PM10size binsOtherTestedPlantowerPMS1003 (aka G1)PMSx003✔️✔️✔️6PMS3003 (aka G3)PMS3003✔️✔️✔️✔️PMS5003 (aka G5)PMSx003✔️✔️✔️6PMS5003TPMS5003T✔️✔️✔️4temp. & rel.hum.✔️PMS5003SPMS5003S✔️✔️✔️6HCHO concentrationPMS5003STPMS5003ST✔️✔️✔️6HCHO, temp. & rel.hum.PMS7003 (aka G7)PMSx003✔️✔️✔️6✔️PMSA003 (aka G10)PMSx003✔️✔️✔️6✔️NovaFitnessSDS011SDS01x✔️✔️✔️SDS018SDS01x✔️✔️SDS021SDS01x✔️✔️SDS198SDS198PM100✔️HoneywellHPMA115S0HPMA115S0✔️✔️HPMA115C0HPMA115C0✔️✔️✔️✔️✔️SensirionSPS30SPS30✔️✔️✔️✔️5typical particle size✔️WinsenZH03BZH0xx✔️✔️✔️ZH06-IZH0xx✔️✔️✔️Other SensorsMCU680:
chinese module with aBME680sensor, a mirocontroller (μC) and 3.3V low-dropout regulator (LDO).
The μC acts as I2C/UART bridge, providing outputs from theclosed source integration library.MHZ19B:
infrared CO2 sensor module fromWinsen.Want More SensorsFor more Air Quality sensorsopen an issue.Use as a libraryPyPMS/pms is meant as a command line application.
Theproject sitecontain some help for those brave enough to use its internals as alibrary.Changelog0.7.1disable logging unless CLI is runningPR#370.7.0add Python 3.11 support and drop Python 3.7 supportpre-heat for PMSx003 sensorsPR#35open/closemethods for granular SensorReader operationPR#33fix HPMA115C0 header#260.6.2move logger config to CLI modulePR#280.6.1fixpms.sensors.sensirionmodule name and docsreliably recognize SPS30 sensor#250.6.0project sitereorganize internal modulespms.core: core functionality, such asSensorandSensorReaderpms.sensors: sensor modules grouped by manufacturerpms.extra: extra cli utilities, such aspms influxdbandinfluxdb mqttimporting frompms.sensoris deprecated, import frompms.coreinsteadplugin architectureload sensor modules from entry points advertized as"pypms.sensors"load extra cli commands from entry points advertized as"pypms.extras"supportWinsenPM sensors andMHZ19Binfrared CO2 sensor.pm1/pm4/raw2_5/pm2_5 properties,#170.5.0set username/password with environment variables:$MQTT_USERsets--mqtt-useronpms mqttandpms bridge$MQTT_USERsets--mqtt-useronpms mqttandpms bridge$DB_USERsets--db-useronpms influxdbandpms bridge$DB_PASSsets--db-passonpms influxdbandpms bridge0.4.1info about the sensor observations withpms infofixMCU680obs.pres typo#160.4.0capture raw messages withpms csv --capturedecode captured messages withpms serial --capturehexdump format withpms serial --format hexdumpdeprecate subset observation method0.3.1fix influxdb default tags0.3.0option for a fix number of samplesPMSx003 consistency check after sleep/wake0.2.*widen project scope from PM sensors to AQ sensors in generalsupportBME680sensor (MCU680module)0.1.*widen project scope beyondPlantowerPM sensorssupportNovaFitness,HoneywellandSensirionPM sensorscli for logging to csv file, InfluxDB server or MQTT server