ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
pmsa003i.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace esphome::pmsa003i {
8
10// From https://github.com/adafruit/Adafruit_PM25AQI
12 uint16_t framelen;
13 uint16_t pm10_standard;
14 uint16_t pm25_standard;
15 uint16_t pm100_standard;
16 uint16_t pm10_env;
17 uint16_t pm25_env;
18 uint16_t pm100_env;
19 uint16_t particles_03um;
20 uint16_t particles_05um;
21 uint16_t particles_10um;
22 uint16_t particles_25um;
23 uint16_t particles_50um;
24 uint16_t particles_100um;
25 uint16_t unused;
26 uint16_t checksum;
27};
28
30 public:
31 void setup() override;
32 void dump_config() override;
33 void update() override;
34
35 void set_standard_units(bool standard_units) { this->standard_units_ = standard_units; }
36
37 void set_pm_1_0_sensor(sensor::Sensor *pm_1_0) { this->pm_1_0_sensor_ = pm_1_0; }
38 void set_pm_2_5_sensor(sensor::Sensor *pm_2_5) { this->pm_2_5_sensor_ = pm_2_5; }
39 void set_pm_10_0_sensor(sensor::Sensor *pm_10_0) { this->pm_10_0_sensor_ = pm_10_0; }
40
41 void set_pmc_0_3_sensor(sensor::Sensor *pmc_0_3) { this->pmc_0_3_sensor_ = pmc_0_3; }
42 void set_pmc_0_5_sensor(sensor::Sensor *pmc_0_5) { this->pmc_0_5_sensor_ = pmc_0_5; }
43 void set_pmc_1_0_sensor(sensor::Sensor *pmc_1_0) { this->pmc_1_0_sensor_ = pmc_1_0; }
44 void set_pmc_2_5_sensor(sensor::Sensor *pmc_2_5) { this->pmc_2_5_sensor_ = pmc_2_5; }
45 void set_pmc_5_0_sensor(sensor::Sensor *pmc_5_0) { this->pmc_5_0_sensor_ = pmc_5_0; }
46 void set_pmc_10_0_sensor(sensor::Sensor *pmc_10_0) { this->pmc_10_0_sensor_ = pmc_10_0; }
47
48 protected:
49 bool read_data_(PM25AQIData *data);
50
52
56
63};
64
65} // namespace esphome::pmsa003i
This class simplifies creating components that periodically check a state.
Definition component.h:585
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:132
void set_pmc_5_0_sensor(sensor::Sensor *pmc_5_0)
Definition pmsa003i.h:45
void set_pmc_0_5_sensor(sensor::Sensor *pmc_0_5)
Definition pmsa003i.h:42
void set_pm_10_0_sensor(sensor::Sensor *pm_10_0)
Definition pmsa003i.h:39
void set_pm_1_0_sensor(sensor::Sensor *pm_1_0)
Definition pmsa003i.h:37
void set_pmc_10_0_sensor(sensor::Sensor *pmc_10_0)
Definition pmsa003i.h:46
void set_standard_units(bool standard_units)
Definition pmsa003i.h:35
void set_pmc_2_5_sensor(sensor::Sensor *pmc_2_5)
Definition pmsa003i.h:44
bool read_data_(PM25AQIData *data)
Definition pmsa003i.cpp:88
void set_pmc_1_0_sensor(sensor::Sensor *pmc_1_0)
Definition pmsa003i.h:43
void set_pmc_0_3_sensor(sensor::Sensor *pmc_0_3)
Definition pmsa003i.h:41
void set_pm_2_5_sensor(sensor::Sensor *pm_2_5)
Definition pmsa003i.h:38
Base-class for all sensors.
Definition sensor.h:47
! Structure holding Plantower's standard packet
Definition pmsa003i.h:11
uint16_t particles_50um
5.0um Particle Count
Definition pmsa003i.h:23
uint16_t pm25_standard
Standard PM2.5.
Definition pmsa003i.h:14
uint16_t pm10_env
Environmental PM1.0.
Definition pmsa003i.h:16
uint16_t particles_25um
2.5um Particle Count
Definition pmsa003i.h:22
uint16_t framelen
How long this data chunk is.
Definition pmsa003i.h:12
uint16_t pm100_env
Environmental PM10.0.
Definition pmsa003i.h:18
uint16_t checksum
Packet checksum.
Definition pmsa003i.h:26
uint16_t particles_03um
0.3um Particle Count
Definition pmsa003i.h:19
uint16_t particles_05um
0.5um Particle Count
Definition pmsa003i.h:20
uint16_t particles_10um
1.0um Particle Count
Definition pmsa003i.h:21
uint16_t particles_100um
10.0um Particle Count
Definition pmsa003i.h:24
uint16_t pm10_standard
Standard PM1.0.
Definition pmsa003i.h:13
uint16_t pm25_env
Environmental PM2.5.
Definition pmsa003i.h:17
uint16_t pm100_standard
Standard PM10.0.
Definition pmsa003i.h:15