ESPHome 2025.8.0b2
Loading...
Searching...
No Matches
esphome::adc::ADCSensor Class Reference

#include <adc_sensor.h>

Inheritance diagram for esphome::adc::ADCSensor:
esphome::sensor::Sensor esphome::PollingComponent esphome::voltage_sampler::VoltageSampler esphome::EntityBase esphome::EntityBase_DeviceClass esphome::EntityBase_UnitOfMeasurement esphome::Component

Data Structures

struct  SetupFlags
 

Public Member Functions

void update () override
 Update the sensor's state by reading the current ADC value.
 
void setup () override
 Set up the ADC sensor by initializing hardware and calibration parameters.
 
void dump_config () override
 Output the configuration details of the ADC sensor for debugging purposes.
 
float get_setup_priority () const override
 Return the setup priority for this component.
 
void set_adc_channel (const adc_dt_spec *channel)
 Set the ADC channel to be used by the ADC sensor.
 
void set_pin (InternalGPIOPin *pin)
 Set the GPIO pin to be used by the ADC sensor.
 
void set_output_raw (bool output_raw)
 Enable or disable the output of raw ADC values (unprocessed data).
 
void set_sample_count (uint8_t sample_count)
 Set the number of samples to be taken for ADC readings to improve accuracy.
 
void set_sampling_mode (SamplingMode sampling_mode)
 Set the sampling mode for how multiple ADC samples are combined into a single measurement.
 
float sample () override
 Perform a single ADC sampling operation and return the measured value.
 
void set_attenuation (adc_atten_t attenuation)
 Set the ADC attenuation level to adjust the input voltage range.
 
void set_channel (adc_unit_t unit, adc_channel_t channel)
 Configure the ADC to use a specific channel on a specific ADC unit.
 
void set_autorange (bool autorange)
 Set whether autoranging should be enabled for the ADC.
 
void set_is_temperature ()
 
- Public Member Functions inherited from esphome::sensor::Sensor
 Sensor ()
 
int8_t get_accuracy_decimals ()
 Get the accuracy in decimals, using the manual override if set.
 
void set_accuracy_decimals (int8_t accuracy_decimals)
 Manually set the accuracy in decimals.
 
StateClass get_state_class ()
 Get the state class, using the manual override if set.
 
void set_state_class (StateClass state_class)
 Manually set the state class.
 
bool get_force_update () const
 Get whether force update mode is enabled.
 
void set_force_update (bool force_update)
 Set force update mode.
 
void add_filter (Filter *filter)
 Add a filter to the filter chain. Will be appended to the back.
 
void add_filters (const std::vector< Filter * > &filters)
 Add a list of vectors to the back of the filter chain.
 
void set_filters (const std::vector< Filter * > &filters)
 Clear the filters and replace them by filters.
 
void clear_filters ()
 Clear the entire filter chain.
 
float get_state () const
 Getter-syntax for .state.
 
float get_raw_state () const
 Getter-syntax for .raw_state.
 
void publish_state (float state)
 Publish a new state to the front-end.
 
void add_on_state_callback (std::function< void(float)> &&callback)
 Add a callback that will be called every time a filtered value arrives.
 
void add_on_raw_state_callback (std::function< void(float)> &&callback)
 Add a callback that will be called every time the sensor sends a raw value.
 
void internal_send_state_to_frontend (float state)
 
- Public Member Functions inherited from esphome::EntityBase
const StringRefget_name () const
 
void set_name (const char *name)
 
bool has_own_name () const
 
std::string get_object_id () const
 
void set_object_id (const char *object_id)
 
uint32_t get_object_id_hash ()
 
bool is_internal () const
 
void set_internal (bool internal)
 
bool is_disabled_by_default () const
 
void set_disabled_by_default (bool disabled_by_default)
 
EntityCategory get_entity_category () const
 
void set_entity_category (EntityCategory entity_category)
 
std::string get_icon () const
 
void set_icon (const char *icon)
 
StringRef get_icon_ref () const
 
uint32_t get_device_id () const
 
void set_device (Device *device)
 
bool has_state () const
 
void set_has_state (bool state)
 
- Public Member Functions inherited from esphome::EntityBase_DeviceClass
std::string get_device_class ()
 Get the device class, using the manual override if set.
 
void set_device_class (const char *device_class)
 Manually set the device class.
 
StringRef get_device_class_ref () const
 Get the device class as StringRef.
 
- Public Member Functions inherited from esphome::EntityBase_UnitOfMeasurement
std::string get_unit_of_measurement ()
 Get the unit of measurement, using the manual override if set.
 
void set_unit_of_measurement (const char *unit_of_measurement)
 Manually set the unit of measurement.
 
StringRef get_unit_of_measurement_ref () const
 Get the unit of measurement as StringRef.
 
- Public Member Functions inherited from esphome::PollingComponent
 PollingComponent ()
 
 PollingComponent (uint32_t update_interval)
 Initialize this polling component with the given update interval in ms.
 
virtual void set_update_interval (uint32_t update_interval)
 Manually set the update interval in ms for this polling object.
 
void call_setup () override
 
virtual uint32_t get_update_interval () const
 Get the update interval in ms of this sensor.
 
void start_poller ()
 
void stop_poller ()
 
- Public Member Functions inherited from esphome::Component
virtual void loop ()
 This method will be called repeatedly.
 
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop().
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
virtual bool teardown ()
 Called during teardown to allow component to gracefully finish operations.
 
virtual void on_powerdown ()
 Called after teardown is complete to power down hardware.
 
uint8_t get_component_state () const
 
void reset_to_construction_state ()
 Reset this component back to the construction state to allow setup to run again.
 
bool is_in_loop_state () const
 Check if this component has completed setup and is in the loop state.
 
virtual void mark_failed ()
 Mark this component as failed.
 
void mark_failed (const char *message)
 
void disable_loop ()
 Disable this component's loop.
 
void enable_loop ()
 Enable this component's loop.
 
void enable_loop_soon_any_context ()
 Thread and ISR-safe version of enable_loop() that can be called from any context.
 
bool is_failed () const
 
bool is_ready () const
 
virtual bool can_proceed ()
 
bool status_has_warning () const
 
bool status_has_error () const
 
void status_set_warning (const char *message=nullptr)
 
void status_set_error (const char *message=nullptr)
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages.
 
const char * get_component_source () const
 Get the integration where this component was declared as a string.
 
bool should_warn_of_blocking (uint32_t blocking_time)
 
- Public Member Functions inherited from esphome::voltage_sampler::VoltageSampler

Protected Member Functions

float sample_autorange_ ()
 
float sample_fixed_attenuation_ ()
 
- Protected Member Functions inherited from esphome::EntityBase
virtual uint32_t hash_base ()
 The hash_base() function has been deprecated.
 
void calc_object_id_ ()
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_dump_config ()
 
void set_component_state_ (uint8_t state)
 Helper to set component state (clears state bits and sets new state)
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name.
 
void set_interval (const char *name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a const char* name.
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function.
 
bool cancel_interval (const char *name)
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name.
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function.
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name.
 
void set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a const char* name.
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function.
 
bool cancel_timeout (const char *name)
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
void defer (const char *name, std::function< void()> &&f)
 Defer a callback to the next loop() call with a const char* name.
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty.
 

Protected Attributes

uint8_t sample_count_ {1}
 
bool output_raw_ {false}
 
InternalGPIOPinpin_
 
SamplingMode sampling_mode_ {SamplingMode::AVG}
 
bool autorange_ {false}
 
adc_oneshot_unit_handle_t adc_handle_ {nullptr}
 
adc_cali_handle_t calibration_handle_ {nullptr}
 
adc_atten_t attenuation_ {ADC_ATTEN_DB_0}
 
adc_channel_t channel_ {}
 
adc_unit_t adc_unit_ {}
 
struct esphome::adc::ADCSensor::SetupFlags setup_flags_
 
bool is_temperature_ {false}
 
const struct adc_dt_spec * channel_ = nullptr
 
- Protected Attributes inherited from esphome::sensor::Sensor
std::unique_ptr< CallbackManager< void(float)> > raw_callback_
 Storage for raw state callbacks (lazy allocated).
 
CallbackManager< void(float)> callback_
 Storage for filtered state callbacks.
 
Filterfilter_list_ {nullptr}
 Store all active filters.
 
int8_t accuracy_decimals_ {-1}
 Accuracy in decimals (-1 = not set)
 
StateClass state_class_ {STATE_CLASS_NONE}
 State class (STATE_CLASS_NONE = not set)
 
struct esphome::sensor::Sensor::SensorFlags sensor_flags_
 
- Protected Attributes inherited from esphome::EntityBase
StringRef name_
 
const char * object_id_c_str_ {nullptr}
 
const char * icon_c_str_ {nullptr}
 
uint32_t object_id_hash_ {}
 
Devicedevice_ {}
 
struct esphome::EntityBase::EntityFlags flags_
 
- Protected Attributes inherited from esphome::EntityBase_DeviceClass
const char * device_class_ {nullptr}
 Device class override.
 
- Protected Attributes inherited from esphome::EntityBase_UnitOfMeasurement
const char * unit_of_measurement_ {nullptr}
 Unit of measurement override.
 
- Protected Attributes inherited from esphome::PollingComponent
uint32_t update_interval_
 
- Protected Attributes inherited from esphome::Component
const char * component_source_ {nullptr}
 
uint16_t warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS}
 Warn if blocked for this many ms (max 65.5s)
 
uint8_t component_state_ {0x00}
 State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bits 5-7: Unused - reserved for future expansion.
 
volatile bool pending_enable_loop_ {false}
 ISR-safe flag for enable_loop_soon_any_context.
 

Static Protected Attributes

static adc_oneshot_unit_handle_t shared_adc_handles [2] = {nullptr, nullptr}
 

Additional Inherited Members

- Data Fields inherited from esphome::sensor::Sensor
float state
 This member variable stores the last state that has passed through all filters.
 
float raw_state
 This member variable stores the current raw state of the sensor, without any filters applied.
 

Detailed Description

Definition at line 57 of file adc_sensor.h.

Member Function Documentation

◆ dump_config()

void esphome::adc::ADCSensor::dump_config ( )
overridevirtual

Output the configuration details of the ADC sensor for debugging purposes.

This method is called during the ESPHome setup process to log the configuration.

Reimplemented from esphome::Component.

Definition at line 120 of file adc_sensor_esp32.cpp.

◆ get_setup_priority()

float esphome::adc::ADCSensor::get_setup_priority ( ) const
overridevirtual

Return the setup priority for this component.

Components with higher priority are initialized earlier during setup.

Returns
A float representing the setup priority.

Reimplemented from esphome::Component.

Definition at line 82 of file adc_sensor_common.cpp.

◆ sample()

float esphome::adc::ADCSensor::sample ( )
overridevirtual

Perform a single ADC sampling operation and return the measured value.

This function handles raw readings, calibration, and averaging as needed.

Returns
The sampled value as a float.

Implements esphome::voltage_sampler::VoltageSampler.

Definition at line 146 of file adc_sensor_esp32.cpp.

◆ sample_autorange_()

float esphome::adc::ADCSensor::sample_autorange_ ( )
protected

Definition at line 202 of file adc_sensor_esp32.cpp.

◆ sample_fixed_attenuation_()

float esphome::adc::ADCSensor::sample_fixed_attenuation_ ( )
protected

Definition at line 154 of file adc_sensor_esp32.cpp.

◆ set_adc_channel()

void esphome::adc::ADCSensor::set_adc_channel ( const adc_dt_spec * channel)
inline

Set the ADC channel to be used by the ADC sensor.

Parameters
channelPointer to an adc_dt_spec structure representing the ADC channel.

Definition at line 79 of file adc_sensor.h.

◆ set_attenuation()

void esphome::adc::ADCSensor::set_attenuation ( adc_atten_t attenuation)
inline

Set the ADC attenuation level to adjust the input voltage range.

This determines how the ADC interprets input voltages, allowing for greater precision or the ability to measure higher voltages depending on the chosen attenuation level.

Parameters
attenuationThe desired ADC attenuation level (e.g., ADC_ATTEN_DB_0, ADC_ATTEN_DB_11).

Definition at line 114 of file adc_sensor.h.

◆ set_autorange()

void esphome::adc::ADCSensor::set_autorange ( bool autorange)
inline

Set whether autoranging should be enabled for the ADC.

Autoranging automatically adjusts the attenuation level to handle a wide range of input voltages.

Parameters
autorangeBoolean indicating whether to enable autoranging.

Definition at line 128 of file adc_sensor.h.

◆ set_channel()

void esphome::adc::ADCSensor::set_channel ( adc_unit_t unit,
adc_channel_t channel )
inline

Configure the ADC to use a specific channel on a specific ADC unit.

This sets the channel for single-shot or continuous ADC measurements.

Parameters
unitThe ADC unit to use (ADC_UNIT_1 or ADC_UNIT_2).
channelThe ADC channel to configure, such as ADC_CHANNEL_0, ADC_CHANNEL_3, etc.

Definition at line 120 of file adc_sensor.h.

◆ set_is_temperature()

void esphome::adc::ADCSensor::set_is_temperature ( )
inline

Definition at line 132 of file adc_sensor.h.

◆ set_output_raw()

void esphome::adc::ADCSensor::set_output_raw ( bool output_raw)
inline

Enable or disable the output of raw ADC values (unprocessed data).

Parameters
output_rawBoolean indicating whether to output raw ADC values (true) or processed values (false).

Definition at line 87 of file adc_sensor.h.

◆ set_pin()

void esphome::adc::ADCSensor::set_pin ( InternalGPIOPin * pin)
inline

Set the GPIO pin to be used by the ADC sensor.

Parameters
pinPointer to an InternalGPIOPin representing the ADC input pin.

Definition at line 83 of file adc_sensor.h.

◆ set_sample_count()

void esphome::adc::ADCSensor::set_sample_count ( uint8_t sample_count)

Set the number of samples to be taken for ADC readings to improve accuracy.

A higher sample count reduces noise but increases the reading time.

Parameters
sample_countThe number of samples (e.g., 1, 4, 8).

Definition at line 74 of file adc_sensor_common.cpp.

◆ set_sampling_mode()

void esphome::adc::ADCSensor::set_sampling_mode ( SamplingMode sampling_mode)

Set the sampling mode for how multiple ADC samples are combined into a single measurement.

When multiple samples are taken (controlled by set_sample_count), they can be combined in one of three ways:

Definition at line 80 of file adc_sensor_common.cpp.

◆ setup()

void esphome::adc::ADCSensor::setup ( )
overridevirtual

Set up the ADC sensor by initializing hardware and calibration parameters.

This method is called once during device initialization.

Reimplemented from esphome::Component.

Definition at line 39 of file adc_sensor_esp32.cpp.

◆ update()

void esphome::adc::ADCSensor::update ( )
overridevirtual

Update the sensor's state by reading the current ADC value.

This method is called periodically based on the update interval.

Implements esphome::PollingComponent.

Definition at line 68 of file adc_sensor_common.cpp.

Field Documentation

◆ adc_handle_

adc_oneshot_unit_handle_t esphome::adc::ADCSensor::adc_handle_ {nullptr}
protected

Definition at line 145 of file adc_sensor.h.

◆ adc_unit_

adc_unit_t esphome::adc::ADCSensor::adc_unit_ {}
protected

Definition at line 149 of file adc_sensor.h.

◆ attenuation_

adc_atten_t esphome::adc::ADCSensor::attenuation_ {ADC_ATTEN_DB_0}
protected

Definition at line 147 of file adc_sensor.h.

◆ autorange_

bool esphome::adc::ADCSensor::autorange_ {false}
protected

Definition at line 144 of file adc_sensor.h.

◆ calibration_handle_

adc_cali_handle_t esphome::adc::ADCSensor::calibration_handle_ {nullptr}
protected

Definition at line 146 of file adc_sensor.h.

◆ channel_ [1/2]

adc_channel_t esphome::adc::ADCSensor::channel_ {}
protected

Definition at line 148 of file adc_sensor.h.

◆ channel_ [2/2]

const struct adc_dt_spec* esphome::adc::ADCSensor::channel_ = nullptr
protected

Definition at line 165 of file adc_sensor.h.

◆ is_temperature_

bool esphome::adc::ADCSensor::is_temperature_ {false}
protected

Definition at line 161 of file adc_sensor.h.

◆ output_raw_

bool esphome::adc::ADCSensor::output_raw_ {false}
protected

Definition at line 137 of file adc_sensor.h.

◆ pin_

InternalGPIOPin* esphome::adc::ADCSensor::pin_
protected

Definition at line 138 of file adc_sensor.h.

◆ sample_count_

uint8_t esphome::adc::ADCSensor::sample_count_ {1}
protected

Definition at line 136 of file adc_sensor.h.

◆ sampling_mode_

SamplingMode esphome::adc::ADCSensor::sampling_mode_ {SamplingMode::AVG}
protected

Definition at line 139 of file adc_sensor.h.

◆ setup_flags_

struct esphome::adc::ADCSensor::SetupFlags esphome::adc::ADCSensor::setup_flags_
protected

◆ shared_adc_handles

adc_oneshot_unit_handle_t esphome::adc::ADCSensor::shared_adc_handles = {nullptr, nullptr}
staticprotected

Definition at line 157 of file adc_sensor.h.


The documentation for this class was generated from the following files: