ESPHome 2026.5.1
Loading...
Searching...
No Matches
pm1006.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome::pm1006 {
9
11 public:
12 PM1006Component() = default;
13
14 void set_pm_2_5_sensor(sensor::Sensor *pm_2_5_sensor) { this->pm_2_5_sensor_ = pm_2_5_sensor; }
15 void setup() override;
16 void dump_config() override;
17 void loop() override;
18 void update() override;
19
20 protected:
21 optional<bool> check_byte_() const;
22 void parse_data_();
23 uint8_t pm1006_checksum_(const uint8_t *command_data, uint8_t length) const;
24 uint16_t get_16_bit_uint_(uint8_t start_index) const {
25 return encode_uint16(this->data_[start_index], this->data_[start_index + 1]);
26 }
27
29
30 uint8_t data_[20];
31 uint8_t data_index_{0};
33};
34
35} // namespace esphome::pm1006
This class simplifies creating components that periodically check a state.
Definition component.h:602
uint8_t pm1006_checksum_(const uint8_t *command_data, uint8_t length) const
Definition pm1006.cpp:46
void set_pm_2_5_sensor(sensor::Sensor *pm_2_5_sensor)
Definition pm1006.h:14
uint16_t get_16_bit_uint_(uint8_t start_index) const
Definition pm1006.h:24
sensor::Sensor * pm_2_5_sensor_
Definition pm1006.h:28
optional< bool > check_byte_() const
Definition pm1006.cpp:54
Base-class for all sensors.
Definition sensor.h:47
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:859
static void uint32_t
uint16_t length
Definition tt21100.cpp:0