ESPHome  2023.5.5
ads1115.h
Go to the documentation of this file.
1 #pragma once
2 
7 
8 #include <vector>
9 
10 namespace esphome {
11 namespace ads1115 {
12 
22 };
23 
31 };
32 
36 };
37 
38 class ADS1115Sensor;
39 
40 class ADS1115Component : public Component, public i2c::I2CDevice {
41  public:
42  void register_sensor(ADS1115Sensor *obj) { this->sensors_.push_back(obj); }
44  void setup() override;
45  void dump_config() override;
47  float get_setup_priority() const override { return setup_priority::DATA; }
48  void set_continuous_mode(bool continuous_mode) { continuous_mode_ = continuous_mode; }
49 
51  float request_measurement(ADS1115Sensor *sensor);
52 
53  protected:
54  std::vector<ADS1115Sensor *> sensors_;
55  uint16_t prev_config_{0};
57 };
58 
61  public:
62  ADS1115Sensor(ADS1115Component *parent) : parent_(parent) {}
63  void update() override;
64  void set_multiplexer(ADS1115Multiplexer multiplexer) { multiplexer_ = multiplexer; }
65  void set_gain(ADS1115Gain gain) { gain_ = gain; }
66  void set_resolution(ADS1115Resolution resolution) { resolution_ = resolution; }
67  float sample() override;
68  uint8_t get_multiplexer() const { return multiplexer_; }
69  uint8_t get_gain() const { return gain_; }
70  uint8_t get_resolution() const { return resolution_; }
71 
72  protected:
77 };
78 
79 } // namespace ads1115
80 } // namespace esphome
const float DATA
For components that import data from directly connected sensors like DHT.
Definition: component.cpp:18
ADS1115Resolution resolution_
Definition: ads1115.h:76
uint8_t get_multiplexer() const
Definition: ads1115.h:68
float request_measurement(ADS1115Sensor *sensor)
Helper method to request a measurement from a sensor.
Definition: ads1115.cpp:86
Abstract interface for components to request voltage (usually ADC readings)
void set_resolution(ADS1115Resolution resolution)
Definition: ads1115.h:66
This class simplifies creating components that periodically check a state.
Definition: component.h:282
uint8_t get_resolution() const
Definition: ads1115.h:70
Internal holder class that is in instance of Sensor so that the hub can create individual sensors...
Definition: ads1115.h:60
void set_continuous_mode(bool continuous_mode)
Definition: ads1115.h:48
ADS1115Multiplexer multiplexer_
Definition: ads1115.h:74
ADS1115Sensor(ADS1115Component *parent)
Definition: ads1115.h:62
ADS1115Component * parent_
Definition: ads1115.h:73
uint8_t get_gain() const
Definition: ads1115.h:69
void set_gain(ADS1115Gain gain)
Definition: ads1115.h:65
std::vector< ADS1115Sensor * > sensors_
Definition: ads1115.h:54
void setup() override
Set up the internal sensor array.
Definition: ads1115.cpp:14
float get_setup_priority() const override
HARDWARE_LATE setup priority.
Definition: ads1115.h:47
void set_multiplexer(ADS1115Multiplexer multiplexer)
Definition: ads1115.h:64
Definition: a4988.cpp:4
Base-class for all sensors.
Definition: sensor.h:57
void register_sensor(ADS1115Sensor *obj)
Definition: ads1115.h:42