ESPHome 2025.6.3
Loading...
Searching...
No Matches
sds011.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome {
9namespace sds011 {
10
12 public:
13 SDS011Component() = default;
14
16 void set_rx_mode_only(bool rx_mode_only);
17
18 void set_pm_2_5_sensor(sensor::Sensor *pm_2_5_sensor) { pm_2_5_sensor_ = pm_2_5_sensor; }
19 void set_pm_10_0_sensor(sensor::Sensor *pm_10_0_sensor) { pm_10_0_sensor_ = pm_10_0_sensor; }
20 void setup() override;
21 void dump_config() override;
22 void loop() override;
23
24 float get_setup_priority() const override;
25
26 void set_update_interval(uint32_t val) { /* ignore */
27 }
28 void set_update_interval_min(uint8_t update_interval_min);
29 void set_working_state(bool working_state);
30
31 protected:
32 void sds011_write_command_(const uint8_t *command);
33 uint8_t sds011_checksum_(const uint8_t *command_data, uint8_t length) const;
35 void parse_data_();
36 uint16_t get_16_bit_uint_(uint8_t start_index) const {
37 return encode_uint16(this->data_[start_index + 1], this->data_[start_index]);
38 }
39
42
43 uint8_t data_[10];
44 uint8_t data_index_{0};
45 uint32_t last_transmission_{0};
47
49};
50
51} // namespace sds011
52} // namespace esphome
sensor::Sensor * pm_10_0_sensor_
Definition sds011.h:41
void set_update_interval_min(uint8_t update_interval_min)
Definition sds011.cpp:185
uint16_t get_16_bit_uint_(uint8_t start_index) const
Definition sds011.h:36
sensor::Sensor * pm_2_5_sensor_
Definition sds011.h:40
float get_setup_priority() const override
Definition sds011.cpp:111
void sds011_write_command_(const uint8_t *command)
Definition sds011.cpp:115
void set_working_state(bool working_state)
Definition sds011.cpp:54
optional< bool > check_byte_() const
Definition sds011.cpp:131
void set_update_interval(uint32_t val)
Definition sds011.h:26
void set_rx_mode_only(bool rx_mode_only)
Manually set the rx-only mode. Defaults to false.
Definition sds011.cpp:113
void set_pm_2_5_sensor(sensor::Sensor *pm_2_5_sensor)
Definition sds011.h:18
void set_pm_10_0_sensor(sensor::Sensor *pm_10_0_sensor)
Definition sds011.h:19
uint8_t sds011_checksum_(const uint8_t *command_data, uint8_t length) const
Definition sds011.cpp:123
Base-class for all sensors.
Definition sensor.h:62
mopeka_std_values val[4]
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
constexpr uint16_t encode_uint16(uint8_t msb, uint8_t lsb)
Encode a 16-bit value given the most and least significant byte.
Definition helpers.h:192
uint16_t length
Definition tt21100.cpp:0