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